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.561506, -8.926634, -0.000000, 0.005587] discadj_naca0012.su2_exec = "parallel_computation.py -f" 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.734502, -3.839637, 0.000000, 0.000000] discadj_cylinder3D.su2_exec = "parallel_computation.py -f" 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 = [-3.111181, -3.501516, 6.8705e-02, 0] discadj_arina2k.su2_exec = "parallel_computation.py -f" discadj_arina2k.timeout = 1600 discadj_arina2k.tol = 0.00001 test_list.append(discadj_arina2k) # Equivalent area NACA64-206 ea_naca64206 = TestCase('ea_naca64206') ea_naca64206.cfg_dir = "optimization_euler/equivalentarea_naca64206" ea_naca64206.cfg_file = "NACA64206.cfg" ea_naca64206.test_iter = 10 ea_naca64206.test_vals = [3.181093, 2.471539, -5487700.0, 8.3604] ea_naca64206.su2_exec = "mpirun -n 2 SU2_CFD_AD" ea_naca64206.timeout = 1600 ea_naca64206.tol = 0.00001 test_list.append(ea_naca64206) #################################### ### 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.230578, 0.696567, 0.181590, -0.000018, 5, -3.421214, 5, -6.798877] discadj_rans_naca0012_sa.su2_exec = "parallel_computation.py -f" 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.221792, -0.491538, 0.182010, -0.000018] discadj_rans_naca0012_sst.su2_exec = "parallel_computation.py -f" 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.000000, -4.095412, -2.690483, 0.000000] discadj_incomp_NACA0012.su2_exec = "parallel_computation.py -f" 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.195581, -2.162081, 0.000000] discadj_incomp_cylinder.su2_exec = "parallel_computation.py -f" 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.846018, -1.031079, 0.000000] discadj_incomp_turb_NACA0012_sa.su2_exec = "parallel_computation.py -f" 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.845593, -2.413098, -8.419991, 0.000000] discadj_incomp_turb_NACA0012_sst.su2_exec = "parallel_computation.py -f" 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 = "parallel_computation.py -f" discadj_cylinder.timeout = 1600 discadj_cylinder.tol = 0.00001 discadj_cylinder.unsteady = True test_list.append(discadj_cylinder) ############################################################## ### Unsteady Disc. adj. compressible RANS Windowed Average ### ############################################################## # Turbulent Cylinder discadj_cylinder = TestCase('unsteady_cylinder_windowed_average_AD') discadj_cylinder.cfg_dir = "disc_adj_rans/cylinder" discadj_cylinder.cfg_file = "cylinder_Windowing_AD.cfg" discadj_cylinder.test_iter = 9 discadj_cylinder.test_vals = [3.004406] #last column discadj_cylinder.su2_exec = "parallel_computation.py -f" discadj_cylinder.timeout = 1600 discadj_cylinder.tol = 0.00001 discadj_cylinder.unsteady = True test_list.append(discadj_cylinder) ############################################################## ### Unsteady Disc. adj. compressible RANS Windowed Average ### ############################################################## # Turbulent Cylinder discadj_cylinder = TestCase('unsteady_cylinder_windowed_average') discadj_cylinder.cfg_dir = "disc_adj_rans/cylinder" discadj_cylinder.cfg_file = "cylinder_Windowing.cfg" discadj_cylinder.test_iter = 6 discadj_cylinder.test_vals = [0.202349, -0.000119, 1.899933, -0.000050, 1.067900] discadj_cylinder.su2_exec = "parallel_computation.py -f" discadj_cylinder.timeout = 1600 discadj_cylinder.tol = 0.0001 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 = "parallel_computation.py -f" 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.223480, -1.639387, -0.007591, 0.000013] discadj_pitchingNACA0012.su2_exec = "parallel_computation.py -f" discadj_pitchingNACA0012.timeout = 1600 discadj_pitchingNACA0012.tol = 0.00001 discadj_pitchingNACA0012.unsteady = True test_list.append(discadj_pitchingNACA0012) ####################################################### ### Disc. adj. turbomachinery ### ####################################################### # Transonic Stator 2D discadj_trans_stator = TestCase('transonic_stator') discadj_trans_stator.cfg_dir = "disc_adj_turbomachinery/transonic_stator_2D" discadj_trans_stator.cfg_file = "transonic_stator.cfg" discadj_trans_stator.test_iter = 79 discadj_trans_stator.test_vals = [79.000000, -1.941681, -1.998327] discadj_trans_stator.su2_exec = "parallel_computation.py -f" discadj_trans_stator.timeout = 1600 discadj_trans_stator.tol = 0.00001 test_list.append(discadj_trans_stator) ################################### ### 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.849774, -3.238669, -0.000364, -8.708700] #last 4 columns discadj_fea.su2_exec = "parallel_computation.py -f" 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.280433, 0.714828, -0.743730, -6.767300] discadj_heat.su2_exec = "parallel_computation.py -f" discadj_heat.timeout = 1600 discadj_heat.tol = 0.00001 test_list.append(discadj_heat) ################################### ### Coupled FSI Adjoint ### ################################### # Legacy driver 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.000000, -1.559957, -3.080711, 0.000440, -1.063100] discadj_fsi.su2_exec = "mpirun -n 2 SU2_CFD_AD" discadj_fsi.timeout = 1600 discadj_fsi.tol = 0.00001 test_list.append(discadj_fsi) # Multi physics framework discadj_fsi2 = TestCase('discadj_fsi_airfoil') discadj_fsi2.cfg_dir = "disc_adj_fsi/Airfoil_2d" discadj_fsi2.cfg_file = "config.cfg" discadj_fsi2.test_iter = 8 discadj_fsi2.test_vals = [-5.318452, -2.4380e-13] discadj_fsi2.su2_exec = "mpirun -n 2 SU2_CFD_AD" discadj_fsi2.timeout = 1600 discadj_fsi2.tol = 1e-16 test_list.append(discadj_fsi2) ################################### ### 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.085549, -3.085516, -3.085511] discadj_cht.su2_exec = "mpirun -n 2 SU2_CFD_AD" discadj_cht.timeout = 1600 discadj_cht.tol = 0.00001 test_list.append(discadj_cht) # 2D DA cht streamwise periodic case, 2 zones, avg temp objective da_sp_pinArray_cht_2d_dp_hf = TestCase('da_sp_pinArray_cht_2d_dp_hf') da_sp_pinArray_cht_2d_dp_hf.cfg_dir = "incomp_navierstokes/streamwise_periodic/chtPinArray_2d" da_sp_pinArray_cht_2d_dp_hf.cfg_file = "DA_configMaster.cfg" da_sp_pinArray_cht_2d_dp_hf.test_iter = 100 da_sp_pinArray_cht_2d_dp_hf.test_vals = [-4.800529, -4.065499, -4.137153] #last 4 lines da_sp_pinArray_cht_2d_dp_hf.su2_exec = "mpirun -n 2 SU2_CFD_AD" da_sp_pinArray_cht_2d_dp_hf.timeout = 1600 da_sp_pinArray_cht_2d_dp_hf.tol = 0.00001 da_sp_pinArray_cht_2d_dp_hf.multizone = True test_list.append(da_sp_pinArray_cht_2d_dp_hf) # 2D unsteady CHT vortex shedding at RE=200. TAVG_Temperature OF da_unsteadyCHT_cylinder = TestCase('da_unsteadyCHT_cylinder') da_unsteadyCHT_cylinder.cfg_dir = "coupled_cht/disc_adj_unsteadyCHT_cylinder" da_unsteadyCHT_cylinder.cfg_file = "chtMaster.cfg" da_unsteadyCHT_cylinder.test_iter = 2 da_unsteadyCHT_cylinder.test_vals = [-3.521358, -4.312658, -4.271025, -9.846075, -7.967741, 0.0000e+00, 3.6840e+00, 2.9483e-01] da_unsteadyCHT_cylinder.su2_exec = "mpirun -n 2 SU2_CFD_AD" da_unsteadyCHT_cylinder.timeout = 1600 da_unsteadyCHT_cylinder.tol = 0.00001 da_unsteadyCHT_cylinder.unsteady = True da_unsteadyCHT_cylinder.multizone = True test_list.append(da_unsteadyCHT_cylinder) ###################################### ### RUN TESTS ### ###################################### pass_list = [ test.run_test() for test in test_list ] ################################################## ### Structural Adjoint - Topology Optimization ### ################################################## # test discrete_adjoint.py discadj_topol_optim = TestCase('discadj_topol_optim') discadj_topol_optim.cfg_dir = "fea_topology" discadj_topol_optim.cfg_file = "config.cfg" discadj_topol_optim.test_iter = 0 discadj_topol_optim.su2_exec = "parallel_computation.py -f" discadj_topol_optim.timeout = 1600 discadj_topol_optim.reference_file = "grad_ref_node.dat.ref" discadj_topol_optim.test_file = "grad_ref_node.dat" pass_list.append(discadj_topol_optim.run_filediff()) test_list.append(discadj_topol_optim) #################################################################################### ### Unsteady Disc. adj. compressible RANS Windowed Average with restart solution ### #################################################################################### # NACA0012 Airfoil unsteady_naca0012 = TestCase('unsteady_NACA0012_restart_adjoint') unsteady_naca0012.cfg_dir = "disc_adj_rans/naca0012" unsteady_naca0012.cfg_file = "naca0012.cfg" unsteady_naca0012.test_iter = 14 unsteady_naca0012.su2_exec = "discrete_adjoint.py -f" unsteady_naca0012.timeout = 1600 unsteady_naca0012.reference_file = "of_grad_cd.csv.ref" unsteady_naca0012.test_file = "of_grad_cd.csv" unsteady_naca0012.unsteady = True pass_list.append(unsteady_naca0012.run_filediff()) test_list.append(unsteady_naca0012) #################################################################################### ### Unsteady Disc. adj. compressible RANS Windowed Average only adjoint ### #################################################################################### # NACA0012 Airfoil (Test depends on results of "unsteady_NACA0012_restart_adjoint") unsteady_naca0012 = TestCase('unsteady_NACA0012_adjoint_only') unsteady_naca0012.cfg_dir = "disc_adj_rans/naca0012" unsteady_naca0012.cfg_file = "naca0012.cfg" unsteady_naca0012.test_iter = 14 unsteady_naca0012.su2_exec = "discrete_adjoint.py -m adj -f" unsteady_naca0012.timeout = 1600 unsteady_naca0012.reference_file = "of_grad_cd.csv.ref" unsteady_naca0012.test_file = "of_grad_cd.csv" unsteady_naca0012.unsteady = True pass_list.append(unsteady_naca0012.run_filediff()) test_list.append(unsteady_naca0012) #################################################################### ### Unsteady Disc. adj. compressible RANS restart optimization ### #################################################################### # test shape_optimization.py naca_restart_shape_opt = TestCase('restart_shape_optimization') naca_restart_shape_opt.cfg_dir = "optimization_rans/naca0012" naca_restart_shape_opt.cfg_file = "naca0012.cfg" naca_restart_shape_opt.test_iter = 1 naca_restart_shape_opt.test_vals = [1.000000, 1.000000, 0.007046, 0.196671] naca_restart_shape_opt.su2_exec = "shape_optimization.py -f" naca_restart_shape_opt.timeout = 1600 naca_restart_shape_opt.tol = 0.00001 pass_list.append(naca_restart_shape_opt.run_opt()) test_list.append(naca_restart_shape_opt) #################################################################### ### Unsteady Disc. Adj. Coupled FSI ### #################################################################### # Unsteady multi physics framework dyn_discadj_fsi = TestCase('dyn_discadj_fsi') dyn_discadj_fsi.cfg_dir = "disc_adj_fsi/dyn_fsi" dyn_discadj_fsi.cfg_file = "config.cfg" dyn_discadj_fsi.test_iter = 2 dyn_discadj_fsi.su2_exec = "mpirun -n 2 SU2_CFD_AD" dyn_discadj_fsi.timeout = 1600 dyn_discadj_fsi.reference_file = "grad_dv.opt.ref" dyn_discadj_fsi.test_file = "grad_young.opt" dyn_discadj_fsi.unsteady = True pass_list.append(dyn_discadj_fsi.run_filediff()) test_list.append(dyn_discadj_fsi) # 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 = [] ###################################### ### 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) ### 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)
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 = [] ########################## ### 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)