Advertisement
rasmit

Untitled

Aug 9th, 2023
330
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #!/usr/bin/env python3
  2.  
  3. import math
  4. import json
  5.  
  6. # test formulations
  7. # vel1 = '0 + (y - yc)*(eps/(2d0*pi))*exp(beta*(1d0 - (x - xc)**2 - (y - yc)**2))'
  8. # vel2 = '0 - (x - xc)*(eps/(2d0*pi))*exp(beta*(1d0 - (x - xc)**2 - (y - yc)**2))'
  9. # pres = '1*(1d0 - (patch_icpp(1)%rho/patch_icpp(1)%pres)*(eps/(2d0*pi))*(eps/(8d0*beta*(patch_icpp(1)%gamma + 1d0)*pi))*exp(2d0*beta*(1d0 - (x - xc)**2 - (y - yc)**2)))**(patch_icpp(1)%gamma + 1d0)'
  10. # alpha_rho1 = '1*(1d0 - (patch_icpp(1)%rho/patch_icpp(1)%pres)*(eps/(2d0*pi))*(eps/(8d0*beta*(patch_icpp(1)%gamma + 1d0)*pi))*exp(2d0*beta*(1d0 - (x - xc)**2 - (y - yc)**2)))**patch_icpp(1)%gamma'
  11.  
  12. # original formulation
  13. # vel1 = 'patch_icpp(1)%vel(1) + (y - yc)*(eps/(2d0*pi))*exp(beta*(1d0 - (x - xc)**2 - (y - yc)**2))'
  14. # vel2 = 'patch_icpp(1)%vel(2) - (x - xc)*(eps/(2d0*pi))*exp(beta*(1d0 - (x - xc)**2 - (y - yc)**2))'
  15. # pres = 'patch_icpp(1)%pres*(1d0 - (patch_icpp(1)%rho/patch_icpp(1)%pres)*(eps/(2d0*pi))*(eps/(8d0*beta*(patch_icpp(1)%gamma + 1d0)*pi))*exp(2d0*beta*(1d0 - (x - xc)**2 - (y - yc)**2)))**(patch_icpp(1)%gamma + 1d0)'
  16. # alpha_rho1 = 'patch_icpp(1)%rho*(1d0 - (patch_icpp(1)%rho/patch_icpp(1)%pres)*(eps/(2d0*pi))*(eps/(8d0*beta*(patch_icpp(1)%gamma + 1d0)*pi))*exp(2d0*beta*(1d0 - (x - xc)**2 - (y - yc)**2)))**patch_icpp(1)%gamma'
  17.  
  18. # temperature formulation
  19. # T = '1 - ((patch_icpp(1)%gamma - 1d0) * beta**2)/(8d0 * patch_icpp(1)%gamma * pi**2) * exp(1d0 - (x - xc)**2 - (y - yc)**2)'
  20. # T = '1'
  21. # alpha_rho1 = f'1 + {T}**(1d0/(patch_icpp(1)%gamma - 1d0))'
  22. # pres = f'patch_icpp(1)%rho * {T}'
  23. # pres = f'1 + patch_icpp(1)%rho ** patch_icpp(1)%gamma'
  24.  
  25. vel1 = '0'
  26. vel2 = '0'
  27. pres = '1d0'
  28. alpha_rho1 = '1d0'
  29.  
  30. # Numerical setup
  31. Nx = 400
  32. dx = 1./(1.*(Nx+1))
  33.  
  34. c = 600
  35. C = 0.3
  36. mydt = C * dx / c
  37. Nt = 10000
  38. Tend = 1
  39.  
  40. # Configuring case dictionary
  41. print(json.dumps({
  42.     # Logistics ================================================================
  43.     'run_time_info'                : 'T',
  44.     # ==========================================================================
  45.  
  46.     # Computational Domain Parameters ==========================================
  47.     'x_domain%beg'                 : -5.,
  48.     'x_domain%end'                 : 5.,
  49.     'y_domain%beg'                 : -5.,
  50.     'y_domain%end'                 : 5.,
  51.     'm'                            : Nx,
  52.     'n'                            : Nx,
  53.     'p'                            : 0,
  54.     'dt'                           : mydt,
  55.     't_step_start'                 : 0,
  56.     't_step_stop'                  : int(Nt),
  57.     't_step_save'                  : math.ceil(Nt/10.),
  58.     # ==========================================================================
  59.  
  60.     # Simulation Algorithm Parameters ==========================================
  61.     'num_patches'                  : 1,
  62.     'model_eqns'                   : 3,
  63.     'alt_soundspeed'               : 'F',
  64.     'num_fluids'                   : 1,
  65.     'adv_alphan'                   : 'T',
  66.     'mpp_lim'                      : 'F',
  67.     'mixture_err'                  : 'F',
  68.     'time_stepper'                 : 3,
  69.     'weno_order'                   : 3,
  70.     'weno_eps'                     : 1.E-16,
  71.     'mapped_weno'                  : 'T',
  72.     'null_weights'                 : 'F',
  73.     'mp_weno'                      : 'F',
  74.     'riemann_solver'               : 2,
  75.     'wave_speeds'                  : 1,
  76.     'avg_state'                    : 2,
  77.     'bc_x%beg'                     : -1,
  78.     'bc_x%end'                     : -1,
  79.     'bc_y%beg'                     : -1,
  80.     'bc_y%end'                     : -1,
  81.     # ==========================================================================
  82.  
  83.     # Formatted Database Files Structure Parameters ============================
  84.     'format'                       : 1,
  85.     'precision'                    : 2,
  86.     'prim_vars_wrt'                :'T',
  87.     'parallel_io'                  :'T',
  88.     # ==========================================================================
  89.                                                            
  90.     # Patch 1 ==================================================================
  91.     'patch_icpp(1)%geometry'       : 6,
  92.     'patch_icpp(1)%x_centroid'     : 0.,
  93.     'patch_icpp(1)%y_centroid'     : 0.,
  94.     'patch_icpp(1)%epsilon'        : 5.,
  95.     'patch_icpp(1)%beta'           : 5.,
  96.     'patch_icpp(1)%radius'         : 5.,
  97.     'patch_icpp(1)%length_x'       : 10.,
  98.     'patch_icpp(1)%length_y'       : 10.,
  99.     'patch_icpp(1)%vel(1)'         : vel1,
  100.     'patch_icpp(1)%vel(2)'         : vel2,
  101.     'patch_icpp(1)%pres'           : pres,
  102.     'patch_icpp(1)%rho'            : 1,
  103.     'patch_icpp(1)%alpha_rho(1)'   : alpha_rho1,
  104.     'patch_icpp(1)%alpha(1)'       : 1.,
  105.     # ==========================================================================
  106.  
  107.     # Fluids Physical Parameters ===============================================
  108.     'fluid_pp(1)%gamma'            : 1.E+00/(1.4-1.E+00),
  109.     'fluid_pp(1)%pi_inf'           : 0.0,
  110.     # ==========================================================================
  111. }))
  112.  
  113. # ==============================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement