def main(): '''This program runs SU2 and ensures that the output matches specified values. This will be used to do checks when code is pushed to github to make sure nothing is broken. ''' test_list = [] ##################################### ### Disc. adj. compressible Euler ### ##################################### # Inviscid NACA0012 discadj_naca0012 = TestCase('discadj_naca0012') discadj_naca0012.cfg_dir = "cont_adj_euler/naca0012" discadj_naca0012.cfg_file = "inv_NACA0012_discadj.cfg" discadj_naca0012.test_iter = 100 discadj_naca0012.test_vals = [-3.559002, -8.926022, -0.000000, 0.005588] #last 4 columns discadj_naca0012.su2_exec = "SU2_CFD_AD" discadj_naca0012.timeout = 1600 discadj_naca0012.tol = 0.00001 test_list.append(discadj_naca0012) # Inviscid Cylinder 3D (multiple markers) discadj_cylinder3D = TestCase('discadj_cylinder3D') discadj_cylinder3D.cfg_dir = "disc_adj_euler/cylinder3D" discadj_cylinder3D.cfg_file = "inv_cylinder3D.cfg" discadj_cylinder3D.test_iter = 5 discadj_cylinder3D.test_vals = [-3.759637, -3.864023, -0.000000, 0.000000] #last 4 columns discadj_cylinder3D.su2_exec = "SU2_CFD_AD" discadj_cylinder3D.timeout = 1600 discadj_cylinder3D.tol = 0.00001 test_list.append(discadj_cylinder3D) # Arina nozzle 2D discadj_arina2k = TestCase('discadj_arina2k') discadj_arina2k.cfg_dir = "disc_adj_euler/arina2k" discadj_arina2k.cfg_file = "Arina2KRS.cfg" discadj_arina2k.test_iter = 20 discadj_arina2k.test_vals = [2.108283, 1.574295, 47250.0, 0.0] #last 4 columns discadj_arina2k.su2_exec = "SU2_CFD_AD" discadj_arina2k.timeout = 8400 discadj_arina2k.tol = 0.00001 test_list.append(discadj_arina2k) ####################################################### ### Disc. adj. compressible RANS ### ####################################################### # Adjoint turbulent NACA0012 SA discadj_rans_naca0012_sa = TestCase('discadj_rans_naca0012_sa') discadj_rans_naca0012_sa.cfg_dir = "disc_adj_rans/naca0012" discadj_rans_naca0012_sa.cfg_file = "turb_NACA0012_sa.cfg" discadj_rans_naca0012_sa.test_iter = 10 discadj_rans_naca0012_sa.test_vals = [ -2.230556, 0.696586, 0.180740, -0.000018 ] #last 4 columns discadj_rans_naca0012_sa.su2_exec = "SU2_CFD_AD" discadj_rans_naca0012_sa.timeout = 1600 discadj_rans_naca0012_sa.tol = 0.00001 test_list.append(discadj_rans_naca0012_sa) # Adjoint turbulent NACA0012 SST discadj_rans_naca0012_sst = TestCase('discadj_rans_naca0012_sst') discadj_rans_naca0012_sst.cfg_dir = "disc_adj_rans/naca0012" discadj_rans_naca0012_sst.cfg_file = "turb_NACA0012_sst.cfg" discadj_rans_naca0012_sst.test_iter = 10 discadj_rans_naca0012_sst.test_vals = [ -2.221232, -0.492215, 0.557480, 0.000027 ] #last 4 columns discadj_rans_naca0012_sst.su2_exec = "SU2_CFD_AD" discadj_rans_naca0012_sst.timeout = 1600 discadj_rans_naca0012_sst.tol = 0.00001 test_list.append(discadj_rans_naca0012_sst) ####################################### ### Disc. adj. incompressible Euler ### ####################################### # Adjoint Incompressible Inviscid NACA0012 discadj_incomp_NACA0012 = TestCase('discadj_incomp_NACA0012') discadj_incomp_NACA0012.cfg_dir = "disc_adj_incomp_euler/naca0012" discadj_incomp_NACA0012.cfg_file = "incomp_NACA0012_disc.cfg" discadj_incomp_NACA0012.test_iter = 20 discadj_incomp_NACA0012.test_vals = [20.0, -4.092007, -2.652750, 0.0] #last 4 columns discadj_incomp_NACA0012.su2_exec = "SU2_CFD_AD" discadj_incomp_NACA0012.timeout = 1600 discadj_incomp_NACA0012.tol = 0.00001 test_list.append(discadj_incomp_NACA0012) ##################################### ### Disc. adj. incompressible N-S ### ##################################### # Adjoint Incompressible Viscous Cylinder (Heated) discadj_incomp_cylinder = TestCase('discadj_incomp_cylinder') discadj_incomp_cylinder.cfg_dir = "disc_adj_incomp_navierstokes/cylinder" discadj_incomp_cylinder.cfg_file = "heated_cylinder.cfg" discadj_incomp_cylinder.test_iter = 20 discadj_incomp_cylinder.test_vals = [ 20.000000, -2.374306, -2.371564, 0.000000 ] #last 4 columns discadj_incomp_cylinder.su2_exec = "SU2_CFD_AD" discadj_incomp_cylinder.timeout = 1600 discadj_incomp_cylinder.tol = 0.00001 test_list.append(discadj_incomp_cylinder) ###################################### ### Disc. adj. incompressible RANS ### ###################################### # Adjoint Incompressible Turbulent NACA 0012 SA discadj_incomp_turb_NACA0012_sa = TestCase( 'discadj_incomp_turb_NACA0012_sa') discadj_incomp_turb_NACA0012_sa.cfg_dir = "disc_adj_incomp_rans/naca0012" discadj_incomp_turb_NACA0012_sa.cfg_file = "turb_naca0012_sa.cfg" discadj_incomp_turb_NACA0012_sa.test_iter = 10 discadj_incomp_turb_NACA0012_sa.test_vals = [ 10.000000, -3.845979, -1.031095, 0.000000 ] #last 4 columns discadj_incomp_turb_NACA0012_sa.su2_exec = "SU2_CFD_AD" discadj_incomp_turb_NACA0012_sa.timeout = 1600 discadj_incomp_turb_NACA0012_sa.tol = 0.00001 test_list.append(discadj_incomp_turb_NACA0012_sa) # Adjoint Incompressible Turbulent NACA 0012 SST discadj_incomp_turb_NACA0012_sst = TestCase( 'discadj_incomp_turb_NACA0012_sst') discadj_incomp_turb_NACA0012_sst.cfg_dir = "disc_adj_incomp_rans/naca0012" discadj_incomp_turb_NACA0012_sst.cfg_file = "turb_naca0012_sst.cfg" discadj_incomp_turb_NACA0012_sst.test_iter = 10 discadj_incomp_turb_NACA0012_sst.test_vals = [ -3.845577, -2.414021, -8.420183, 0.000000 ] #last 4 columns discadj_incomp_turb_NACA0012_sst.su2_exec = "SU2_CFD_AD" discadj_incomp_turb_NACA0012_sst.timeout = 1600 discadj_incomp_turb_NACA0012_sst.tol = 0.00001 test_list.append(discadj_incomp_turb_NACA0012_sst) ####################################################### ### Unsteady Disc. adj. compressible RANS ### ####################################################### # Turbulent Cylinder discadj_cylinder = TestCase('unsteady_cylinder') discadj_cylinder.cfg_dir = "disc_adj_rans/cylinder" discadj_cylinder.cfg_file = "cylinder.cfg" discadj_cylinder.test_iter = 9 discadj_cylinder.test_vals = [3.746909, -1.544883, -0.008321, 0.000014] #last 4 columns discadj_cylinder.su2_exec = "SU2_CFD_AD" discadj_cylinder.timeout = 1600 discadj_cylinder.tol = 0.00001 discadj_cylinder.unsteady = True test_list.append(discadj_cylinder) ########################################################################## ### Unsteady Disc. adj. compressible RANS DualTimeStepping 1st order ### ########################################################################## # Turbulent Cylinder discadj_DT_1ST_cylinder = TestCase('unsteady_cylinder_DT_1ST') discadj_DT_1ST_cylinder.cfg_dir = "disc_adj_rans/cylinder_DT_1ST" discadj_DT_1ST_cylinder.cfg_file = "cylinder.cfg" discadj_DT_1ST_cylinder.test_iter = 9 discadj_DT_1ST_cylinder.test_vals = [ 3.698168, -1.607050, -0.002159, 0.000028 ] #last 4 columns discadj_DT_1ST_cylinder.su2_exec = "SU2_CFD_AD" discadj_DT_1ST_cylinder.timeout = 1600 discadj_DT_1ST_cylinder.tol = 0.00001 discadj_DT_1ST_cylinder.unsteady = True test_list.append(discadj_DT_1ST_cylinder) ###################################################### ### Unsteady Disc. adj. compressible pitching NACA ### ###################################################### # compressible pitching NACA0012 discadj_pitchingNACA0012 = TestCase('pitchingNACA0012') discadj_pitchingNACA0012.cfg_dir = "disc_adj_euler/naca0012_pitching" discadj_pitchingNACA0012.cfg_file = "inv_NACA0012_pitching.cfg" discadj_pitchingNACA0012.test_iter = 4 discadj_pitchingNACA0012.test_vals = [ -1.223509, -1.646090, -0.007671, 0.000013 ] #last 4 columns discadj_pitchingNACA0012.su2_exec = "SU2_CFD_AD" discadj_pitchingNACA0012.timeout = 1600 discadj_pitchingNACA0012.tol = 0.00001 discadj_pitchingNACA0012.unsteady = True test_list.append(discadj_pitchingNACA0012) # deforming pitching NACA0012 unst_deforming_naca0012 = TestCase('unst_deforming_naca0012') unst_deforming_naca0012.cfg_dir = "disc_adj_euler/naca0012_pitching_def" unst_deforming_naca0012.cfg_file = "inv_NACA0012_pitching_deform_ad.cfg" unst_deforming_naca0012.test_iter = 4 unst_deforming_naca0012.test_vals = [ -1.867980, -1.741743, 1090.200000, 0.000006 ] #last 4 columns unst_deforming_naca0012.su2_exec = "SU2_CFD_AD" unst_deforming_naca0012.timeout = 1600 unst_deforming_naca0012.tol = 0.00001 unst_deforming_naca0012.unsteady = True test_list.append(unst_deforming_naca0012) ################################### ### Structural Adjoint ### ################################### # Structural model discadj_fea = TestCase('discadj_fea') discadj_fea.cfg_dir = "disc_adj_fea" discadj_fea.cfg_file = "configAD_fem.cfg" discadj_fea.test_iter = 4 discadj_fea.test_vals = [-2.849531, -3.238474, -3.6413e-04, -8.7087] #last 4 columns discadj_fea.su2_exec = "SU2_CFD_AD" discadj_fea.timeout = 1600 discadj_fea.tol = 0.00001 test_list.append(discadj_fea) ################################### ### Disc. adj. heat ### ################################### # Discrete adjoint for heated cylinder discadj_heat = TestCase('discadj_heat') discadj_heat.cfg_dir = "disc_adj_heat" discadj_heat.cfg_file = "disc_adj_heat.cfg" discadj_heat.test_iter = 10 discadj_heat.test_vals = [-2.271573, 0.671242, -3.172000, -8.231600] #last 4 columns discadj_heat.su2_exec = "SU2_CFD_AD" discadj_heat.timeout = 1600 discadj_heat.tol = 0.00001 test_list.append(discadj_heat) ################################### ### Coupled RHT-CFD Adjoint ### ################################### # Coupled discrete adjoint for radiative heat transfer in heated cylinder discadj_rht = TestCase('discadj_rht') discadj_rht.cfg_dir = "radiation/p1adjoint" discadj_rht.cfg_file = "configp1adjoint.cfg" discadj_rht.test_iter = 10 discadj_rht.su2_exec = "discrete_adjoint.py -f" discadj_rht.timeout = 1600 discadj_rht.reference_file = "of_grad_cd.csv.ref" discadj_rht.test_file = "of_grad_cd.csv" test_list.append(discadj_rht) ################################### ### Coupled FSI Adjoint ### ################################### # Structural model discadj_fsi = TestCase('discadj_fsi') discadj_fsi.cfg_dir = "disc_adj_fsi" discadj_fsi.cfg_file = "config.cfg" discadj_fsi.test_iter = 6 discadj_fsi.test_vals = [6, -1.572702, -3.084381, 4.3990e-04, -1.0631] #last 5 columns discadj_fsi.su2_exec = "SU2_CFD_AD" discadj_fsi.timeout = 1600 discadj_fsi.tol = 0.00001 test_list.append(discadj_fsi) ################################### ### Coupled CHT Adjoint ### ################################### # Coupled discrete adjoint for heatflux in heated cylinder array discadj_cht = TestCase('discadj_cht') discadj_cht.cfg_dir = "coupled_cht/disc_adj_incomp_2d" discadj_cht.cfg_file = "cht_2d_3cylinders.cfg" discadj_cht.test_iter = 10 discadj_cht.test_vals = [-2.364405, -3.085551, -3.085518, -3.085513] #last 4 columns discadj_cht.su2_exec = "SU2_CFD_AD" discadj_cht.timeout = 1600 discadj_cht.tol = 0.00001 test_list.append(discadj_cht) ###################################### ### RUN TESTS ### ###################################### pass_list = [test.run_test() for test in test_list] ###################################### ### RUN PYTHON TESTS ### ###################################### # test discrete_adjoint.py discadj_euler_py = TestCase('discadj_euler_py') discadj_euler_py.cfg_dir = "cont_adj_euler/naca0012" discadj_euler_py.cfg_file = "inv_NACA0012.cfg" discadj_euler_py.test_iter = 10 discadj_euler_py.su2_exec = "discrete_adjoint.py -f" discadj_euler_py.timeout = 1600 discadj_euler_py.reference_file = "of_grad_cd_disc.dat.ref" discadj_euler_py.test_file = "of_grad_cd.dat" pass_list.append(discadj_euler_py.run_filediff()) test_list.append(discadj_euler_py) # test discrete_adjoint with multiple ffd boxes discadj_multiple_ffd_py = TestCase('discadj_multiple_ffd_py') discadj_multiple_ffd_py.cfg_dir = "multiple_ffd/naca0012" discadj_multiple_ffd_py.cfg_file = "inv_NACA0012_ffd.cfg" discadj_multiple_ffd_py.test_iter = 9 discadj_multiple_ffd_py.su2_exec = "discrete_adjoint.py -f" discadj_multiple_ffd_py.timeout = 1600 discadj_multiple_ffd_py.reference_file = "of_grad_cd.dat.ref" discadj_multiple_ffd_py.test_file = "of_grad_cd.dat" pass_list.append(discadj_multiple_ffd_py.run_filediff()) test_list.append(discadj_multiple_ffd_py) # test direct_differentiation.py directdiff_euler_py = TestCase('directdiff_euler_py') directdiff_euler_py.cfg_dir = "cont_adj_euler/naca0012" directdiff_euler_py.cfg_file = "inv_NACA0012_FD.cfg" directdiff_euler_py.test_iter = 10 directdiff_euler_py.su2_exec = "direct_differentiation.py -f" directdiff_euler_py.timeout = 1600 directdiff_euler_py.reference_file = "of_grad_directdiff.dat.ref" directdiff_euler_py.test_file = "DIRECTDIFF/of_grad_directdiff.dat" pass_list.append(directdiff_euler_py.run_filediff()) test_list.append(directdiff_euler_py) # test direct_differentiation.py with multiple ffd boxes directdiff_multiple_ffd_py = TestCase('directdiff_multiple_ffd_py') directdiff_multiple_ffd_py.cfg_dir = "multiple_ffd/naca0012" directdiff_multiple_ffd_py.cfg_file = "inv_NACA0012_ffd.cfg" directdiff_multiple_ffd_py.test_iter = 9 directdiff_multiple_ffd_py.su2_exec = "direct_differentiation.py -f" directdiff_multiple_ffd_py.timeout = 1600 directdiff_multiple_ffd_py.reference_file = "of_grad_directdiff.dat.ref" directdiff_multiple_ffd_py.test_file = "DIRECTDIFF/of_grad_directdiff.dat" pass_list.append(directdiff_multiple_ffd_py.run_filediff()) test_list.append(directdiff_multiple_ffd_py) # test continuous_adjoint.py, with multiple objectives # discadj_multi_py = TestCase('discadj_multi_py') # discadj_multi_py.cfg_dir = "cont_adj_euler/wedge" # discadj_multi_py.cfg_file = "inv_wedge_ROE_multiobj.cfg" # discadj_multi_py.test_iter = 10 # discadj_multi_py.su2_exec = "discrete_adjoint.py" # discadj_multi_py.timeout = 1600 # discadj_multi_py.reference_file = "of_grad_combo.dat.refdiscrete" # discadj_multi_py.test_file = "of_grad_combo.dat" # pass_list.append(discadj_multi_py.run_filediff()) # test_list.append(discadj_multi_py) # FEA AD Flow Load Sensitivity pywrapper_FEA_AD_FlowLoad = TestCase('pywrapper_FEA_AD_FlowLoad') pywrapper_FEA_AD_FlowLoad.cfg_dir = "py_wrapper/disc_adj_fea/flow_load_sens" pywrapper_FEA_AD_FlowLoad.cfg_file = "configAD_fem.cfg" pywrapper_FEA_AD_FlowLoad.test_iter = 100 pywrapper_FEA_AD_FlowLoad.test_vals = [ -0.13945587401579657, -0.585985886606256, -0.00036377840086080753, -0.0031005670174756375 ] #last 4 columns pywrapper_FEA_AD_FlowLoad.su2_exec = "python run_adjoint.py -f" pywrapper_FEA_AD_FlowLoad.timeout = 1600 pywrapper_FEA_AD_FlowLoad.tol = 0.000001 pywrapper_FEA_AD_FlowLoad.new_output = False test_list.append(pywrapper_FEA_AD_FlowLoad) pass_list.append(pywrapper_FEA_AD_FlowLoad.run_test()) # Flow AD Mesh Displacement Sensitivity pywrapper_FEA_AD_FlowLoad = TestCase('pywrapper_CFD_AD_MeshDisp') pywrapper_FEA_AD_FlowLoad.cfg_dir = "py_wrapper/disc_adj_flow/mesh_disp_sens" pywrapper_FEA_AD_FlowLoad.cfg_file = "configAD_flow.cfg" pywrapper_FEA_AD_FlowLoad.test_iter = 1000 pywrapper_FEA_AD_FlowLoad.test_vals = [ 30.000000, -2.518695, 1.390150, 0.000000 ] #last 4 columns pywrapper_FEA_AD_FlowLoad.su2_exec = "python run_adjoint.py -f" pywrapper_FEA_AD_FlowLoad.timeout = 1600 pywrapper_FEA_AD_FlowLoad.tol = 0.000001 pywrapper_FEA_AD_FlowLoad.new_output = False test_list.append(pywrapper_FEA_AD_FlowLoad) pass_list.append(pywrapper_FEA_AD_FlowLoad.run_test()) # Tests summary print('==================================================================') print('Summary of the serial tests') print('python version:', sys.version) for i, test in enumerate(test_list): if (pass_list[i]): print(' passed - %s' % test.tag) else: print('* FAILED - %s' % test.tag) if all(pass_list): sys.exit(0) else: sys.exit(1)
def main(): '''This program runs SU2 and ensures that the output matches specified values. This will be used to do checks when code is pushed to github to make sure nothing is broken. ''' test_list = [] ########################## ### Compressible Euler ### ########################## # Channel channel = TestCase('channel') channel.cfg_dir = "euler/channel" channel.cfg_file = "inv_channel_RK.cfg" channel.test_iter = 20 channel.test_vals = [-2.667326, 2.797439, 0.018717, 0.006906] test_list.append(channel) # NACA0012 naca0012 = TestCase('naca0012') naca0012.cfg_dir = "euler/naca0012" naca0012.cfg_file = "inv_NACA0012_Roe.cfg" naca0012.test_iter = 20 naca0012.test_vals = [-4.023999, -3.515034, 0.339426, 0.022217] test_list.append(naca0012) # Supersonic wedge wedge = TestCase('wedge') wedge.cfg_dir = "euler/wedge" wedge.cfg_file = "inv_wedge_HLLC.cfg" wedge.test_iter = 20 wedge.test_vals = [-0.942862, 4.784581, -0.208106, 0.036665] test_list.append(wedge) # ONERA M6 Wing oneram6 = TestCase('oneram6') oneram6.cfg_dir = "euler/oneram6" oneram6.cfg_file = "inv_ONERAM6.cfg" oneram6.test_iter = 10 oneram6.test_vals = [0.281704, 0.011821] test_list.append(oneram6) # Fixed CL NACA0012 fixedCL_naca0012 = TestCase('fixedcl_naca0012') fixedCL_naca0012.cfg_dir = "fixed_cl/naca0012" fixedCL_naca0012.cfg_file = "inv_NACA0012.cfg" fixedCL_naca0012.test_iter = 10 fixedCL_naca0012.test_vals = [-12.130189, -6.702728, 0.300000, 0.019470] test_list.append(fixedCL_naca0012) # HYPERSONIC FLOW PAST BLUNT BODY bluntbody = TestCase('bluntbody') bluntbody.cfg_dir = "euler/bluntbody" bluntbody.cfg_file = "blunt.cfg" bluntbody.test_iter = 20 bluntbody.test_vals = [0.540010, 6.916656, 0.000027, 1.869004] test_list.append(bluntbody) ########################## ### Compressible N-S ### ########################## # Laminar flat plate flatplate = TestCase('flatplate') flatplate.cfg_dir = "navierstokes/flatplate" flatplate.cfg_file = "lam_flatplate.cfg" flatplate.test_iter = 20 flatplate.test_vals = [-4.680775, 0.781235, -0.135957, 0.022978] test_list.append(flatplate) # Laminar cylinder (steady) cylinder = TestCase('cylinder') cylinder.cfg_dir = "navierstokes/cylinder" cylinder.cfg_file = "lam_cylinder.cfg" cylinder.test_iter = 25 cylinder.test_vals = [-6.765432, -1.297428, 0.019596, 0.310240] test_list.append(cylinder) # Laminar cylinder (low Mach correction) cylinder_lowmach = TestCase('cylinder_lowmach') cylinder_lowmach.cfg_dir = "navierstokes/cylinder" cylinder_lowmach.cfg_file = "cylinder_lowmach.cfg" cylinder_lowmach.test_iter = 25 cylinder_lowmach.test_vals = [-6.850130, -1.388096, -0.056203, 108.140819] test_list.append(cylinder_lowmach) # 2D Poiseuille flow (body force driven with periodic inlet / outlet) poiseuille = TestCase('poiseuille') poiseuille.cfg_dir = "navierstokes/poiseuille" poiseuille.cfg_file = "lam_poiseuille.cfg" poiseuille.test_iter = 10 poiseuille.test_vals = [-5.048282, 0.650814, 0.008714, 13.677678] test_list.append(poiseuille) # 2D Poiseuille flow (inlet profile file) poiseuille_profile = TestCase('poiseuille_profile') poiseuille_profile.cfg_dir = "navierstokes/poiseuille" poiseuille_profile.cfg_file = "profile_poiseuille.cfg" poiseuille_profile.test_iter = 10 poiseuille_profile.test_vals = [-12.494721, -7.712408, -0.000000, 2.085796] test_list.append(poiseuille_profile) ########################## ### Compressible RANS ### ########################## # RAE2822 SA rae2822_sa = TestCase('rae2822_sa') rae2822_sa.cfg_dir = "rans/rae2822" rae2822_sa.cfg_file = "turb_SA_RAE2822.cfg" rae2822_sa.test_iter = 20 rae2822_sa.test_vals = [-2.021224, -5.268445, 0.807582, 0.060731] test_list.append(rae2822_sa) # RAE2822 SST rae2822_sst = TestCase('rae2822_sst') rae2822_sst.cfg_dir = "rans/rae2822" rae2822_sst.cfg_file = "turb_SST_RAE2822.cfg" rae2822_sst.test_iter = 20 rae2822_sst.test_vals = [-0.510637, 4.876603, 0.812485, 0.061969] test_list.append(rae2822_sst) # RAE2822 SST_SUST rae2822_sst_sust = TestCase('rae2822_sst_sust') rae2822_sst_sust.cfg_dir = "rans/rae2822" rae2822_sst_sust.cfg_file = "turb_SST_SUST_RAE2822.cfg" rae2822_sst_sust.test_iter = 20 rae2822_sst_sust.test_vals = [-2.429813, 4.876602, 0.812485, 0.061969] test_list.append(rae2822_sst_sust) # Flat plate turb_flatplate = TestCase('turb_flatplate') turb_flatplate.cfg_dir = "rans/flatplate" turb_flatplate.cfg_file = "turb_SA_flatplate.cfg" turb_flatplate.test_iter = 20 turb_flatplate.test_vals = [-4.157169, -6.737133, -0.176253, 0.057446] test_list.append(turb_flatplate) # ONERA M6 Wing turb_oneram6 = TestCase('turb_oneram6') turb_oneram6.cfg_dir = "rans/oneram6" turb_oneram6.cfg_file = "turb_ONERAM6.cfg" turb_oneram6.test_iter = 10 turb_oneram6.test_vals = [-2.388851, -6.689340, 0.230320, 0.157649] test_list.append(turb_oneram6) # NACA0012 (SA, FUN3D finest grid results: CL=1.0983, CD=0.01242) turb_naca0012_sa = TestCase('turb_naca0012_sa') turb_naca0012_sa.cfg_dir = "rans/naca0012" turb_naca0012_sa.cfg_file = "turb_NACA0012_sa.cfg" turb_naca0012_sa.test_iter = 10 turb_naca0012_sa.test_vals = [-11.537781, -14.899750, 1.064330, 0.019756] test_list.append(turb_naca0012_sa) # NACA0012 (SST, FUN3D finest grid results: CL=1.0840, CD=0.01253) turb_naca0012_sst = TestCase('turb_naca0012_sst') turb_naca0012_sst.cfg_dir = "rans/naca0012" turb_naca0012_sst.cfg_file = "turb_NACA0012_sst.cfg" turb_naca0012_sst.test_iter = 10 turb_naca0012_sst.test_vals = [-12.797090, -5.872763, 1.049989, 0.019163] test_list.append(turb_naca0012_sst) # NACA0012 (SST_SUST, FUN3D finest grid results: CL=1.0840, CD=0.01253) turb_naca0012_sst_sust = TestCase('turb_naca0012_sst_sust') turb_naca0012_sst_sust.cfg_dir = "rans/naca0012" turb_naca0012_sst_sust.cfg_file = "turb_NACA0012_sst_sust.cfg" turb_naca0012_sst_sust.test_iter = 10 turb_naca0012_sst_sust.test_vals = [ -12.640091, -5.751854, 1.005233, 0.019017 ] test_list.append(turb_naca0012_sst_sust) # PROPELLER propeller = TestCase('propeller') propeller.cfg_dir = "rans/propeller" propeller.cfg_file = "propeller.cfg" propeller.test_iter = 10 propeller.test_vals = [-3.389576, -8.409529, 0.000048, 0.056329] test_list.append(propeller) # PROPELLER VARIBLE LOAD propeller_var_load = TestCase('propeller_variable_load') propeller_var_load.cfg_dir = "rans/actuatordisk_variable_load" propeller_var_load.cfg_file = "propeller_variable_load.cfg" propeller_var_load.test_iter = 20 propeller_var_load.test_vals = [-1.808010, -4.535613, 0.000190, 0.172483] test_list.append(propeller_var_load) ################################# ## Compressible RANS Restart ### ################################# # NACA0012 SST Multigrid restart turb_naca0012_sst_restart_mg = TestCase('turb_naca0012_sst_restart_mg') turb_naca0012_sst_restart_mg.cfg_dir = "rans/naca0012" turb_naca0012_sst_restart_mg.cfg_file = "turb_NACA0012_sst_multigrid_restart.cfg" turb_naca0012_sst_restart_mg.test_iter = 20 turb_naca0012_sst_restart_mg.ntest_vals = 5 turb_naca0012_sst_restart_mg.test_vals = [ -7.653296, -7.729472, -1.981061, -0.000016, 0.079062 ] test_list.append(turb_naca0012_sst_restart_mg) ############################# ### Compressibele RANS UQ ### ############################# # NACA0012 1c turb_naca0012_1c = TestCase('turb_naca0012_1c') turb_naca0012_1c.cfg_dir = "rans_uq/naca0012" turb_naca0012_1c.cfg_file = "turb_NACA0012_uq_1c.cfg" turb_naca0012_1c.test_iter = 10 turb_naca0012_1c.test_vals = [-4.979389, 1.140070, 1.211965, 0.194237] test_list.append(turb_naca0012_1c) # NACA0012 2c turb_naca0012_2c = TestCase('turb_naca0012_2c') turb_naca0012_2c.cfg_dir = "rans_uq/naca0012" turb_naca0012_2c.cfg_file = "turb_NACA0012_uq_2c.cfg" turb_naca0012_2c.test_iter = 10 turb_naca0012_2c.test_vals = [-5.484195, 0.969789, 1.310525, 0.231240] test_list.append(turb_naca0012_2c) # NACA0012 3c turb_naca0012_3c = TestCase('turb_naca0012_3c') turb_naca0012_3c.cfg_dir = "rans_uq/naca0012" turb_naca0012_3c.cfg_file = "turb_NACA0012_uq_3c.cfg" turb_naca0012_3c.test_iter = 10 turb_naca0012_3c.test_vals = [-5.586959, 0.932359, 1.535455, 0.315820] test_list.append(turb_naca0012_3c) # NACA0012 p1c1 turb_naca0012_p1c1 = TestCase('turb_naca0012_p1c1') turb_naca0012_p1c1.cfg_dir = "rans_uq/naca0012" turb_naca0012_p1c1.cfg_file = "turb_NACA0012_uq_p1c1.cfg" turb_naca0012_p1c1.test_iter = 10 turb_naca0012_p1c1.test_vals = [-5.132081, 1.076462, 1.178093, 0.181595] test_list.append(turb_naca0012_p1c1) # NACA0012 p1c2 turb_naca0012_p1c2 = TestCase('turb_naca0012_p1c2') turb_naca0012_p1c2.cfg_dir = "rans_uq/naca0012" turb_naca0012_p1c2.cfg_file = "turb_NACA0012_uq_p1c2.cfg" turb_naca0012_p1c2.test_iter = 10 turb_naca0012_p1c2.test_vals = [-5.556648, 0.945129, 1.240986, 0.205071] test_list.append(turb_naca0012_p1c2) ###################################### ### Harmonic Balance ### ###################################### # Description of the regression test harmonic_balance = TestCase('harmonic_balance') harmonic_balance.cfg_dir = "harmonic_balance" harmonic_balance.cfg_file = "HB.cfg" harmonic_balance.test_iter = 25 harmonic_balance.test_vals = [-1.589755, 3.922207, 0.006725, 0.099455] harmonic_balance.new_output = False test_list.append(harmonic_balance) # Turbulent pitching NACA 64a010 airfoil hb_rans_preconditioning = TestCase('hb_rans_preconditioning') hb_rans_preconditioning.cfg_dir = "harmonic_balance/hb_rans_preconditioning" hb_rans_preconditioning.cfg_file = "davis.cfg" hb_rans_preconditioning.test_iter = 25 hb_rans_preconditioning.test_vals = [ -1.902391, -5.950120, 0.007786, 0.128110 ] hb_rans_preconditioning.new_output = False test_list.append(hb_rans_preconditioning) ###################################### ### Moving Wall ### ###################################### # Lid-driven cavity cavity = TestCase('cavity') cavity.cfg_dir = "moving_wall/cavity" cavity.cfg_file = "lam_cavity.cfg" cavity.test_iter = 25 cavity.test_vals = [-5.627934, -0.164469, 0.051998, 2.547065] test_list.append(cavity) # Spinning cylinder spinning_cylinder = TestCase('spinning_cylinder') spinning_cylinder.cfg_dir = "moving_wall/spinning_cylinder" spinning_cylinder.cfg_file = "spinning_cylinder.cfg" spinning_cylinder.test_iter = 25 spinning_cylinder.test_vals = [-7.996313, -2.601764, 1.510692, 1.493876] test_list.append(spinning_cylinder) ###################################### ### Unsteady ### ###################################### # Square cylinder square_cylinder = TestCase('square_cylinder') square_cylinder.cfg_dir = "unsteady/square_cylinder" square_cylinder.cfg_file = "turb_square.cfg" square_cylinder.test_iter = 3 square_cylinder.test_vals = [-1.162572, 0.066371, 1.399790, 2.220393] square_cylinder.unsteady = True test_list.append(square_cylinder) # Gust sine_gust = TestCase('sine_gust') sine_gust.cfg_dir = "gust" sine_gust.cfg_file = "inv_gust_NACA0012.cfg" sine_gust.test_iter = 5 sine_gust.test_vals = [-1.977520, 3.481804, -0.012404, -0.007452] sine_gust.unsteady = True test_list.append(sine_gust) # Aeroelastic aeroelastic = TestCase('aeroelastic') aeroelastic.cfg_dir = "aeroelastic" aeroelastic.cfg_file = "aeroelastic_NACA64A010.cfg" aeroelastic.test_iter = 2 aeroelastic.test_vals = [0.074525, 0.033127, -0.001650, -0.000127] aeroelastic.unsteady = True test_list.append(aeroelastic) # Delayed Detached Eddy Simulation ddes_flatplate = TestCase('ddes_flatplate') ddes_flatplate.cfg_dir = "ddes/flatplate" ddes_flatplate.cfg_file = "ddes_flatplate.cfg" ddes_flatplate.test_iter = 10 ddes_flatplate.test_vals = [-2.714758, -5.883004, -0.215005, 0.023783] ddes_flatplate.unsteady = True test_list.append(ddes_flatplate) ###################################### ### NICFD ### ###################################### # Rarefaction shock wave edge_VW edge_VW = TestCase('edge_VW') edge_VW.cfg_dir = "nicf/edge" edge_VW.cfg_file = "edge_VW.cfg" edge_VW.test_iter = 100 edge_VW.test_vals = [-5.040283, 1.124491, -0.000009, 0.000000] test_list.append(edge_VW) # Rarefaction shock wave edge_PPR edge_PPR = TestCase('edge_PPR') edge_PPR.cfg_dir = "nicf/edge" edge_PPR.cfg_file = "edge_PPR.cfg" edge_PPR.test_iter = 100 edge_PPR.test_vals = [-5.401640, 0.738165, -0.000035, 0.000000] test_list.append(edge_PPR) ###################################### ### Turbomachinery ### ###################################### # Jones APU Turbocharger Jones_tc = TestCase('jones_turbocharger') Jones_tc.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc.cfg_file = "Jones.cfg" Jones_tc.test_iter = 5 Jones_tc.test_vals = [-5.280316, 0.379651, 72.207590, 1.277638] Jones_tc.new_output = False test_list.append(Jones_tc) # Jones APU Turbocharger restart Jones_tc_rst = TestCase('jones_turbocharger_restart') Jones_tc_rst.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_rst.cfg_file = "Jones_rst.cfg" Jones_tc_rst.test_iter = 5 Jones_tc_rst.test_vals = [-4.625330, -1.568896, 33.995140, 10.181610] Jones_tc_rst.new_output = False test_list.append(Jones_tc_rst) # 2D axial stage axial_stage2D = TestCase('axial_stage2D') axial_stage2D.cfg_dir = "turbomachinery/axial_stage_2D" axial_stage2D.cfg_file = "Axial_stage2D.cfg" axial_stage2D.test_iter = 20 axial_stage2D.test_vals = [-1.933200, 5.379973, 73.357900, 0.925878] axial_stage2D.new_output = False test_list.append(axial_stage2D) # 2D transonic stator transonic_stator = TestCase('transonic_stator') transonic_stator.cfg_dir = "turbomachinery/transonic_stator_2D" transonic_stator.cfg_file = "transonic_stator.cfg" transonic_stator.test_iter = 20 transonic_stator.test_vals = [-0.562430, 5.828446, 96.436050, 0.062506] transonic_stator.new_output = False test_list.append(transonic_stator) # 2D transonic stator restart transonic_stator_rst = TestCase('transonic_stator_restart') transonic_stator_rst.cfg_dir = "turbomachinery/transonic_stator_2D" transonic_stator_rst.cfg_file = "transonic_stator_rst.cfg" transonic_stator_rst.test_iter = 20 transonic_stator_rst.test_vals = [-6.621626, -0.614379, 5.002986, 0.002951] transonic_stator_rst.new_output = False test_list.append(transonic_stator_rst) ###################################### ### Sliding Mesh ### ###################################### # Uniform flow uniform_flow = TestCase('uniform_flow') uniform_flow.cfg_dir = "sliding_interface/uniform_flow" uniform_flow.cfg_file = "uniform_NN.cfg" uniform_flow.test_iter = 5 uniform_flow.test_vals = [5.000000, 0.000000, -0.188748, -10.631530] uniform_flow.unsteady = True uniform_flow.multizone = True test_list.append(uniform_flow) # Channel_2D channel_2D = TestCase('channel_2D') channel_2D.cfg_dir = "sliding_interface/channel_2D" channel_2D.cfg_file = "channel_2D_WA.cfg" channel_2D.test_iter = 2 channel_2D.test_vals = [2.000000, 0.000000, 0.398089, 0.352762, 0.405397] channel_2D.unsteady = True channel_2D.multizone = True test_list.append(channel_2D) # Channel_3D channel_3D = TestCase('channel_3D') channel_3D.cfg_dir = "sliding_interface/channel_3D" channel_3D.cfg_file = "channel_3D_WA.cfg" channel_3D.test_iter = 2 channel_3D.test_vals = [2.000000, 0.000000, 0.620151, 0.505157, 0.415249] channel_3D.unsteady = True channel_3D.multizone = True test_list.append(channel_3D) # Pipe pipe = TestCase('pipe') pipe.cfg_dir = "sliding_interface/pipe" pipe.cfg_file = "pipe_NN.cfg" pipe.test_iter = 2 pipe.test_vals = [0.150024, 0.491949, 0.677757, 0.963990, 1.006944] pipe.unsteady = True pipe.multizone = True test_list.append(pipe) # Rotating cylinders rotating_cylinders = TestCase('rotating_cylinders') rotating_cylinders.cfg_dir = "sliding_interface/rotating_cylinders" rotating_cylinders.cfg_file = "rot_cylinders_WA.cfg" rotating_cylinders.test_iter = 3 rotating_cylinders.test_vals = [ 3.000000, 0.000000, 0.777567, 1.134807, 1.224136 ] rotating_cylinders.unsteady = True rotating_cylinders.multizone = True test_list.append(rotating_cylinders) # Supersonic vortex shedding supersonic_vortex_shedding = TestCase('supersonic_vortex_shedding') supersonic_vortex_shedding.cfg_dir = "sliding_interface/supersonic_vortex_shedding" supersonic_vortex_shedding.cfg_file = "sup_vor_shed_WA.cfg" supersonic_vortex_shedding.test_iter = 5 supersonic_vortex_shedding.test_vals = [ 5.000000, 0.000000, 1.216554, 1.639121 ] supersonic_vortex_shedding.unsteady = True supersonic_vortex_shedding.multizone = True test_list.append(supersonic_vortex_shedding) # Bars_SST_2D bars_SST_2D = TestCase('bars_SST_2D') bars_SST_2D.cfg_dir = "sliding_interface/bars_SST_2D" bars_SST_2D.cfg_file = "bars.cfg" bars_SST_2D.test_iter = 13 bars_SST_2D.test_vals = [13.000000, -0.619179, -1.564701] bars_SST_2D.multizone = True test_list.append(bars_SST_2D) ########################## ### FEA - FSI ### ########################## # Static beam, 3d statbeam3d = TestCase('statbeam3d') statbeam3d.cfg_dir = "fea_fsi/StatBeam_3d" statbeam3d.cfg_file = "configBeam_3d.cfg" statbeam3d.test_iter = 0 statbeam3d.test_vals = [-2.378370, -1.585252, -2.028505, 6.4359e+04] test_list.append(statbeam3d) # Dynamic beam, 2d dynbeam2d = TestCase('dynbeam2d') dynbeam2d.cfg_dir = "fea_fsi/DynBeam_2d" dynbeam2d.cfg_file = "configBeam_2d.cfg" dynbeam2d.test_iter = 6 dynbeam2d.test_vals = [-3.240015, 2.895057, -0.353146, 66127.000000] dynbeam2d.unsteady = True test_list.append(dynbeam2d) # FSI, 2d fsi2d = TestCase('fsi2d') fsi2d.cfg_dir = "fea_fsi/WallChannel_2d" fsi2d.cfg_file = "configFSI.cfg" fsi2d.test_iter = 4 fsi2d.test_vals = [4.000000, 0.000000, -3.764089, -4.081119] fsi2d.multizone = True fsi2d.unsteady = True test_list.append(fsi2d) # FSI, Static, 2D, new mesh solver stat_fsi = TestCase('stat_fsi') stat_fsi.cfg_dir = "fea_fsi/stat_fsi" stat_fsi.cfg_file = "config.cfg" stat_fsi.test_iter = 7 stat_fsi.test_vals = [-3.242834, -4.866608, 0.000000, 11.000000] stat_fsi.multizone = True test_list.append(stat_fsi) # FSI, Dynamic, 2D, new mesh solver dyn_fsi = TestCase('dyn_fsi') dyn_fsi.cfg_dir = "fea_fsi/dyn_fsi" dyn_fsi.cfg_file = "config.cfg" dyn_fsi.test_iter = 4 dyn_fsi.test_vals = [-4.379823, -4.005990, 0.000000, 74.000000] dyn_fsi.multizone = True dyn_fsi.unsteady = True test_list.append(dyn_fsi) # FSI, Static, 2D, new mesh solver, restart stat_fsi_restart = TestCase('stat_fsi_restart') stat_fsi_restart.cfg_dir = "fea_fsi/stat_fsi" stat_fsi_restart.cfg_file = "config_restart.cfg" stat_fsi_restart.test_iter = 1 stat_fsi_restart.test_vals = [-3.474239, -4.250710, 0.000000, 36.000000] stat_fsi_restart.multizone = True test_list.append(stat_fsi_restart) ############################################## ### Method of Manufactured Solutions (MMS) ### ############################################## # FVM, compressible, laminar N-S mms_fvm_ns = TestCase('mms_fvm_ns') mms_fvm_ns.cfg_dir = "mms/fvm_navierstokes" mms_fvm_ns.cfg_file = "lam_mms_roe.cfg" mms_fvm_ns.test_iter = 20 mms_fvm_ns.test_vals = [-2.851428, 2.192348, 0.000000, 0.000000] test_list.append(mms_fvm_ns) ###################################### ### RUN TESTS ### ###################################### for test in test_list: test.su2_exec = "SU2_CFD -t 2" test.timeout = 600 test.tol = 1e-4 #end pass_list = [test.run_test() for test in test_list] # Tests summary print('==================================================================') print('Summary of the parallel tests') print('python version:', sys.version) for i, test in enumerate(test_list): if (pass_list[i]): print(' passed - %s' % test.tag) else: print('* FAILED - %s' % test.tag) if all(pass_list): sys.exit(0) else: sys.exit(1)
def main(): '''This program runs SU2 and ensures that the output matches specified values. This will be used to do checks when code is pushed to github to make sure nothing is broken. ''' test_list = [] ########################## ### Compressible Euler ### ########################## # Channel channel = TestCase('channel') channel.cfg_dir = "euler/channel" channel.cfg_file = "inv_channel_RK.cfg" channel.test_iter = 20 channel.test_vals = [-2.667328, 2.797437, 0.018714, 0.006906] test_list.append(channel) # NACA0012 naca0012 = TestCase('naca0012') naca0012.cfg_dir = "euler/naca0012" naca0012.cfg_file = "inv_NACA0012_Roe.cfg" naca0012.test_iter = 20 naca0012.test_vals = [-4.023999, -3.515034, 0.339426, 0.022217] test_list.append(naca0012) # Supersonic wedge wedge = TestCase('wedge') wedge.cfg_dir = "euler/wedge" wedge.cfg_file = "inv_wedge_HLLC.cfg" wedge.test_iter = 20 wedge.test_vals = [-0.942862, 4.784581, -0.208106, 0.036665] test_list.append(wedge) # ONERA M6 Wing oneram6 = TestCase('oneram6') oneram6.cfg_dir = "euler/oneram6" oneram6.cfg_file = "inv_ONERAM6.cfg" oneram6.test_iter = 10 oneram6.test_vals = [0.281703, 0.011821] test_list.append(oneram6) # Fixed CL NACA0012 fixedCL_naca0012 = TestCase('fixedcl_naca0012') fixedCL_naca0012.cfg_dir = "fixed_cl/naca0012" fixedCL_naca0012.cfg_file = "inv_NACA0012.cfg" fixedCL_naca0012.test_iter = 10 fixedCL_naca0012.test_vals = [-7.374806, -1.872330, 0.300000, 0.019471] test_list.append(fixedCL_naca0012) # HYPERSONIC FLOW PAST BLUNT BODY bluntbody = TestCase('bluntbody') bluntbody.cfg_dir = "euler/bluntbody" bluntbody.cfg_file = "blunt.cfg" bluntbody.test_iter = 20 bluntbody.test_vals = [0.540010, 6.916656, 0.000027, 1.869004] test_list.append(bluntbody) ########################## ### Compressible N-S ### ########################## # Laminar flat plate flatplate = TestCase('flatplate') flatplate.cfg_dir = "navierstokes/flatplate" flatplate.cfg_file = "lam_flatplate.cfg" flatplate.test_iter = 20 flatplate.test_vals = [ -4.680775, 0.781235, -0.135957, 0.022978, 2.8549e-03, 2.3621e+00, -2.3592e+00 ] test_list.append(flatplate) # Laminar cylinder (steady) cylinder = TestCase('cylinder') cylinder.cfg_dir = "navierstokes/cylinder" cylinder.cfg_file = "lam_cylinder.cfg" cylinder.test_iter = 25 cylinder.test_vals = [-6.765429, -1.297425, 0.019571, 0.310232] test_list.append(cylinder) # Laminar cylinder (low Mach correction) cylinder_lowmach = TestCase('cylinder_lowmach') cylinder_lowmach.cfg_dir = "navierstokes/cylinder" cylinder_lowmach.cfg_file = "cylinder_lowmach.cfg" cylinder_lowmach.test_iter = 25 cylinder_lowmach.test_vals = [-6.850130, -1.388096, -0.056036, 108.140811] test_list.append(cylinder_lowmach) # 2D Poiseuille flow (body force driven with periodic inlet / outlet) poiseuille = TestCase('poiseuille') poiseuille.cfg_dir = "navierstokes/poiseuille" poiseuille.cfg_file = "lam_poiseuille.cfg" poiseuille.test_iter = 10 poiseuille.test_vals = [-5.048282, 0.650814, 0.008714, 13.677678] test_list.append(poiseuille) # 2D Poiseuille flow (inlet profile file) poiseuille_profile = TestCase('poiseuille_profile') poiseuille_profile.cfg_dir = "navierstokes/poiseuille" poiseuille_profile.cfg_file = "profile_poiseuille.cfg" poiseuille_profile.test_iter = 10 poiseuille_profile.test_vals = [-12.494752, -7.712204, -0.000000, 2.085796] test_list.append(poiseuille_profile) ########################## ### Compressible RANS ### ########################## # RAE2822 SA rae2822_sa = TestCase('rae2822_sa') rae2822_sa.cfg_dir = "rans/rae2822" rae2822_sa.cfg_file = "turb_SA_RAE2822.cfg" rae2822_sa.test_iter = 20 rae2822_sa.test_vals = [-2.020123, -5.269330, 0.807147, 0.060499] test_list.append(rae2822_sa) # RAE2822 SST rae2822_sst = TestCase('rae2822_sst') rae2822_sst.cfg_dir = "rans/rae2822" rae2822_sst.cfg_file = "turb_SST_RAE2822.cfg" rae2822_sst.test_iter = 20 rae2822_sst.test_vals = [-0.510635, 4.871104, 0.811904, 0.061614] test_list.append(rae2822_sst) # RAE2822 SST_SUST rae2822_sst_sust = TestCase('rae2822_sst_sust') rae2822_sst_sust.cfg_dir = "rans/rae2822" rae2822_sst_sust.cfg_file = "turb_SST_SUST_RAE2822.cfg" rae2822_sst_sust.test_iter = 20 rae2822_sst_sust.test_vals = [-2.430589, 4.871104, 0.811903, 0.061614] test_list.append(rae2822_sst_sust) # Flat plate turb_flatplate = TestCase('turb_flatplate') turb_flatplate.cfg_dir = "rans/flatplate" turb_flatplate.cfg_file = "turb_SA_flatplate.cfg" turb_flatplate.test_iter = 20 turb_flatplate.test_vals = [-4.157169, -6.737133, -0.176253, 0.057446] test_list.append(turb_flatplate) # ONERA M6 Wing turb_oneram6 = TestCase('turb_oneram6') turb_oneram6.cfg_dir = "rans/oneram6" turb_oneram6.cfg_file = "turb_ONERAM6.cfg" turb_oneram6.test_iter = 10 turb_oneram6.test_vals = [-2.388836, -6.689414, 0.230320, 0.157640] test_list.append(turb_oneram6) # NACA0012 (SA, FUN3D finest grid results: CL=1.0983, CD=0.01242) turb_naca0012_sa = TestCase('turb_naca0012_sa') turb_naca0012_sa.cfg_dir = "rans/naca0012" turb_naca0012_sa.cfg_file = "turb_NACA0012_sa.cfg" turb_naca0012_sa.test_iter = 10 turb_naca0012_sa.test_vals = [ -8.627052, -10.377936, 1.064491, 0.019710, 20.000000, -1.763095, 20.000000, -4.794176 ] test_list.append(turb_naca0012_sa) # NACA0012 (SST, FUN3D finest grid results: CL=1.0840, CD=0.01253) turb_naca0012_sst = TestCase('turb_naca0012_sst') turb_naca0012_sst.cfg_dir = "rans/naca0012" turb_naca0012_sst.cfg_file = "turb_NACA0012_sst.cfg" turb_naca0012_sst.test_iter = 10 turb_naca0012_sst.test_vals = [ -11.450475, -12.797872, -5.863655, 1.049989, 0.019163, -1.856263 ] test_list.append(turb_naca0012_sst) # NACA0012 (SST_SUST, FUN3D finest grid results: CL=1.0840, CD=0.01253) turb_naca0012_sst_sust = TestCase('turb_naca0012_sst_sust') turb_naca0012_sst_sust.cfg_dir = "rans/naca0012" turb_naca0012_sst_sust.cfg_file = "turb_NACA0012_sst_sust.cfg" turb_naca0012_sst_sust.test_iter = 10 turb_naca0012_sst_sust.test_vals = [ -11.367051, -12.640670, -5.746919, 1.005233, 0.019017, -1.913905 ] test_list.append(turb_naca0012_sst_sust) # NACA0012 (SST, fixed values for turbulence quantities) turb_naca0012_sst_fixedvalues = TestCase('turb_naca0012_sst_fixedvalues') turb_naca0012_sst_fixedvalues.cfg_dir = "rans/naca0012" turb_naca0012_sst_fixedvalues.cfg_file = "turb_NACA0012_sst_fixedvalues.cfg" turb_naca0012_sst_fixedvalues.test_iter = 10 turb_naca0012_sst_fixedvalues.test_vals = [ -5.192502, -9.575898, -1.568269, 1.022571, 0.040527, -2.384329 ] test_list.append(turb_naca0012_sst_fixedvalues) # NACA0012 (SST, explicit Euler for flow and turbulence equations) turb_naca0012_sst_expliciteuler = TestCase( 'turb_naca0012_sst_expliciteuler') turb_naca0012_sst_expliciteuler.cfg_dir = "rans/naca0012" turb_naca0012_sst_expliciteuler.cfg_file = "turb_NACA0012_sst_expliciteuler.cfg" turb_naca0012_sst_expliciteuler.test_iter = 10 turb_naca0012_sst_expliciteuler.test_vals = [ -3.532228, -3.157766, 3.364025, 1.124824, 0.501717, -float("inf") ] test_list.append(turb_naca0012_sst_expliciteuler) # PROPELLER propeller = TestCase('propeller') propeller.cfg_dir = "rans/propeller" propeller.cfg_file = "propeller.cfg" propeller.test_iter = 10 propeller.test_vals = [-3.389575, -8.409529, 0.000048, 0.056329] test_list.append(propeller) ####################################### ### Axisymmetric Compressible RANS ### ####################################### # Axisymmetric air nozzle (transonic) axi_rans_air_nozzle = TestCase('axi_rans_air_nozzle') axi_rans_air_nozzle.cfg_dir = "axisymmetric_rans/air_nozzle" axi_rans_air_nozzle.cfg_file = "air_nozzle.cfg" axi_rans_air_nozzle.test_iter = 10 axi_rans_air_nozzle.test_vals = [ -12.093575, -6.630426, -8.798725, -2.399130 ] test_list.append(axi_rans_air_nozzle) ################################# ## Compressible RANS Restart ### ################################# # NACA0012 SST Multigrid restart turb_naca0012_sst_restart_mg = TestCase('turb_naca0012_sst_restart_mg') turb_naca0012_sst_restart_mg.cfg_dir = "rans/naca0012" turb_naca0012_sst_restart_mg.cfg_file = "turb_NACA0012_sst_multigrid_restart.cfg" turb_naca0012_sst_restart_mg.test_iter = 20 turb_naca0012_sst_restart_mg.ntest_vals = 5 turb_naca0012_sst_restart_mg.test_vals = [ -7.652987, -7.729472, -1.981061, -0.000015, 0.079061 ] test_list.append(turb_naca0012_sst_restart_mg) ############################# ### Compressibele RANS UQ ### ############################# # NACA0012 1c turb_naca0012_1c = TestCase('turb_naca0012_1c') turb_naca0012_1c.cfg_dir = "rans_uq/naca0012" turb_naca0012_1c.cfg_file = "turb_NACA0012_uq_1c.cfg" turb_naca0012_1c.test_iter = 10 turb_naca0012_1c.test_vals = [-4.980749, 1.139261, 0.244644, -0.112857] test_list.append(turb_naca0012_1c) # NACA0012 2c turb_naca0012_2c = TestCase('turb_naca0012_2c') turb_naca0012_2c.cfg_dir = "rans_uq/naca0012" turb_naca0012_2c.cfg_file = "turb_NACA0012_uq_2c.cfg" turb_naca0012_2c.test_iter = 10 turb_naca0012_2c.test_vals = [-5.483337, 0.968887, 0.212057, -0.120310] test_list.append(turb_naca0012_2c) # NACA0012 3c turb_naca0012_3c = TestCase('turb_naca0012_3c') turb_naca0012_3c.cfg_dir = "rans_uq/naca0012" turb_naca0012_3c.cfg_file = "turb_NACA0012_uq_3c.cfg" turb_naca0012_3c.test_iter = 10 turb_naca0012_3c.test_vals = [-5.584300, 0.931383, 0.205113, -0.120892] test_list.append(turb_naca0012_3c) # NACA0012 p1c1 turb_naca0012_p1c1 = TestCase('turb_naca0012_p1c1') turb_naca0012_p1c1.cfg_dir = "rans_uq/naca0012" turb_naca0012_p1c1.cfg_file = "turb_NACA0012_uq_p1c1.cfg" turb_naca0012_p1c1.test_iter = 10 turb_naca0012_p1c1.test_vals = [-5.133233, 1.075372, 0.337556, -0.077868] test_list.append(turb_naca0012_p1c1) # NACA0012 p1c2 turb_naca0012_p1c2 = TestCase('turb_naca0012_p1c2') turb_naca0012_p1c2.cfg_dir = "rans_uq/naca0012" turb_naca0012_p1c2.cfg_file = "turb_NACA0012_uq_p1c2.cfg" turb_naca0012_p1c2.test_iter = 10 turb_naca0012_p1c2.test_vals = [-5.554619, 0.943693, 0.226386, -0.116553] test_list.append(turb_naca0012_p1c2) ###################################### ### Harmonic Balance ### ###################################### # Description of the regression test harmonic_balance = TestCase('harmonic_balance') harmonic_balance.cfg_dir = "harmonic_balance" harmonic_balance.cfg_file = "HB.cfg" harmonic_balance.test_iter = 25 harmonic_balance.test_vals = [-1.589740, 3.922578, 0.006703, 0.099632] harmonic_balance.new_output = False test_list.append(harmonic_balance) # Turbulent pitching NACA 64a010 airfoil hb_rans_preconditioning = TestCase('hb_rans_preconditioning') hb_rans_preconditioning.cfg_dir = "harmonic_balance/hb_rans_preconditioning" hb_rans_preconditioning.cfg_file = "davis.cfg" hb_rans_preconditioning.test_iter = 25 hb_rans_preconditioning.test_vals = [ -1.902111, -5.949288, 0.007768, 0.128060 ] hb_rans_preconditioning.new_output = False test_list.append(hb_rans_preconditioning) ############################# ### Incompressible Euler ### ############################# # NACA0012 Hydrofoil inc_euler_naca0012 = TestCase('inc_euler_naca0012') inc_euler_naca0012.cfg_dir = "incomp_euler/naca0012" inc_euler_naca0012.cfg_file = "incomp_NACA0012.cfg" inc_euler_naca0012.test_iter = 20 inc_euler_naca0012.test_vals = [-4.858287, -3.810487, 0.491850, 0.007002] inc_euler_naca0012.new_output = True test_list.append(inc_euler_naca0012) # C-D nozzle with pressure inlet and mass flow outlet inc_nozzle = TestCase('inc_nozzle') inc_nozzle.cfg_dir = "incomp_euler/nozzle" inc_nozzle.cfg_file = "inv_nozzle.cfg" inc_nozzle.test_iter = 20 inc_nozzle.test_vals = [-5.971249, -4.910844, -0.000196, 0.121635] inc_nozzle.new_output = True test_list.append(inc_nozzle) ############################# ### Incompressible N-S ### ############################# # Laminar cylinder inc_lam_cylinder = TestCase('inc_lam_cylinder') inc_lam_cylinder.cfg_dir = "incomp_navierstokes/cylinder" inc_lam_cylinder.cfg_file = "incomp_cylinder.cfg" inc_lam_cylinder.test_iter = 10 inc_lam_cylinder.test_vals = [-4.004277, -3.227956, 0.003851, 7.626583] inc_lam_cylinder.new_output = True test_list.append(inc_lam_cylinder) # Buoyancy-driven cavity inc_buoyancy = TestCase('inc_buoyancy') inc_buoyancy.cfg_dir = "incomp_navierstokes/buoyancy_cavity" inc_buoyancy.cfg_file = "lam_buoyancy_cavity.cfg" inc_buoyancy.test_iter = 20 inc_buoyancy.test_vals = [-4.432484, 0.507522, 0.000000, 0.000000] inc_buoyancy.new_output = True test_list.append(inc_buoyancy) # Laminar heated cylinder with polynomial fluid model inc_poly_cylinder = TestCase('inc_poly_cylinder') inc_poly_cylinder.cfg_dir = "incomp_navierstokes/cylinder" inc_poly_cylinder.cfg_file = "poly_cylinder.cfg" inc_poly_cylinder.test_iter = 20 inc_poly_cylinder.test_vals = [-7.851512, -2.093420, 0.029974, 1.921595] inc_poly_cylinder.new_output = True test_list.append(inc_poly_cylinder) # X-coarse laminar bend as a mixed element CGNS test inc_lam_bend = TestCase('inc_lam_bend') inc_lam_bend.cfg_dir = "incomp_navierstokes/bend" inc_lam_bend.cfg_file = "lam_bend.cfg" inc_lam_bend.test_iter = 10 inc_lam_bend.test_vals = [-3.436191, -3.098014, -0.017338, -0.193981] test_list.append(inc_lam_bend) ############################ ### Incompressible RANS ### ############################ # NACA0012, SA inc_turb_naca0012 = TestCase('inc_turb_naca0012') inc_turb_naca0012.cfg_dir = "incomp_rans/naca0012" inc_turb_naca0012.cfg_file = "naca0012.cfg" inc_turb_naca0012.test_iter = 20 inc_turb_naca0012.test_vals = [-4.788405, -11.040493, 0.000008, 0.309506] inc_turb_naca0012.new_output = True test_list.append(inc_turb_naca0012) # NACA0012, SST_SUST inc_turb_naca0012_sst_sust = TestCase('inc_turb_naca0012_sst_sust') inc_turb_naca0012_sst_sust.cfg_dir = "incomp_rans/naca0012" inc_turb_naca0012_sst_sust.cfg_file = "naca0012_SST_SUST.cfg" inc_turb_naca0012_sst_sust.test_iter = 20 inc_turb_naca0012_sst_sust.test_vals = [ -7.276424, 0.145860, 0.000003, 0.312011 ] test_list.append(inc_turb_naca0012_sst_sust) ###################################### ### Moving Wall ### ###################################### # Lid-driven cavity cavity = TestCase('cavity') cavity.cfg_dir = "moving_wall/cavity" cavity.cfg_file = "lam_cavity.cfg" cavity.test_iter = 25 cavity.test_vals = [-5.627934, -0.164469, 0.052000, 2.547063] test_list.append(cavity) # Spinning cylinder spinning_cylinder = TestCase('spinning_cylinder') spinning_cylinder.cfg_dir = "moving_wall/spinning_cylinder" spinning_cylinder.cfg_file = "spinning_cylinder.cfg" spinning_cylinder.test_iter = 25 spinning_cylinder.test_vals = [-8.001289, -2.607956, 1.501322, 1.488559] test_list.append(spinning_cylinder) ###################################### ### Unsteady ### ###################################### # Square cylinder square_cylinder = TestCase('square_cylinder') square_cylinder.cfg_dir = "unsteady/square_cylinder" square_cylinder.cfg_file = "turb_square.cfg" square_cylinder.test_iter = 3 square_cylinder.test_vals = [-1.162564, 0.066401, 1.399788, 2.220402] square_cylinder.unsteady = True test_list.append(square_cylinder) # Gust sine_gust = TestCase('sine_gust') sine_gust.cfg_dir = "gust" sine_gust.cfg_file = "inv_gust_NACA0012.cfg" sine_gust.test_iter = 5 sine_gust.test_vals = [-1.977520, 3.481804, -0.012402, -0.007454] sine_gust.unsteady = True test_list.append(sine_gust) # Aeroelastic aeroelastic = TestCase('aeroelastic') aeroelastic.cfg_dir = "aeroelastic" aeroelastic.cfg_file = "aeroelastic_NACA64A010.cfg" aeroelastic.test_iter = 2 aeroelastic.test_vals = [0.074433, 0.033108, -0.001650, -0.000127] aeroelastic.unsteady = True test_list.append(aeroelastic) # Delayed Detached Eddy Simulation ddes_flatplate = TestCase('ddes_flatplate') ddes_flatplate.cfg_dir = "ddes/flatplate" ddes_flatplate.cfg_file = "ddes_flatplate.cfg" ddes_flatplate.test_iter = 10 ddes_flatplate.test_vals = [-2.714758, -5.883004, -0.215005, 0.023783] ddes_flatplate.unsteady = True test_list.append(ddes_flatplate) # unsteady pitching NACA0015, SA unst_inc_turb_naca0015_sa = TestCase('unst_inc_turb_naca0015_sa') unst_inc_turb_naca0015_sa.cfg_dir = "unsteady/pitching_naca0015_rans_inc" unst_inc_turb_naca0015_sa.cfg_file = "config_incomp_turb_sa.cfg" unst_inc_turb_naca0015_sa.test_iter = 1 unst_inc_turb_naca0015_sa.test_vals = [ -3.008629, -6.888974, 1.435193, 0.433537 ] unst_inc_turb_naca0015_sa.unsteady = True test_list.append(unst_inc_turb_naca0015_sa) # unsteady pitching NACA0012, Euler, Deforming unst_deforming_naca0012 = TestCase('unst_deforming_naca0012') unst_deforming_naca0012.cfg_dir = "disc_adj_euler/naca0012_pitching_def" unst_deforming_naca0012.cfg_file = "inv_NACA0012_pitching_deform.cfg" unst_deforming_naca0012.test_iter = 5 unst_deforming_naca0012.test_vals = [ -3.665120, -3.793643, -3.716518, -3.148310 ] unst_deforming_naca0012.unsteady = True test_list.append(unst_deforming_naca0012) ###################################### ### NICFD ### ###################################### # Rarefaction shock wave edge_VW edge_VW = TestCase('edge_VW') edge_VW.cfg_dir = "nicf/edge" edge_VW.cfg_file = "edge_VW.cfg" edge_VW.test_iter = 100 edge_VW.test_vals = [-5.040287, 1.124488, -0.000009, 0.000000] test_list.append(edge_VW) # Rarefaction shock wave edge_PPR edge_PPR = TestCase('edge_PPR') edge_PPR.cfg_dir = "nicf/edge" edge_PPR.cfg_file = "edge_PPR.cfg" edge_PPR.test_iter = 100 edge_PPR.test_vals = [-5.401601, 0.738205, -0.000035, 0.000000] test_list.append(edge_PPR) ###################################### ### Turbomachinery ### ###################################### # Jones APU Turbocharger Jones_tc = TestCase('jones_turbocharger') Jones_tc.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc.cfg_file = "Jones.cfg" Jones_tc.test_iter = 5 Jones_tc.test_vals = [-5.279930, 0.379651, 72.212100, 1.277439] Jones_tc.new_output = False test_list.append(Jones_tc) # Jones APU Turbocharger restart Jones_tc_rst = TestCase('jones_turbocharger_restart') Jones_tc_rst.cfg_dir = "turbomachinery/APU_turbocharger" Jones_tc_rst.cfg_file = "Jones_rst.cfg" Jones_tc_rst.test_iter = 5 Jones_tc_rst.test_vals = [-4.625251, -1.568824, 33.995140, 10.181940] Jones_tc_rst.new_output = False test_list.append(Jones_tc_rst) # 2D axial stage axial_stage2D = TestCase('axial_stage2D') axial_stage2D.cfg_dir = "turbomachinery/axial_stage_2D" axial_stage2D.cfg_file = "Axial_stage2D.cfg" axial_stage2D.test_iter = 20 axial_stage2D.test_vals = [-1.933139, 5.380376, 73.357910, 0.925874] axial_stage2D.new_output = False test_list.append(axial_stage2D) # 2D transonic stator transonic_stator = TestCase('transonic_stator') transonic_stator.cfg_dir = "turbomachinery/transonic_stator_2D" transonic_stator.cfg_file = "transonic_stator.cfg" transonic_stator.test_iter = 20 transonic_stator.test_vals = [-0.565608, 5.833408, 96.476150, 0.062517] transonic_stator.new_output = False test_list.append(transonic_stator) # 2D transonic stator restart transonic_stator_rst = TestCase('transonic_stator_restart') transonic_stator_rst.cfg_dir = "turbomachinery/transonic_stator_2D" transonic_stator_rst.cfg_file = "transonic_stator_rst.cfg" transonic_stator_rst.test_iter = 20 transonic_stator_rst.test_vals = [-6.619122, -0.615716, 5.002986, 0.002951] transonic_stator_rst.new_output = False test_list.append(transonic_stator_rst) ###################################### ### Sliding Mesh ### ###################################### # Uniform flow uniform_flow = TestCase('uniform_flow') uniform_flow.cfg_dir = "sliding_interface/uniform_flow" uniform_flow.cfg_file = "uniform_NN.cfg" uniform_flow.test_iter = 5 uniform_flow.test_vals = [5.000000, 0.000000, -0.188748, -10.631524] uniform_flow.unsteady = True uniform_flow.multizone = True test_list.append(uniform_flow) # Channel_2D channel_2D = TestCase('channel_2D') channel_2D.cfg_dir = "sliding_interface/channel_2D" channel_2D.cfg_file = "channel_2D_WA.cfg" channel_2D.test_iter = 2 channel_2D.test_vals = [2.000000, 0.000000, 0.397972, 0.352756, 0.405398] channel_2D.unsteady = True channel_2D.multizone = True test_list.append(channel_2D) # Channel_3D channel_3D = TestCase('channel_3D') channel_3D.cfg_dir = "sliding_interface/channel_3D" channel_3D.cfg_file = "channel_3D_WA.cfg" channel_3D.test_iter = 2 channel_3D.test_vals = [2.000000, 0.000000, 0.620171, 0.505178, 0.415313] channel_3D.unsteady = True channel_3D.multizone = True test_list.append(channel_3D) # Pipe pipe = TestCase('pipe') pipe.cfg_dir = "sliding_interface/pipe" pipe.cfg_file = "pipe_NN.cfg" pipe.test_iter = 2 pipe.test_vals = [0.150024, 0.491949, 0.677759, 0.963991, 1.006947] pipe.unsteady = True pipe.multizone = True test_list.append(pipe) # Rotating cylinders rotating_cylinders = TestCase('rotating_cylinders') rotating_cylinders.cfg_dir = "sliding_interface/rotating_cylinders" rotating_cylinders.cfg_file = "rot_cylinders_WA.cfg" rotating_cylinders.test_iter = 3 rotating_cylinders.test_vals = [ 3.000000, 0.000000, 0.777568, 1.134807, 1.224137 ] rotating_cylinders.unsteady = True rotating_cylinders.multizone = True test_list.append(rotating_cylinders) # Supersonic vortex shedding supersonic_vortex_shedding = TestCase('supersonic_vortex_shedding') supersonic_vortex_shedding.cfg_dir = "sliding_interface/supersonic_vortex_shedding" supersonic_vortex_shedding.cfg_file = "sup_vor_shed_WA.cfg" supersonic_vortex_shedding.test_iter = 5 supersonic_vortex_shedding.test_vals = [ 5.000000, 0.000000, 1.216554, 1.639119 ] supersonic_vortex_shedding.unsteady = True supersonic_vortex_shedding.multizone = True test_list.append(supersonic_vortex_shedding) # Bars_SST_2D bars_SST_2D = TestCase('bars_SST_2D') bars_SST_2D.cfg_dir = "sliding_interface/bars_SST_2D" bars_SST_2D.cfg_file = "bars.cfg" bars_SST_2D.test_iter = 13 bars_SST_2D.test_vals = [13.000000, -0.619686, -1.564595] bars_SST_2D.multizone = True test_list.append(bars_SST_2D) # Sliding mesh with incompressible flows (steady) slinc_steady = TestCase('slinc_steady') slinc_steady.cfg_dir = "sliding_interface/incompressible_steady" slinc_steady.cfg_file = "config.cfg" slinc_steady.test_iter = 19 slinc_steady.test_vals = [19.000000, -1.800401, -2.114687] slinc_steady.multizone = True test_list.append(slinc_steady) ########################## ### FEA - FSI ### ########################## # Static beam, 3d statbeam3d = TestCase('statbeam3d') statbeam3d.cfg_dir = "fea_fsi/StatBeam_3d" statbeam3d.cfg_file = "configBeam_3d.cfg" statbeam3d.test_iter = 0 statbeam3d.test_vals = [-2.378370, -1.585252, -2.028505, 64359.000000] test_list.append(statbeam3d) # Dynamic beam, 2d dynbeam2d = TestCase('dynbeam2d') dynbeam2d.cfg_dir = "fea_fsi/DynBeam_2d" dynbeam2d.cfg_file = "configBeam_2d.cfg" dynbeam2d.test_iter = 6 dynbeam2d.test_vals = [-3.240015, 2.895057, -0.353146, 66127.000000] dynbeam2d.unsteady = True test_list.append(dynbeam2d) # FSI, 2d fsi2d = TestCase('fsi2d') fsi2d.cfg_dir = "fea_fsi/WallChannel_2d" fsi2d.cfg_file = "configFSI.cfg" fsi2d.test_iter = 4 fsi2d.test_vals = [4.000000, 0.000000, -3.743227, -4.133479] fsi2d.multizone = True fsi2d.unsteady = True test_list.append(fsi2d) # FSI, Static, 2D, new mesh solver stat_fsi = TestCase('stat_fsi') stat_fsi.cfg_dir = "fea_fsi/stat_fsi" stat_fsi.cfg_file = "config.cfg" stat_fsi.test_iter = 7 stat_fsi.test_vals = [-5.403596, -5.722583, 0.000000, 10.000000] stat_fsi.multizone = True test_list.append(stat_fsi) # FSI, Dynamic, 2D, new mesh solver dyn_fsi = TestCase('dyn_fsi') dyn_fsi.cfg_dir = "fea_fsi/dyn_fsi" dyn_fsi.cfg_file = "config.cfg" dyn_fsi.test_iter = 4 dyn_fsi.test_vals = [-4.355806, -4.060582, 0.000000, 102.000000] dyn_fsi.multizone = True dyn_fsi.unsteady = True test_list.append(dyn_fsi) # FSI, Static, 2D, new mesh solver, restart stat_fsi_restart = TestCase('stat_fsi_restart') stat_fsi_restart.cfg_dir = "fea_fsi/stat_fsi" stat_fsi_restart.cfg_file = "config_restart.cfg" stat_fsi_restart.test_iter = 1 stat_fsi_restart.test_vals = [-3.474082, -4.242343, 0.000000, 37.000000] stat_fsi_restart.multizone = True test_list.append(stat_fsi_restart) ############################################## ### Method of Manufactured Solutions (MMS) ### ############################################## # FVM, compressible, laminar N-S mms_fvm_ns = TestCase('mms_fvm_ns') mms_fvm_ns.cfg_dir = "mms/fvm_navierstokes" mms_fvm_ns.cfg_file = "lam_mms_roe.cfg" mms_fvm_ns.test_iter = 20 mms_fvm_ns.test_vals = [-2.851428, 2.192348, 0.000000, 0.000000] test_list.append(mms_fvm_ns) # FVM, incompressible, euler mms_fvm_inc_euler = TestCase('mms_fvm_inc_euler') mms_fvm_inc_euler.cfg_dir = "mms/fvm_incomp_euler" mms_fvm_inc_euler.cfg_file = "inv_mms_jst.cfg" mms_fvm_inc_euler.test_iter = 20 mms_fvm_inc_euler.test_vals = [-9.128033, -9.441406, 0.000000, 0.000000] test_list.append(mms_fvm_inc_euler) # FVM, incompressible, laminar N-S mms_fvm_inc_ns = TestCase('mms_fvm_inc_ns') mms_fvm_inc_ns.cfg_dir = "mms/fvm_incomp_navierstokes" mms_fvm_inc_ns.cfg_file = "lam_mms_fds.cfg" mms_fvm_inc_ns.test_iter = 20 mms_fvm_inc_ns.test_vals = [-7.414944, -7.631546, 0.000000, 0.000000] test_list.append(mms_fvm_inc_ns) ###################################### ### RUN TESTS ### ###################################### for test in test_list: test.su2_exec = "SU2_CFD -t 2" test.timeout = 600 test.tol = 1e-4 #end pass_list = [test.run_test() for test in test_list] # Tests summary print('==================================================================') print('Summary of the hybrid parallel tests') print('python version:', sys.version) for i, test in enumerate(test_list): if (pass_list[i]): print(' passed - %s' % test.tag) else: print('* FAILED - %s' % test.tag) if all(pass_list): sys.exit(0) else: sys.exit(1)
def main(): '''This program runs SU2 and ensures that the output matches specified values. This will be used to do checks when code is pushed to github to make sure nothing is broken. ''' test_list = [] ###################################### ### RUN TUTORIAL CASES ### ###################################### ### CHT # CHT incompressible unsteady cht_incompressible_unsteady = TestCase('cht_incompressible_unsteady') cht_incompressible_unsteady.cfg_dir = "../Tutorials/multiphysics/unsteady_cht/" cht_incompressible_unsteady.cfg_file = "cht_2d_3cylinders.cfg" cht_incompressible_unsteady.test_iter = 2 cht_incompressible_unsteady.test_vals = [ -2.659390, -2.533160, -0.080399, -0.080399, -0.080399, -12.421450, 0.0000e+00, 0.0000e+00, 2.3824e+02 ] #last 9 columns cht_incompressible_unsteady.su2_exec = "mpirun -n 2 SU2_CFD" cht_incompressible_unsteady.timeout = 1600 cht_incompressible_unsteady.multizone = True cht_incompressible_unsteady.unsteady = True cht_incompressible_unsteady.tol = 0.00001 test_list.append(cht_incompressible_unsteady) # CHT incompressible, 2D, 3 pins in crossflow cht_incompressible = TestCase('cht_incompressible') cht_incompressible.cfg_dir = "../Tutorials/multiphysics/steady_cht" cht_incompressible.cfg_file = "cht_2d_3cylinders.cfg" cht_incompressible.test_iter = 10 cht_incompressible.test_vals = [ -2.128826, -0.588813, -0.588813, -0.588813 ] #last 4 columns cht_incompressible.su2_exec = "SU2_CFD" cht_incompressible.timeout = 1600 cht_incompressible.multizone = True cht_incompressible.tol = 0.00001 test_list.append(cht_incompressible) ### Incompressible Flow # 2D pin case massflow periodic with heatflux BC and prescribed extracted outlet heat sp_pinArray_2d_mf_hf = TestCase('sp_pinArray_2d_mf_hf') sp_pinArray_2d_mf_hf.cfg_dir = "../Tutorials/incompressible_flow/Inc_Streamwise_Periodic" sp_pinArray_2d_mf_hf.cfg_file = "sp_pinArray_2d_mf_hf.cfg" sp_pinArray_2d_mf_hf.test_iter = 25 sp_pinArray_2d_mf_hf.test_vals = [ -4.600340, 1.470386, -0.778623, 266.569743 ] #last 4 lines sp_pinArray_2d_mf_hf.su2_exec = "mpirun -n 2 SU2_CFD" sp_pinArray_2d_mf_hf.timeout = 1600 sp_pinArray_2d_mf_hf.tol = 0.00001 test_list.append(sp_pinArray_2d_mf_hf) # 2D pin case pressure drop periodic with heatflux BC and temperature periodicity sp_pinArray_2d_dp_hf_tp = TestCase('sp_pinArray_2d_dp_hf_tp') sp_pinArray_2d_dp_hf_tp.cfg_dir = "../Tutorials/incompressible_flow/Inc_Streamwise_Periodic" sp_pinArray_2d_dp_hf_tp.cfg_file = "sp_pinArray_2d_dp_hf_tp.cfg" sp_pinArray_2d_dp_hf_tp.test_iter = 25 sp_pinArray_2d_dp_hf_tp.test_vals = [ -4.667133, 1.395801, -0.709306, 208.023676 ] #last 4 lines sp_pinArray_2d_dp_hf_tp.su2_exec = "mpirun -n 2 SU2_CFD" sp_pinArray_2d_dp_hf_tp.timeout = 1600 sp_pinArray_2d_dp_hf_tp.tol = 0.00001 test_list.append(sp_pinArray_2d_dp_hf_tp) ### Species Transport # 3 species (2 eq) primitive venturi mixing species3_primitiveVenturi = TestCase('species3_primitiveVenturi') species3_primitiveVenturi.cfg_dir = "../Tutorials/incompressible_flow/Inc_Species_Transport" species3_primitiveVenturi.cfg_file = "species3_primitiveVenturi.cfg" species3_primitiveVenturi.test_iter = 50 species3_primitiveVenturi.test_vals = [ -6.028145, -5.258104, -5.107927, -5.922051, -1.582604, -6.314220, -6.431771, 5, -0.808615, 5, -2.351160, 5, -0.288300, 1.645644, 0.499064, 0.601230, 0.545351 ] species3_primitiveVenturi.su2_exec = "mpirun -n 2 SU2_CFD" species3_primitiveVenturi.timeout = 1600 species3_primitiveVenturi.new_output = True species3_primitiveVenturi.tol = 0.00001 test_list.append(species3_primitiveVenturi) # 3 species (2 eq) primitive venturi mixing DAspecies3_primitiveVenturi = TestCase('DAspecies3_primitiveVenturi') DAspecies3_primitiveVenturi.cfg_dir = "../Tutorials/incompressible_flow/Inc_Species_Transport" DAspecies3_primitiveVenturi.cfg_file = "DAspecies3_primitiveVenturi.cfg" DAspecies3_primitiveVenturi.test_iter = 50 DAspecies3_primitiveVenturi.test_vals = [ -8.519150, -7.786969, -7.774848, -7.474167, -12.127149, -12.262476, -11.456643 ] DAspecies3_primitiveVenturi.su2_exec = "mpirun -n 2 SU2_CFD_AD" DAspecies3_primitiveVenturi.timeout = 1600 DAspecies3_primitiveVenturi.new_output = True DAspecies3_primitiveVenturi.tol = 0.00001 test_list.append(DAspecies3_primitiveVenturi) ### Compressible Flow # Inviscid Bump tutorial_inv_bump = TestCase('inviscid_bump_tutorial') tutorial_inv_bump.cfg_dir = "../Tutorials/compressible_flow/Inviscid_Bump" tutorial_inv_bump.cfg_file = "inv_channel.cfg" tutorial_inv_bump.test_iter = 0 tutorial_inv_bump.test_vals = [-1.437425, 4.075857, 0.005439, 0.012998] tutorial_inv_bump.su2_exec = "mpirun -np 2 SU2_CFD" tutorial_inv_bump.timeout = 1600 tutorial_inv_bump.tol = 0.00001 tutorial_inv_bump.no_restart = True test_list.append(tutorial_inv_bump) # Inviscid Wedge tutorial_inv_wedge = TestCase('inviscid_wedge_tutorial') tutorial_inv_wedge.cfg_dir = "../Tutorials/compressible_flow/Inviscid_Wedge" tutorial_inv_wedge.cfg_file = "inv_wedge_HLLC.cfg" tutorial_inv_wedge.test_iter = 0 tutorial_inv_wedge.test_vals = [-0.481460, 5.253008, -0.291747, 0.052515] tutorial_inv_wedge.su2_exec = "mpirun -np 2 SU2_CFD" tutorial_inv_wedge.timeout = 1600 tutorial_inv_wedge.tol = 0.00001 tutorial_inv_wedge.no_restart = True test_list.append(tutorial_inv_wedge) # Inviscid ONERA M6 tutorial_inv_onera = TestCase('inviscid_onera_tutorial') tutorial_inv_onera.cfg_dir = "../Tutorials/compressible_flow/Inviscid_ONERAM6" tutorial_inv_onera.cfg_file = "inv_ONERAM6.cfg" tutorial_inv_onera.test_iter = 0 tutorial_inv_onera.test_vals = [-5.204928, -4.597762, 0.247451, 0.085770] tutorial_inv_onera.su2_exec = "mpirun -np 2 SU2_CFD" tutorial_inv_onera.timeout = 1600 tutorial_inv_onera.tol = 0.00001 tutorial_inv_onera.no_restart = True test_list.append(tutorial_inv_onera) # Laminar Cylinder tutorial_lam_cylinder = TestCase('laminar_cylinder_tutorial') tutorial_lam_cylinder.cfg_dir = "../Tutorials/compressible_flow/Laminar_Cylinder" tutorial_lam_cylinder.cfg_file = "lam_cylinder.cfg" tutorial_lam_cylinder.test_iter = 0 tutorial_lam_cylinder.test_vals = [ -6.162141, -0.699617, 0.125776, 69.613563 ] tutorial_lam_cylinder.su2_exec = "mpirun -np 2 SU2_CFD" tutorial_lam_cylinder.timeout = 1600 tutorial_lam_cylinder.tol = 0.00001 tutorial_lam_cylinder.no_restart = True test_list.append(tutorial_lam_cylinder) # Laminar Flat Plate tutorial_lam_flatplate = TestCase('laminar_flatplate_tutorial') tutorial_lam_flatplate.cfg_dir = "../Tutorials/compressible_flow/Laminar_Flat_Plate" tutorial_lam_flatplate.cfg_file = "lam_flatplate.cfg" tutorial_lam_flatplate.test_iter = 0 tutorial_lam_flatplate.test_vals = [ -2.821818, 2.657591, -0.400044, 0.029413 ] #last 4 columns tutorial_lam_flatplate.su2_exec = "mpirun -np 2 SU2_CFD" tutorial_lam_flatplate.timeout = 1600 tutorial_lam_flatplate.tol = 0.00001 tutorial_lam_flatplate.no_restart = True test_list.append(tutorial_lam_flatplate) # Turbulent Flat Plate tutorial_turb_flatplate = TestCase('turbulent_flatplate_tutorial') tutorial_turb_flatplate.cfg_dir = "../Tutorials/compressible_flow/Turbulent_Flat_Plate" tutorial_turb_flatplate.cfg_file = "turb_SA_flatplate.cfg" tutorial_turb_flatplate.test_iter = 0 tutorial_turb_flatplate.test_vals = [ -2.258584, -4.899502, -0.429375, 0.201236 ] tutorial_turb_flatplate.su2_exec = "mpirun -np 2 SU2_CFD" tutorial_turb_flatplate.timeout = 1600 tutorial_turb_flatplate.tol = 0.00001 tutorial_turb_flatplate.no_restart = True test_list.append(tutorial_turb_flatplate) # Transitional FlatPlate tutorial_trans_flatplate = TestCase('transitional_flatplate_tutorial') tutorial_trans_flatplate.cfg_dir = "../Tutorials/compressible_flow/Transitional_Flat_Plate" tutorial_trans_flatplate.cfg_file = "transitional_BC_model_ConfigFile.cfg" tutorial_trans_flatplate.test_iter = 0 tutorial_trans_flatplate.test_vals = [ -22.021786, -15.330766, 0.000000, 0.023952 ] #last 4 columns tutorial_trans_flatplate.su2_exec = "mpirun -np 2 SU2_CFD" tutorial_trans_flatplate.timeout = 1600 tutorial_trans_flatplate.tol = 0.00001 tutorial_trans_flatplate.no_restart = True test_list.append(tutorial_trans_flatplate) # Turbulent ONERA M6 tutorial_turb_oneram6 = TestCase('turbulent_oneram6_tutorial') tutorial_turb_oneram6.cfg_dir = "../Tutorials/compressible_flow/Turbulent_ONERAM6" tutorial_turb_oneram6.cfg_file = "turb_ONERAM6.cfg" tutorial_turb_oneram6.test_iter = 0 tutorial_turb_oneram6.test_vals = [ -4.564441, -11.524277, 0.327954, 0.097349 ] tutorial_turb_oneram6.su2_exec = "mpirun -np 2 SU2_CFD" tutorial_turb_oneram6.timeout = 1600 tutorial_turb_oneram6.tol = 0.00001 test_list.append(tutorial_turb_oneram6) # NICD Nozzle tutorial_nicfd_nozzle = TestCase('nicfd_nozzle') tutorial_nicfd_nozzle.cfg_dir = "../Tutorials/compressible_flow/NICFD_nozzle" tutorial_nicfd_nozzle.cfg_file = "NICFD_nozzle.cfg" tutorial_nicfd_nozzle.test_iter = 20 tutorial_nicfd_nozzle.test_vals = [ -2.187400, -9.409241, 3.477513, 0.000000, 0.000000 ] tutorial_nicfd_nozzle.su2_exec = "mpirun -np 2 SU2_CFD" tutorial_nicfd_nozzle.timeout = 1600 tutorial_nicfd_nozzle.tol = 0.00001 tutorial_nicfd_nozzle.no_restart = True test_list.append(tutorial_nicfd_nozzle) # Unsteady NACA0012 tutorial_unst_naca0012 = TestCase('unsteady_naca0012') tutorial_unst_naca0012.cfg_dir = "../Tutorials/compressible_flow/Unsteady_NACA0012" tutorial_unst_naca0012.cfg_file = "unsteady_naca0012.cfg" tutorial_unst_naca0012.test_iter = 500 tutorial_unst_naca0012.test_vals = [ 500, 0, 0.302003, 0.665069, -5.300141, 0.000000, 0.0000e+00, 0.0000e+00 ] tutorial_unst_naca0012.su2_exec = "mpirun -np 2 SU2_CFD" tutorial_unst_naca0012.timeout = 1600 tutorial_unst_naca0012.tol = 0.00001 tutorial_unst_naca0012.unsteady = True test_list.append(tutorial_unst_naca0012) # PROPELLER VARIBLE LOAD propeller_var_load = TestCase('propeller_variable_load') propeller_var_load.cfg_dir = "../Tutorials/compressible_flow/ActuatorDisk_VariableLoad" propeller_var_load.cfg_file = "propeller_variable_load.cfg" propeller_var_load.test_iter = 20 propeller_var_load.test_vals = [-1.830252, -4.535038, -0.000323, 0.171648] propeller_var_load.su2_exec = "mpirun -np 2 SU2_CFD" propeller_var_load.timeout = 3200 propeller_var_load.tol = 0.00001 test_list.append(propeller_var_load) ### Design # Inviscid NACA 0012 Design tutorial_design_inv_naca0012 = TestCase('design_inv_naca0012') tutorial_design_inv_naca0012.cfg_dir = "../Tutorials/design/Inviscid_2D_Unconstrained_NACA0012" tutorial_design_inv_naca0012.cfg_file = "inv_NACA0012_basic.cfg" tutorial_design_inv_naca0012.test_iter = 0 tutorial_design_inv_naca0012.test_vals = [ -3.585391, -2.989014, 0.135070, 0.208565 ] tutorial_design_inv_naca0012.su2_exec = "mpirun -np 2 SU2_CFD" tutorial_design_inv_naca0012.timeout = 1600 tutorial_design_inv_naca0012.tol = 0.00001 tutorial_design_inv_naca0012.no_restart = True test_list.append(tutorial_design_inv_naca0012) # Turbulent RAE 2822 Design tutorial_design_turb_rae2822 = TestCase('design_turb_rae2822') tutorial_design_turb_rae2822.cfg_dir = "../Tutorials/design/Turbulent_2D_Constrained_RAE2822" tutorial_design_turb_rae2822.cfg_file = "turb_SA_RAE2822.cfg" tutorial_design_turb_rae2822.test_iter = 0 tutorial_design_turb_rae2822.test_vals = [ -1.700114, -4.941305, 0.218348, 0.190357 ] tutorial_design_turb_rae2822.su2_exec = "mpirun -np 2 SU2_CFD" tutorial_design_turb_rae2822.timeout = 1600 tutorial_design_turb_rae2822.tol = 0.00001 tutorial_design_turb_rae2822.no_restart = True test_list.append(tutorial_design_turb_rae2822) # Multi Objective Design tutorial_design_multiobj = TestCase('design_multiobj') tutorial_design_multiobj.cfg_dir = "../Tutorials/design/Multi_Objective_Shape_Design" tutorial_design_multiobj.cfg_file = "inv_wedge_ROE_multiobj_combo.cfg" tutorial_design_multiobj.test_iter = 0 tutorial_design_multiobj.test_vals = [ 2.657333, -3.020635, 324840.000000, 0.000000 ] #last 4 columns tutorial_design_multiobj.su2_exec = "mpirun -np 2 SU2_CFD" tutorial_design_multiobj.timeout = 1600 tutorial_design_multiobj.tol = 0.00001 tutorial_design_multiobj.no_restart = True test_list.append(tutorial_design_multiobj) ###################################### ### RUN TESTS ### ###################################### pass_list = [test.run_test() for test in test_list] # Tests summary print('==================================================================') print('Summary of the parallel tests') print('python version:', sys.version) for i, test in enumerate(test_list): if (pass_list[i]): print(' passed - %s' % test.tag) else: print('* FAILED - %s' % test.tag) if all(pass_list): sys.exit(0) else: sys.exit(1)