Esempio n. 1
0
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)
Esempio n. 2
0
def main():
    '''This program runs SU^2 and ensures that the output matches specified values. 
       This will be used to do nightly checks to make sure nothing is broken. '''

    workdir = os.getcwd()

    # environment variables for SU2
    os.environ['SU2_HOME'] = '/home/ale11/.cruise/projects/parallel_regression/work/SU2'
    os.environ['SU2_RUN'] = '/home/ale11/.cruise/projects/parallel_regression/work/SU2/bin'
    os.environ['PATH'] = os.environ['PATH'] + ':' + os.environ['SU2_RUN']

    # sync SU2 repo
    os.chdir( os.environ['SU2_HOME'] )
    os.system('git pull')  

    # Build SU2_CFD in parallel using autoconf
    os.system('./configure --prefix=$SU2_HOME --with-MPI=mpicxx CXXFLAGS="-O3"')
    os.system('make clean')
    os.system('make install')

    os.chdir(os.environ['SU2_RUN'])
    if not os.path.exists("./SU2_CFD"):
        print 'Could not build SU2_CFD'
        sys.exit(1)

    if not os.path.exists("./SU2_PRT"):
        print 'Could not build SU2_PRT'
        sys.exit(1)

    os.chdir(workdir)  
    test_list = []

    ##########################
    ### Compressible Euler ###
    ##########################

    # Channel
    channel           = TestCase('channel')
    channel.cfg_dir   = "euler/channel"
    channel.cfg_file  = "inv_channel_RK.cfg"
    channel.test_iter = 100
    channel.test_vals = [-2.975507,2.405636,-0.027947,0.070672 ]
    channel.su2_exec  = "parallel_computation.py -f"
    channel.timeout   = 1600
    channel.tol       = 0.00001
    test_list.append(channel)

    # NACA0012 
    naca0012           = TestCase('naca0012')
    naca0012.cfg_dir   = "euler/naca0012"
    naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-5.868897,-5.317999,0.335382,0.022264]
    naca0012.su2_exec  = "parallel_computation.py -f"
    naca0012.timeout   = 1600
    naca0012.tol       = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge 
    wedge           = TestCase('wedge')
    wedge.cfg_dir   = "euler/wedge"
    wedge.cfg_file  = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.810772,3.816000,-0.252360,0.044433]
    wedge.su2_exec  = "parallel_computation.py -f"
    wedge.timeout   = 1600
    wedge.tol       = 0.00001
    test_list.append(wedge)

    # ONERA M6 Wing
    oneram6           = TestCase('oneram6')
    oneram6.cfg_dir   = "euler/oneram6"
    oneram6.cfg_file  = "inv_ONERAM6_JST.cfg"
    oneram6.test_iter = 10
    oneram6.test_vals = [-4.722014,-4.159420,0.277228,0.018788]
    oneram6.su2_exec  = "parallel_computation.py -f"
    oneram6.timeout   = 3200
    oneram6.tol       = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate           = TestCase('flatplate')
    flatplate.cfg_dir   = "navierstokes/flatplate"
    flatplate.cfg_file  = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.236893,0.247033,-0.163494,0.013566]
    flatplate.su2_exec  = "parallel_computation.py -f"
    flatplate.timeout   = 1600
    flatplate.tol       = 0.00001
    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.414640,-0.949884,0.028066,-5.963428]
    cylinder.su2_exec  = "parallel_computation.py -f"
    cylinder.timeout   = 1600
    cylinder.tol       = 0.00001
    test_list.append(cylinder)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-2.750473,-5.507654,0.871049,0.023362] #last 4 columns
    rae2822_sa.su2_exec  = "parallel_computation.py -f"
    rae2822_sa.timeout   = 1600
    rae2822_sa.tol       = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.166409,4.131494,0.872131,0.023509] #last 4 columns
    rae2822_sst.su2_exec  = "parallel_computation.py -f"
    rae2822_sst.timeout   = 1600
    rae2822_sst.tol       = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-4.965682,-7.366012,-0.185201,0.015640] #last 4 columns
    turb_flatplate.su2_exec  = "parallel_computation.py -f"
    turb_flatplate.timeout   = 1600
    turb_flatplate.tol       = 0.00001
    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.327518,-6.563377,0.230436,0.155816] #last 4 columns
    turb_oneram6.su2_exec  = "parallel_computation.py -f"
    turb_oneram6.timeout   = 3200
    turb_oneram6.tol       = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012
    turb_naca0012           = TestCase('turb_naca0012')
    turb_naca0012.cfg_dir   = "rans/naca0012"
    turb_naca0012.cfg_file  = "turb_NACA0012.cfg"
    turb_naca0012.test_iter = 20
    turb_naca0012.test_vals = [-2.826348,-7.364208,-0.000065,0.803130] #last 4 columns
    turb_naca0012.su2_exec  = "parallel_computation.py -f"
    turb_naca0012.timeout   = 3200
    turb_naca0012.tol       = 0.00001
    test_list.append(turb_naca0012)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.709964,-11.007318,0.000012,0.211084] #last 4 columns
    inc_turb_naca0012.su2_exec  = "parallel_computation.py -f"
    inc_turb_naca0012.timeout   = 1600
    inc_turb_naca0012.tol       = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012           = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir   = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file  = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-12.164200,-16.000000,0.005483,0.536870] #last 4 columns
    contadj_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_naca0012.timeout   = 1600
    contadj_naca0012.tol       = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6           = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir   = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file  = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 5
    contadj_oneram6.test_vals = [-6.369284,-6.550741,-0.000023,0.147730] #last 4 columns
    contadj_oneram6.su2_exec  = "parallel_computation.py -f"
    contadj_oneram6.timeout   = 1600
    contadj_oneram6.tol       = 0.00001
    test_list.append(contadj_oneram6)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder           = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir   = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file  = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-0.586744,-6.051059,-0.032305,25.115000 ] #last 4 columns
    contadj_ns_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_ns_cylinder.timeout   = 1600
    contadj_ns_cylinder.tol       = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub           = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir   = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [-4.234330,-9.705736,0.005161,0.398940] #last 4 columns
    contadj_ns_naca0012_sub.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_sub.timeout   = 1600
    contadj_ns_naca0012_sub.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_sub)
    
    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans           = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir   = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [-1.810435,-6.920519,0.014614,1.020100] #last 4 columns
    contadj_ns_naca0012_trans.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_trans.timeout   = 1600
    contadj_ns_naca0012_trans.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012           = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir   = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file  = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-4.351102,-8.919996,-1.275200,-2.541400] #last 4 columns
    contadj_rans_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_rans_naca0012.timeout   = 1600
    contadj_rans_naca0012.tol       = 0.00001
    test_list.append(contadj_rans_naca0012)
    
    # Adjoint turbulent RAE2822
    contadj_rans_rae2822           = TestCase('contadj_rans_rae822')
    contadj_rans_rae2822.cfg_dir   = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file  = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [-2.912541,-8.134391,4.544600,0.105850] #last 4 columns
    contadj_rans_rae2822.su2_exec  = "parallel_computation.py -f"
    contadj_rans_rae2822.timeout   = 1600
    contadj_rans_rae2822.tol       = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012           = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir   = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 140
    contadj_incomp_NACA0012.test_vals = [-6.182255,-6.058331,0.010905,0.000000] #last 4 columns
    contadj_incomp_NACA0012.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_NACA0012.timeout   = 1600
    contadj_incomp_NACA0012.tol       = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder           = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-2.381271,-2.874257,-0.048372,0.000000] #last 4 columns
    contadj_incomp_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_cylinder.timeout   = 1600
    contadj_incomp_cylinder.tol       = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################

    # RAM-C II Sphere-Cone -- 61km Altitude
    ramc           = TestCase('ramc')
    ramc.cfg_dir   = "tne2/ramc"
    ramc.cfg_file  = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.638119,2.854417,-4.439628,0.000188]
    ramc.su2_exec  = "parallel_computation.py -f"
    ramc.timeout   = 1600
    ramc.tol       = 0.00001
    test_list.append(ramc)

    ######################################
    ### 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.439958,0.023984,-0.065783,-12.173188]
    cavity.su2_exec  = "parallel_computation.py -f"
    cavity.timeout   = 1600
    cavity.tol       = 0.00001
    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 = [-6.654688,-1.195462,6.682924,0.987516]
    spinning_cylinder.su2_exec  = "parallel_computation.py -f"
    spinning_cylinder.timeout   = 1600
    spinning_cylinder.tol       = 0.00001
    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.542162,0.048674,1.398952,2.196894]
    square_cylinder.su2_exec  = "parallel_computation.py -f"
    square_cylinder.timeout   = 1600
    square_cylinder.tol       = 0.00001
    test_list.append(square_cylinder)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [ test.run_test() for test in test_list ]

    if all(pass_list):
        sys.exit(0)
    else:
        sys.exit(1)
Esempio n. 3
0
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.606963,-9.034619,-3.3385e-07,1.8777e-01] #last 4 columns
    discadj_naca0012.su2_exec  = "parallel_computation.py -f"
    discadj_naca0012.timeout   = 1600
    discadj_naca0012.tol       = 0.00001
    test_list.append(discadj_naca0012)
   
    ####################################
    ### 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 = [-1.751997, 0.485368, 0.182890, -0.383510] #last 4 columns
    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 = [-1.655243, -0.507187, 0.129010, -0.4776800] #last 4 columns
    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)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [ test.run_test() for test in test_list ]

    # Tests summary
    print '=================================================================='
    print 'Summary of the parallel tests'
    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)
Esempio n. 4
0
def main():
    '''This program runs SU^2 and ensures that the output matches specified values. 
       This will be used to do nightly checks to make sure nothing is broken. '''

    workdir = os.getcwd()

    # environment variables for SU2
    os.environ[
        'SU2_HOME'] = '/home/ale11/.cruise/projects/serial_regression/work/SU2'
    os.environ[
        'SU2_RUN'] = '/home/ale11/.cruise/projects/serial_regression/work/SU2/bin'
    os.environ['PATH'] = os.environ['PATH'] + ':' + os.environ['SU2_RUN']

    # sync SU2 repo
    os.chdir(os.environ['SU2_HOME'])
    os.system('git pull')

    # Build SU2_CFD in serial using autoconf
    os.system('./configure --prefix=$SU2_HOME CXXFLAGS="-O3"')
    os.system('make clean')
    os.system('make install')

    os.chdir(os.environ['SU2_RUN'])
    if not os.path.exists("./SU2_CFD"):
        print 'Could not build SU2_CFD'
        sys.exit(1)

    os.chdir(workdir)

    test_list = []

    ##########################
    ### Compressible Euler ###
    ##########################

    # Channel
    channel = TestCase('channel')
    channel.cfg_dir = "euler/channel"
    channel.cfg_file = "inv_channel_RK.cfg"
    channel.test_iter = 100
    channel.test_vals = [-2.991375, 2.388702, -0.042177, 0.068520]
    channel.su2_exec = "SU2_CFD"
    channel.timeout = 1600
    channel.tol = 0.00001
    test_list.append(channel)

    # NACA0012
    naca0012 = TestCase('naca0012')
    naca0012.cfg_dir = "euler/naca0012"
    naca0012.cfg_file = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-5.932646, -5.394328, 0.335205, 0.022232]
    naca0012.su2_exec = "SU2_CFD"
    naca0012.timeout = 1600
    naca0012.tol = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge
    wedge = TestCase('wedge')
    wedge.cfg_dir = "euler/wedge"
    wedge.cfg_file = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.838548, 3.781222, -0.252690, 0.044489]
    wedge.su2_exec = "SU2_CFD"
    wedge.timeout = 1600
    wedge.tol = 0.00001
    test_list.append(wedge)

    # ONERA M6 Wing
    oneram6 = TestCase('oneram6')
    oneram6.cfg_dir = "euler/oneram6"
    oneram6.cfg_file = "inv_ONERAM6_JST.cfg"
    oneram6.test_iter = 10
    oneram6.test_vals = [-4.744759, -4.182702, 0.281122, 0.018310]
    oneram6.su2_exec = "SU2_CFD"
    oneram6.timeout = 9600
    oneram6.tol = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate = TestCase('flatplate')
    flatplate.cfg_dir = "navierstokes/flatplate"
    flatplate.cfg_file = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.230001, 0.252184, -0.163706, 0.013547]
    flatplate.su2_exec = "SU2_CFD"
    flatplate.timeout = 1600
    flatplate.tol = 0.00001
    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.409812, -0.945306, 0.088160, -5.192708]
    cylinder.su2_exec = "SU2_CFD"
    cylinder.timeout = 1600
    cylinder.tol = 0.00001
    test_list.append(cylinder)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-2.729166, -5.506935, 0.860798,
                            0.023704]  #last 4 columns
    rae2822_sa.su2_exec = "SU2_CFD"
    rae2822_sa.timeout = 1600
    rae2822_sa.tol = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.151533, 4.144621, 0.861331,
                             0.023855]  #last 4 columns
    rae2822_sst.su2_exec = "SU2_CFD"
    rae2822_sst.timeout = 1600
    rae2822_sst.tol = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.021253, -7.365210, -0.185394,
                                0.015273]  #last 4 columns
    turb_flatplate.su2_exec = "SU2_CFD"
    turb_flatplate.timeout = 1600
    turb_flatplate.tol = 0.00001
    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.327517, -6.563378, 0.230436,
                              0.155816]  #last 4 columns
    turb_oneram6.su2_exec = "SU2_CFD"
    turb_oneram6.timeout = 3200
    turb_oneram6.tol = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012
    turb_naca0012 = TestCase('turb_naca0012')
    turb_naca0012.cfg_dir = "rans/naca0012"
    turb_naca0012.cfg_file = "turb_NACA0012.cfg"
    turb_naca0012.test_iter = 20
    turb_naca0012.test_vals = [-2.826334, -7.364207, -0.000025,
                               0.803037]  #last 4 columns
    turb_naca0012.su2_exec = "SU2_CFD"
    turb_naca0012.timeout = 3200
    turb_naca0012.tol = 0.00001
    test_list.append(turb_naca0012)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.709986, -11.007545, 0.000008,
                                   0.210347]  #last 4 columns
    inc_turb_naca0012.su2_exec = "SU2_CFD"
    inc_turb_naca0012.timeout = 1600
    inc_turb_naca0012.tol = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012 = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-12.214678, -16.000000, 0.005483,
                                  0.536870]  #last 4 columns
    contadj_naca0012.su2_exec = "SU2_CFD"
    contadj_naca0012.timeout = 1600
    contadj_naca0012.tol = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6 = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 5
    contadj_oneram6.test_vals = [-6.370788, -6.545955, -0.000023,
                                 0.147730]  #last 4 columns
    contadj_oneram6.su2_exec = "SU2_CFD"
    contadj_oneram6.timeout = 1600
    contadj_oneram6.tol = 0.00001
    test_list.append(contadj_oneram6)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [
        -0.597482, -6.063713, -0.032305, 25.115000
    ]  #last 4 columns
    contadj_ns_cylinder.su2_exec = "SU2_CFD"
    contadj_ns_cylinder.timeout = 1600
    contadj_ns_cylinder.tol = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [
        -4.234330, -9.705736, 0.005161, 0.398940
    ]  #last 4 columns
    contadj_ns_naca0012_sub.su2_exec = "SU2_CFD"
    contadj_ns_naca0012_sub.timeout = 1600
    contadj_ns_naca0012_sub.tol = 0.00001
    test_list.append(contadj_ns_naca0012_sub)

    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [
        -1.810435, -6.920519, 0.014614, 1.020100
    ]  #last 4 columns
    contadj_ns_naca0012_trans.su2_exec = "SU2_CFD"
    contadj_ns_naca0012_trans.timeout = 1600
    contadj_ns_naca0012_trans.tol = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012 = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [
        -4.351102, -8.919996, -1.275200, -2.541400
    ]  #last 4 columns
    contadj_rans_naca0012.su2_exec = "SU2_CFD"
    contadj_rans_naca0012.timeout = 1600
    contadj_rans_naca0012.tol = 0.00001
    test_list.append(contadj_rans_naca0012)

    # Adjoint turbulent RAE2822
    contadj_rans_rae2822 = TestCase('contadj_rans_rae2822')
    contadj_rans_rae2822.cfg_dir = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [
        -2.888858, -8.085710, 4.545700, 0.109650
    ]  #last 4 columns
    contadj_rans_rae2822.su2_exec = "SU2_CFD"
    contadj_rans_rae2822.timeout = 1600
    contadj_rans_rae2822.tol = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012 = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 140
    contadj_incomp_NACA0012.test_vals = [
        -6.049647, -6.004696, 0.010909, 0.000000
    ]  #last 4 columns
    contadj_incomp_NACA0012.su2_exec = "SU2_CFD"
    contadj_incomp_NACA0012.timeout = 1600
    contadj_incomp_NACA0012.tol = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [
        -2.352353, -2.851967, -0.048345, 0.000000
    ]  #last 4 columns
    contadj_incomp_cylinder.su2_exec = "SU2_CFD"
    contadj_incomp_cylinder.timeout = 1600
    contadj_incomp_cylinder.tol = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################
    ramc = TestCase('ramc')
    ramc.cfg_dir = "tne2/ramc"
    ramc.cfg_file = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.638119, 2.854417, -4.439628, 0.000188]
    ramc.su2_exec = "SU2_CFD"
    ramc.timeout = 1600
    ramc.tol = 0.00001
    test_list.append(ramc)

    #    ######################################
    #    ### Spectral Method                ###
    #    ######################################
    #    spectral           = TestCase('spectral')
    #    spectral.cfg_dir   = "spectral_method"
    #    spectral.cfg_file  = "spectral.cfg"
    #    spectral.test_iter = 25
    #    spectral.test_vals = [-1.621870,3.852164,0.007465,0.084358]
    #    spectral.su2_exec  = "SU2_CFD"
    #    spectral.timeout   = 1600
    #    spectral.tol       = 0.00001
    #    test_list.append(spectral)

    ######################################
    ### 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.545249, -0.083220, -0.007449, -14.207933]
    cavity.su2_exec = "SU2_CFD"
    cavity.timeout = 1600
    cavity.tol = 0.00001
    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 = [-6.743171, -1.295111, 6.846763, 0.823335]
    spinning_cylinder.su2_exec = "SU2_CFD"
    spinning_cylinder.timeout = 1600
    spinning_cylinder.tol = 0.00001
    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.542160, 0.048661, 1.398952, 2.196894]
    square_cylinder.su2_exec = "SU2_CFD"
    square_cylinder.timeout = 1600
    square_cylinder.tol = 0.00001
    test_list.append(square_cylinder)

    ######################################
    ### Real_Gas                       ###
    ######################################

    # Supersonic_turbine
    supersonic_turbine = TestCase('supersonic_turbine')
    supersonic_turbine.cfg_dir = "real_gas/euler/supersonic_turbine"
    supersonic_turbine.cfg_file = "supersonic.cfg"
    supersonic_turbine.test_iter = 19
    supersonic_turbine.test_vals = [-0.249215, 5.701822, 0.000000, 0.000000]
    supersonic_turbine.su2_exec = "SU2_CFD"
    supersonic_turbine.timeout = 1600
    supersonic_turbine.tol = 0.00001
    test_list.append(square_cylinder)

    # Supersonic_turbine
    supersonic_nozzle = TestCase('supersonic_nozzle')
    supersonic_nozzle.cfg_dir = "real_gas/euler/2Dnozzle"
    supersonic_nozzle.cfg_file = "nozzle_MDM_shockwave.cfg"
    supersonic_nozzle.test_iter = 559
    supersonic_nozzle.test_vals = [-0.371019, 4.755257, 0.000000, 0.000000]
    supersonic_nozzle.su2_exec = "SU2_CFD"
    supersonic_nozzle.timeout = 1600
    supersonic_nozzle.tol = 0.00001
    test_list.append(square_cylinder)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [test.run_test() for test in test_list]

    if all(pass_list):
        sys.exit(0)
    else:
        sys.exit(1)
Esempio n. 5
0
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  = "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.724803, -3.838647, 0.000000, 0.000000] #last 4 columns
    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    = [2.438813, 1.976484, 47258.000000, 0.000000] #last 4 columns
    discadj_arina2k.su2_exec     = "parallel_computation.py -f"
    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.230578, 0.678810, 0.181780, -0.000018] #last 4 columns
    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.223209, -0.496681, 0.154390, -0.000022] #last 4 columns
    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, -3.566362, -2.541739, 0.000000] #last 4 columns
    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.188743, -2.068616, 0.000000] #last 4 columns
    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.846036, -1.031071, 0.000000] #last 4 columns
    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.845625, -2.413047, -8.419973, 0.000000] #last 4 columns
    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.746900, -1.544893, -8.3447e-03, 1.3808e-05] #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 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.698165, -1.607052, -2.2503e-03, 2.7212e-05] #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.091129, -1.545863, -0.037418, 0.000108] #last 4 columns
    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.927296, -1.401205] #last 4 columns
    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 = 9
    discadj_fea.test_vals = [-6.492475, -6.401201, -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.281765, 0.706808, -0.743990, -6.866000] #last 4 columns
    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 = 3000
    discadj_fsi.test_vals = [0.958848,-0.157601,2.726147,1.798362] #last 4 columns
    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.070991, -2.5239e-13] #last 2 columns
    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.381654, -3.099873, -3.099844, -3.099841] #last 4 columns
    discadj_cht.su2_exec  = "parallel_computation.py -f"
    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 ]

    ##################################################
    ### 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)


    # 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)
Esempio n. 6
0
def main():
    '''This program runs SU2 and ensures that the output matches specified values. 
       This will be used to do nightly checks to make sure nothing is broken. '''

    workdir = os.getcwd()

    # environment variables for SU2
    os.environ['TEST_HOME'] = '/home/ale11/.cruise/projects/serial_regression/work'
    os.environ['SU2_HOME'] = '/home/ale11/.cruise/projects/serial_regression/work/SU2'
    os.environ['SU2_RUN'] = '/home/ale11/.cruise/projects/serial_regression/work/SU2/bin'
    os.environ['PATH'] = os.environ['PATH'] + ':' + os.environ['SU2_RUN']

    # sync Test Cases repo
    os.chdir( os.environ['TEST_HOME'] )
    os.system('git fetch')
    os.system('git checkout develop')
    os.system('git pull origin develop')
    
    # sync SU2 repo
    os.chdir( os.environ['SU2_HOME'] )
    os.system('git fetch')
    os.system('git checkout develop')
    os.system('git pull origin develop')

    # Build SU2_CFD in serial using autoconf
    os.system('./configure --prefix=$SU2_HOME CXXFLAGS="-O3"')
    os.system('make clean')
    os.system('make install')

    os.chdir(os.environ['SU2_RUN'])
    if not os.path.exists("./SU2_CFD"):
        print 'Could not build SU2_CFD'
        sys.exit(1)

    os.chdir(workdir)  


    test_list = []

    ##########################
    ### Compressible Euler ###
    ##########################

    # Channel
    channel           = TestCase('channel')
    channel.cfg_dir   = "euler/channel"
    channel.cfg_file  = "inv_channel_RK.cfg"
    channel.test_iter = 100
    channel.test_vals = [-3.110240, 2.263506, 0.008686, 0.029098] #last 4 columns
    channel.su2_exec  = "SU2_CFD"
    channel.timeout   = 1600
    channel.tol       = 0.00001
    test_list.append(channel)

    # NACA0012 
    naca0012           = TestCase('naca0012')
    naca0012.cfg_dir   = "euler/naca0012"
    naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.191618, -5.592802, 0.334809, 0.022197] #last 4 columns
    naca0012.su2_exec  = "SU2_CFD"
    naca0012.timeout   = 1600
    naca0012.tol       = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge 
    wedge           = TestCase('wedge')
    wedge.cfg_dir   = "euler/wedge"
    wedge.cfg_file  = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.711318, 3.913749, -0.252131, 0.044402] #last 4 columns
    wedge.su2_exec  = "SU2_CFD"
    wedge.timeout   = 1600
    wedge.tol       = 0.00001
    test_list.append(wedge)

    # ONERA M6 Wing
    oneram6           = TestCase('oneram6')
    oneram6.cfg_dir   = "euler/oneram6"
    oneram6.cfg_file  = "inv_ONERAM6_JST.cfg"
    oneram6.test_iter = 10
    oneram6.test_vals = [-4.704347, -4.159916, 0.271678, 0.018869] #last 4 columns
    oneram6.su2_exec  = "SU2_CFD"
    oneram6.timeout   = 9600
    oneram6.tol       = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate           = TestCase('flatplate')
    flatplate.cfg_dir   = "navierstokes/flatplate"
    flatplate.cfg_file  = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.231916, 0.261866, -0.166832, 0.012717] #last 4 columns
    flatplate.su2_exec  = "SU2_CFD"
    flatplate.timeout   = 1600
    flatplate.tol       = 0.00001
    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.765426, -1.297422, 0.019496, 0.310082] #last 4 columns
    cylinder.su2_exec  = "SU2_CFD"
    cylinder.timeout   = 1600
    cylinder.tol       = 0.00001
    test_list.append(cylinder)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.442524, -5.441383, 0.884279, 0.024730] #last 4 columns
    rae2822_sa.su2_exec  = "SU2_CFD"
    rae2822_sa.timeout   = 1600
    rae2822_sa.tol       = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.185243, 4.018464, 0.886786, 0.024927] #last 4 columns
    rae2822_sst.su2_exec  = "SU2_CFD"
    rae2822_sst.timeout   = 1600
    rae2822_sst.tol       = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.069447, -7.354601, -0.187187, 0.010831] #last 4 columns
    turb_flatplate.su2_exec  = "SU2_CFD"
    turb_flatplate.timeout   = 1600
    turb_flatplate.tol       = 0.00001
    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.327509, -6.563372, 0.230438, 0.155815]#last 4 columns
    turb_oneram6.su2_exec  = "SU2_CFD"
    turb_oneram6.timeout   = 3200
    turb_oneram6.tol       = 0.00001
    test_list.append(turb_oneram6)
    
    # NACA0012 (SA, FUN3D 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 = 20
    turb_naca0012_sa.test_vals = [-6.607227, -9.778334, 1.098508, 0.012417] #last 4 columns
    turb_naca0012_sa.su2_exec  = "SU2_CFD"
    turb_naca0012_sa.timeout   = 3200
    turb_naca0012_sa.tol       = 0.00001
    test_list.append(turb_naca0012_sa)
    
    # NACA0012 (SST, FUN3D 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 = 20
    turb_naca0012_sst.test_vals = [-8.290782, -1.743121, 1.084189, 0.012583] #last 4 columns
    turb_naca0012_sst.su2_exec  = "SU2_CFD"
    turb_naca0012_sst.timeout   = 3200
    turb_naca0012_sst.tol       = 0.00001
    test_list.append(turb_naca0012_sst)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.710052, -11.007500, -0.000001, 0.210445] #last 4 columns
    inc_turb_naca0012.su2_exec  = "SU2_CFD"
    inc_turb_naca0012.timeout   = 1600
    inc_turb_naca0012.tol       = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012           = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir   = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file  = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-9.787555, -15.192503, 0.300920, 0.536870] #last 4 columns
    contadj_naca0012.su2_exec  = "SU2_CFD"
    contadj_naca0012.timeout   = 1600
    contadj_naca0012.tol       = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6           = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir   = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file  = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 5
    contadj_oneram6.test_vals = [-6.009929, -6.251311, -0.106940, 0.149230] #last 4 columns
    contadj_oneram6.su2_exec  = "SU2_CFD"
    contadj_oneram6.timeout   = 1600
    contadj_oneram6.tol       = 0.00001
    test_list.append(contadj_oneram6)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder           = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir   = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file  = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-3.677184, -9.141850, -2.056700, 4.497000] #last 4 columns
    contadj_ns_cylinder.su2_exec  = "SU2_CFD"
    contadj_ns_cylinder.timeout   = 1600
    contadj_ns_cylinder.tol       = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub           = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir   = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [-2.744551, -8.216469, 0.518810, 0.229160] #last 4 columns
    contadj_ns_naca0012_sub.su2_exec  = "SU2_CFD"
    contadj_ns_naca0012_sub.timeout   = 1600
    contadj_ns_naca0012_sub.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_sub)
    
    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans           = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir   = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [-1.041539, -6.578524, 1.772300, 0.620880] #last 4 columns
    contadj_ns_naca0012_trans.su2_exec  = "SU2_CFD"
    contadj_ns_naca0012_trans.timeout   = 1600
    contadj_ns_naca0012_trans.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012           = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir   = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file  = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-0.814757, -5.726517, -19.169000, -2.994100] #last 4 columns
    contadj_rans_naca0012.su2_exec  = "SU2_CFD"
    contadj_rans_naca0012.timeout   = 1600
    contadj_rans_naca0012.tol       = 0.00001
    test_list.append(contadj_rans_naca0012)
    
    # Adjoint turbulent RAE2822
    contadj_rans_rae2822           = TestCase('contadj_rans_rae2822')
    contadj_rans_rae2822.cfg_dir   = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file  = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [-5.377843, -10.882446, -0.212470, 0.269390] #last 4 columns
    contadj_rans_rae2822.su2_exec  = "SU2_CFD"
    contadj_rans_rae2822.timeout   = 1600
    contadj_rans_rae2822.tol       = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012           = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir   = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 5
    contadj_incomp_NACA0012.test_vals = [-11.980272, -12.146779, 1.9399, 0.000000] #last 4 columns
    contadj_incomp_NACA0012.su2_exec  = "SU2_CFD"
    contadj_incomp_NACA0012.timeout   = 1600
    contadj_incomp_NACA0012.tol       = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder           = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-5.718622, -7.027366, -2.932100, 0.000000] #last 4 columns
    contadj_incomp_cylinder.su2_exec  = "SU2_CFD"
    contadj_incomp_cylinder.timeout   = 1600
    contadj_incomp_cylinder.tol       = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################
    ramc           = TestCase('ramc')
    ramc.cfg_dir   = "tne2/ramc"
    ramc.cfg_file  = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.643029, 2.849441, -4.443852, 0.000313] #last 4 columns
    ramc.su2_exec  = "SU2_CFD"
    ramc.timeout   = 1600
    ramc.tol       = 0.00001
    test_list.append(ramc)

#    ######################################
#    ### Spectral Method                ###
#    ######################################
#    spectral           = TestCase('spectral')
#    spectral.cfg_dir   = "spectral_method"
#    spectral.cfg_file  = "spectral.cfg"
#    spectral.test_iter = 25
#    spectral.test_vals = [-1.621870,3.852164,0.007465,0.084358]
#    spectral.su2_exec  = "SU2_CFD"
#    spectral.timeout   = 1600
#    spectral.tol       = 0.00001
#    test_list.append(spectral)

    ######################################
    ### 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.164470, 0.051972, 2.547034] #last 4 columns
    cavity.su2_exec  = "SU2_CFD"
    cavity.timeout   = 1600
    cavity.tol       = 0.00001
    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.709662, -2.274900, 1.418422, 1.734206] #last 4 columns
    spinning_cylinder.su2_exec  = "SU2_CFD"
    spinning_cylinder.timeout   = 1600
    spinning_cylinder.tol       = 0.00001
    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.544603, 0.048578, 1.398951, 2.196894] #last 4 columns
    square_cylinder.su2_exec  = "SU2_CFD"
    square_cylinder.timeout   = 1600
    square_cylinder.tol       = 0.00001
    test_list.append(square_cylinder)

    ######################################
    ### Real_Gas                       ###
    ######################################

    # ls89_sa
    ls89_sa           = TestCase('ls89_sa')
    ls89_sa.cfg_dir   = "nicf/LS89"
    ls89_sa.cfg_file  = "turb_SA_PR.cfg"
    ls89_sa.test_iter = 100
    ls89_sa.test_vals = [-6.383111, -13.350395, 0.069071, 0.160893] #last 4 columns
    ls89_sa.su2_exec  = "SU2_CFD"
    ls89_sa.timeout   = 1600
    ls89_sa.tol       = 0.00001
    test_list.append(ls89_sa)

#    # ls89_sst
#    ls89_sst           = TestCase('ls89_sst')
#    ls89_sst.cfg_dir   = "nicf/LS89"
#    ls89_sst.cfg_file  = "turb_SST_PR.cfg"
#    ls89_sst.test_iter = 100
#    ls89_sst.test_vals =  [-8.548266, -1.449437, 0.067986, 0.151168] #last 4 columns
#    ls89_sst.su2_exec  = "SU2_CFD"
#    ls89_sst.timeout   = 1600
#    ls89_sst.tol       = 0.00001
#    test_list.append(ls89_sst)

    # 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 = [-1.448271, 4.749156, -0.000046, 0.000000] #last 4 columns
    edge_VW.su2_exec  = "SU2_CFD"
    edge_VW.timeout   = 1600
    edge_VW.tol       = 0.00001
    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 = [-1.998238, 4.172451, -0.000056, 0.000000] #last 4 columns
    edge_PPR.su2_exec  = "SU2_CFD"
    edge_PPR.timeout   = 1600
    edge_PPR.tol       = 0.00001
    test_list.append(edge_PPR)

    ######################################
    ### RUN TESTS                      ###
    ######################################  

    pass_list = [ test.run_test() for test in test_list ]

    if all(pass_list):
        sys.exit(0)
    else:
        sys.exit(1)
Esempio n. 7
0
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 = 100
    channel.test_vals = [-3.071007, 2.301191, 0.008562, 0.028922] #last 4 columns
    channel.su2_exec  = "parallel_computation.py -f"
    channel.timeout   = 1600
    channel.tol       = 0.00001
    test_list.append(channel)

    # NACA0012 
    naca0012           = TestCase('naca0012')
    naca0012.cfg_dir   = "euler/naca0012"
    naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.237188, -5.641250, 0.334843, 0.022206] #last 4 columns
    naca0012.su2_exec  = "parallel_computation.py -f"
    naca0012.timeout   = 1600
    naca0012.tol       = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge 
    wedge           = TestCase('wedge')
    wedge.cfg_dir   = "euler/wedge"
    wedge.cfg_file  = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.690232, 3.924432, -0.252221, 0.044419] #last 4 columns
    wedge.su2_exec  = "parallel_computation.py -f"
    wedge.timeout   = 1600
    wedge.tol       = 0.00001
    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 = [-13.400678, -12.932056, 0.282557, 0.012706] #last 4 columns
    oneram6.su2_exec  = "parallel_computation.py -f"
    oneram6.timeout   = 3200
    oneram6.tol       = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate           = TestCase('flatplate')
    flatplate.cfg_dir   = "navierstokes/flatplate"
    flatplate.cfg_file  = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.231727, 0.261637, -0.166869, 0.012707] #last 4 columns
    flatplate.su2_exec  = "parallel_computation.py -f"
    flatplate.timeout   = 1600
    flatplate.tol       = 0.00001
    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.757291, -1.289309, -0.125948, 0.625438] #last 4 columns
    cylinder.su2_exec  = "parallel_computation.py -f"
    cylinder.timeout   = 1600
    cylinder.tol       = 0.00001
    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.861860, -1.399846, -1.557250, 110.230719] #last 4 columns
    cylinder_lowmach.su2_exec  = "parallel_computation.py -f"
    cylinder_lowmach.timeout   = 1600
    cylinder_lowmach.tol       = 0.00001
    test_list.append(cylinder_lowmach)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.647743, -5.442583, 0.903159, 0.025800] #last 4 columns
    rae2822_sa.su2_exec  = "parallel_computation.py -f"
    rae2822_sa.timeout   = 1600
    rae2822_sa.tol       = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.198777, 4.013989, 0.904265, 0.025941] #last 4 columns
    rae2822_sst.su2_exec  = "parallel_computation.py -f"
    rae2822_sst.timeout   = 1600
    rae2822_sst.tol       = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.071289, -7.366446, -0.187145, 0.010957] #last 4 columns
    turb_flatplate.su2_exec  = "parallel_computation.py -f"
    turb_flatplate.timeout   = 1600
    turb_flatplate.tol       = 0.00001
    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.327509, -6.563372, 0.230438, 0.155815] #last 4 columns
    turb_oneram6.su2_exec  = "parallel_computation.py -f"
    turb_oneram6.timeout   = 3200
    turb_oneram6.tol       = 0.00001
    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 = [-12.000764, -9.145363, 1.070528, 0.019417] #last 4 columns
    turb_naca0012_sa.su2_exec  = "parallel_computation.py -f"
    turb_naca0012_sa.timeout   = 3200
    turb_naca0012_sa.tol       = 0.00001
    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 = [-15.039645, -7.220177, 1.059622, 0.019138] #last 4 columns
    turb_naca0012_sst.su2_exec  = "parallel_computation.py -f"
    turb_naca0012_sst.timeout   = 3200
    turb_naca0012_sst.tol       = 0.00001
    test_list.append(turb_naca0012_sst)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.710048, -11.007498, 0.000002, 0.210441] #last 4 columns
    inc_turb_naca0012.su2_exec  = "parallel_computation.py -f"
    inc_turb_naca0012.timeout   = 1600
    inc_turb_naca0012.tol       = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012           = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir   = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file  = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-9.783712, -15.192812, 0.300920, 0.536870] #last 4 columns
    contadj_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_naca0012.timeout   = 1600
    contadj_naca0012.tol       = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6           = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir   = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file  = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 10
    contadj_oneram6.test_vals = [-12.131587, -12.703243, 0.685900, 0.140920] #last 4 columns
    contadj_oneram6.su2_exec  = "parallel_computation.py -f"
    contadj_oneram6.timeout   = 1600
    contadj_oneram6.tol       = 0.00001
    test_list.append(contadj_oneram6)


    # Inviscid WEDGE: generalized adjoint and custom DV
    contadj_wedge             = TestCase('contadj_wedge')
    contadj_wedge.cfg_dir   = "cont_adj_euler/wedge"
    contadj_wedge.cfg_file  = "inv_wedge_ROE.cfg"
    contadj_wedge.test_iter = 10  
    contadj_wedge.test_vals = [2.780403, -3.223266, -1448300.000000, -0.000004] #last 4 columns
    contadj_wedge.su2_exec  = "parallel_computation.py -f"
    contadj_wedge.timeout   = 1600
    contadj_wedge.tol       = 0.00001
    test_list.append(contadj_wedge)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder           = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir   = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file  = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-3.659040, -9.117773, 2.056700, 4.497000] #last 4 columns
    contadj_ns_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_ns_cylinder.timeout   = 1600
    contadj_ns_cylinder.tol       = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub           = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir   = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [-2.744551, -8.216469, 0.518810, 0.229160] #last 4 columns
    contadj_ns_naca0012_sub.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_sub.timeout   = 1600
    contadj_ns_naca0012_sub.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_sub)
    
    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans           = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir   = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [-1.041539, -6.578524, 1.772300, 0.620880] #last 4 columns
    contadj_ns_naca0012_trans.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_trans.timeout   = 1600
    contadj_ns_naca0012_trans.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_trans)
    
    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012           = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir   = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file  = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-0.814757, -5.726517, 19.169000, -2.994100] #last 4 columns
    contadj_rans_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_rans_naca0012.timeout   = 1600
    contadj_rans_naca0012.tol       = 0.00001
    test_list.append(contadj_rans_naca0012)
    
    # Adjoint turbulent RAE2822
    contadj_rans_rae2822           = TestCase('contadj_rans_rae822')
    contadj_rans_rae2822.cfg_dir   = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file  = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [-5.380929, -10.886092, -0.212470, 0.269390] #last 4 columns
    contadj_rans_rae2822.su2_exec  = "parallel_computation.py -f"
    contadj_rans_rae2822.timeout   = 1600
    contadj_rans_rae2822.tol       = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012           = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir   = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 5
    contadj_incomp_NACA0012.test_vals = [-11.968536, -12.133235, 1.939900, 0.000000] #last 4 columns
    contadj_incomp_NACA0012.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_NACA0012.timeout   = 1600
    contadj_incomp_NACA0012.tol       = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder           = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-5.718840, -7.012324, 2.932100, 0.000000] #last 4 columns
    contadj_incomp_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_cylinder.timeout   = 1600
    contadj_incomp_cylinder.tol       = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### 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.597018, -0.133158, 0.169034, 0.821371] #last 4 columns
    cavity.su2_exec  = "parallel_computation.py -f"
    cavity.timeout   = 1600
    cavity.tol       = 0.00001
    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.648320, -2.202753, 1.236836, 1.609040] #last 4 columns
    spinning_cylinder.su2_exec  = "parallel_computation.py -f"
    spinning_cylinder.timeout   = 1600
    spinning_cylinder.tol       = 0.00001
    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.166422,0.076751,1.398549,2.197047] #last 4 columns
    square_cylinder.su2_exec  = "parallel_computation.py -f"
    square_cylinder.timeout   = 1600
    square_cylinder.tol       = 0.00001
    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.977531, 3.481790, -0.014552, -0.004969] #last 4 columns
    sine_gust.su2_exec  = "parallel_computation.py -f"
    sine_gust.timeout   = 1600
    sine_gust.tol       = 0.00001
    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.077169, 0.036452, -0.001685, -0.000113] #last 4 columns
    aeroelastic.su2_exec  = "parallel_computation.py -f"
    aeroelastic.timeout   = 1600
    aeroelastic.tol       = 0.000001
    aeroelastic.unsteady  = True
    test_list.append(aeroelastic) 

    ######################################
    ### 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.058481, 1.115321, -0.000009, 0.000000] #last 4 columns
    edge_VW.su2_exec  = "parallel_computation.py -f"
    edge_VW.timeout   = 1600
    edge_VW.tol       = 0.00001
    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.486409, 0.654417, -0.000037, 0.000000] #last 4 columns
    edge_PPR.su2_exec  = "parallel_computation.py -f"
    edge_PPR.timeout   = 1600
    edge_PPR.tol       = 0.00001
    test_list.append(edge_PPR)

    ##########################
    ### 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 = [-8.520066, -8.069308, -8.062384, 64095.000000] #last 4 columns
    statbeam3d.su2_exec  = "parallel_computation_fsi.py -f"
    statbeam3d.timeout   = 1600
    statbeam3d.tol       = 0.00001
    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 = [-9.420641, -5.365871, -12.430382, 6.5210e+04] #last 4 columns
    dynbeam2d.su2_exec  = "parallel_computation_fsi.py -f"
    dynbeam2d.timeout   = 1600
    dynbeam2d.tol       = 0.00001
    test_list.append(dynbeam2d)

    # FSI, 2d
    fsi2d           = TestCase('fsi2d')
    fsi2d.cfg_dir   = "fea_fsi/WallChannel_2d"
    fsi2d.cfg_file  = "configFSI_2D.cfg"
    fsi2d.test_iter = 4
    fsi2d.test_vals = [2.000000, 0.500000, -7.777910, -1.139830] #last 4 columns
    fsi2d.su2_exec  = "parallel_computation_fsi.py -f"
    fsi2d.timeout   = 1600
    fsi2d.tol       = 0.00001
    test_list.append(fsi2d)

    ##########################
    ###   Python wrapper   ###
    ##########################
    
    # NACA0012 
    pywrapper_naca0012           = TestCase('pywrapper_naca0012')
    pywrapper_naca0012.cfg_dir   = "euler/naca0012"
    pywrapper_naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    pywrapper_naca0012.test_iter = 100
    pywrapper_naca0012.test_vals = [-6.237188, -5.641250, 0.334843, 0.022206] #last 4 columns
    pywrapper_naca0012.su2_exec  = "mpirun -np 2 pyWrap_SU2_CFD.py -f"
    pywrapper_naca0012.timeout   = 1600
    pywrapper_naca0012.tol       = 0.00001
    test_list.append(pywrapper_naca0012)

    # NACA0012 (SST, FUN3D results for finest grid: CL=1.0840, CD=0.01253)
    pywrapper_turb_naca0012_sst           = TestCase('pywrapper_turb_naca0012_sst')
    pywrapper_turb_naca0012_sst.cfg_dir   = "rans/naca0012"
    pywrapper_turb_naca0012_sst.cfg_file  = "turb_NACA0012_sst.cfg"
    pywrapper_turb_naca0012_sst.test_iter = 10
    pywrapper_turb_naca0012_sst.test_vals = [-15.039645, -7.220177, 1.059622, 0.019138] #last 4 columns
    pywrapper_turb_naca0012_sst.su2_exec  = "mpirun -np 2 pyWrap_SU2_CFD.py -f"
    pywrapper_turb_naca0012_sst.timeout   = 3200
    pywrapper_turb_naca0012_sst.tol       = 0.00001
    test_list.append(pywrapper_turb_naca0012_sst)

    # Square cylinder
    pywrapper_square_cylinder           = TestCase('pywrapper_square_cylinder')
    pywrapper_square_cylinder.cfg_dir   = "unsteady/square_cylinder"
    pywrapper_square_cylinder.cfg_file  = "turb_square.cfg"
    pywrapper_square_cylinder.test_iter = 3
    pywrapper_square_cylinder.test_vals = [-1.166422,0.076751,1.398549,2.197047] #last 4 columns
    pywrapper_square_cylinder.su2_exec  = "mpirun -np 2 pyWrap_SU2_CFD.py -f"
    pywrapper_square_cylinder.timeout   = 1600
    pywrapper_square_cylinder.tol       = 0.00001
    pywrapper_square_cylinder.unsteady  = True
    test_list.append(pywrapper_square_cylinder)

    # Aeroelastic
    pywrapper_aeroelastic         = TestCase('pywrapper_aeroelastic')
    pywrapper_aeroelastic.cfg_dir   = "aeroelastic"
    pywrapper_aeroelastic.cfg_file  = "aeroelastic_NACA64A010.cfg"
    pywrapper_aeroelastic.test_iter = 2
    pywrapper_aeroelastic.test_vals = [0.077169, 0.036452, -0.001685, -0.000113] #last 4 columns
    pywrapper_aeroelastic.su2_exec  = "mpirun -np 2 pyWrap_SU2_CFD.py -f"
    pywrapper_aeroelastic.timeout   = 1600
    pywrapper_aeroelastic.tol       = 0.000001
    pywrapper_aeroelastic.unsteady  = True
    test_list.append(pywrapper_aeroelastic)

    # FSI, 2d
    pywrapper_fsi2d           = TestCase('pywrapper_fsi2d')
    pywrapper_fsi2d.cfg_dir   = "fea_fsi/WallChannel_2d"
    pywrapper_fsi2d.cfg_file  = "configFSI_2D.cfg"
    pywrapper_fsi2d.test_iter = 4
    pywrapper_fsi2d.test_vals = [2.000000, 0.500000, -7.777910, -1.139830] #last 4 columns
    pywrapper_fsi2d.su2_exec  = "mpirun -np 2 pyWrap_SU2_CFD.py --nZone 2 --fsi True -f"
    pywrapper_fsi2d.timeout   = 1600
    pywrapper_fsi2d.tol       = 0.00001
    test_list.append(pywrapper_fsi2d)
    
    
    ######################################
    ### RUN TESTS                      ###
    ######################################
    
    pass_list = [ test.run_test() for test in test_list ]


    ######################################
    ### RUN SU2_DEF TESTS              ###
    ######################################
    
    # Inviscid NACA0012 (triangles)
    naca0012_def            = TestCase('naca0012_def')
    naca0012_def.cfg_dir   = "deformation/naca0012"
    naca0012_def.cfg_file  = "def_NACA0012.cfg"
    naca0012_def.test_iter = 250
    naca0012_def.test_vals = [5.44754e-15] #residual
    naca0012_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    naca0012_def.timeout   = 1600
    naca0012_def.tol       = 1e-15
    
    pass_list.append(naca0012_def.run_def())
    test_list.append(naca0012_def)

    # RAE2822 (mixed tris + quads)
    rae2822_def            = TestCase('rae2822_def')
    rae2822_def.cfg_dir   = "deformation/rae2822"
    rae2822_def.cfg_file  = "def_RAE2822.cfg"
    rae2822_def.test_iter = 150
    rae2822_def.test_vals = [1.47076e-15] #residual
    rae2822_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    rae2822_def.timeout   = 1600
    rae2822_def.tol       = 1e-16
    
    pass_list.append(rae2822_def.run_def())
    test_list.append(rae2822_def)
    
    # Turb NACA4412 (quads, wall distance)
    naca4412_def            = TestCase('naca4412_def')
    naca4412_def.cfg_dir   = "deformation/naca4412"
    naca4412_def.cfg_file  = "def_NACA4412.cfg"
    naca4412_def.test_iter = 300
    naca4412_def.test_vals = [4.46129e-15] #residual
    naca4412_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    naca4412_def.timeout   = 1600
    naca4412_def.tol       = 1e-15
    
    pass_list.append(naca4412_def.run_def())
    test_list.append(naca4412_def)
    
    # Brick of tets (inverse volume)
    brick_tets_def            = TestCase('brick_tets_def')
    brick_tets_def.cfg_dir   = "deformation/brick_tets"
    brick_tets_def.cfg_file  = "def_brick_tets.cfg"
    brick_tets_def.test_iter = 1000
    brick_tets_def.test_vals = [9.35558e-16] #residual
    brick_tets_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    brick_tets_def.timeout   = 1600
    brick_tets_def.tol       = 1e-15
    
    pass_list.append(brick_tets_def.run_def())
    test_list.append(brick_tets_def)
    
    # Brick of isotropic hexas (inverse volume)
    brick_hex_def           = TestCase('brick_hex_def')
    brick_hex_def.cfg_dir   = "deformation/brick_hex"
    brick_hex_def.cfg_file  = "def_brick_hex.cfg"
    brick_hex_def.test_iter = 1000
    brick_hex_def.test_vals = [1.46423e-15] #residual
    brick_hex_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    brick_hex_def.timeout   = 1600
    brick_hex_def.tol       = 1e-15
    
    pass_list.append(brick_hex_def.run_def())
    test_list.append(brick_hex_def)
    
    # Brick with a pyramid layer (inverse volume)
    brick_pyra_def           = TestCase('brick_pyra_def')
    brick_pyra_def.cfg_dir   = "deformation/brick_pyra"
    brick_pyra_def.cfg_file  = "def_brick_pyra.cfg"
    brick_pyra_def.test_iter = 100
    brick_pyra_def.test_vals = [5.97202e-15] #residual
    brick_pyra_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    brick_pyra_def.timeout   = 1600
    brick_pyra_def.tol       = 1e-15
    
    pass_list.append(brick_pyra_def.run_def())
    test_list.append(brick_pyra_def)
    
    # Brick of isotropic prisms (inverse volume)
    brick_prism_def           = TestCase('brick_prism_def')
    brick_prism_def.cfg_dir   = "deformation/brick_prism"
    brick_prism_def.cfg_file  = "def_brick_prism.cfg"
    brick_prism_def.test_iter = 100
    brick_prism_def.test_vals = [2.80867e-14] #residual
    brick_prism_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    brick_prism_def.timeout   = 1600
    brick_prism_def.tol       = 1e-15
    
    pass_list.append(brick_prism_def.run_def())
    test_list.append(brick_prism_def)
    
    # Brick of prisms with high aspect ratio cells near the wall (wall distance)
    brick_prism_rans_def           = TestCase('brick_prism_rans_def')
    brick_prism_rans_def.cfg_dir   = "deformation/brick_prism_rans"
    brick_prism_rans_def.cfg_file  = "def_brick_prism_rans.cfg"
    brick_prism_rans_def.test_iter = 50
    brick_prism_rans_def.test_vals = [3.5265e-15] #residual
    brick_prism_rans_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    brick_prism_rans_def.timeout   = 1600
    brick_prism_rans_def.tol       = 1e-15
    
    pass_list.append(brick_prism_rans_def.run_def())
    test_list.append(brick_prism_rans_def)
    
    # Brick of hexas with high aspect ratio cells near the wall (inverse volume)
    brick_hex_rans_def           = TestCase('brick_hex_rans_def')
    brick_hex_rans_def.cfg_dir   = "deformation/brick_hex_rans"
    brick_hex_rans_def.cfg_file  = "def_brick_hex_rans.cfg"
    brick_hex_rans_def.test_iter = 600
    brick_hex_rans_def.test_vals = [2.75292e-14] #residual
    brick_hex_rans_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    brick_hex_rans_def.timeout   = 1600
    brick_hex_rans_def.tol       = 1e-16
    
    pass_list.append(brick_hex_rans_def.run_def())
    test_list.append(brick_hex_rans_def)


    ######################################
    ### RUN EXTERNAL FSI COUPLING TEST ###
    ######################################

    # Pitch-plunge NACA 0012 (external FSI coupling)
    coupled_FSI            = TestCase('coupled_FSI')
    coupled_FSI.cfg_dir    = "coupled_fsi/2d_aeroelasticity"
    coupled_FSI.cfg_file   = "FSICoupler_config.cfg"
    coupled_FSI.test_iter  = 1
    coupled_FSI.su2_exec   = "mpirun -np 2 fsi_computation.py"
    coupled_FSI.timeout    = 1600
    coupled_FSI.reference_file = "StructHistory.dat.ref_parallel"
    coupled_FSI.test_file  = "StructHistory.dat"
    pass_list.append(coupled_FSI.run_filediff())
    test_list.append(coupled_FSI)


    # Tests summary
    print '=================================================================='
    print 'Summary of the parallel tests'
    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)
Esempio n. 8
0
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.606839,-9.035212,-3.3386e-07,1.8777e-01] #last 4 columns
    discadj_naca0012.su2_exec  = "SU2_CFD_AD"
    discadj_naca0012.timeout   = 1600
    discadj_naca0012.tol       = 0.00001
    test_list.append(discadj_naca0012)

    #######################################################
    ### 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 = [-1.751947, 0.485758, 0.181440, -0.385110] #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 = [-1.658566, -0.487694, 0.087556, -0.537010] #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)

    #######################################################
    ### 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 = 10
    discadj_cylinder.test_vals = [3.522068,-1.787841,-1.2030e-02,1.1156e-03] #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)

    ######################################
    ### 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"
    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 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"
    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)

    # Tests summary
    print '=================================================================='
    print 'Summary of the serial tests'
    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)
Esempio n. 9
0
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 = 100
    channel.test_vals = [-3.071007, 2.301191, 0.008562, 0.028922] #last 4 columns
    channel.su2_exec  = "parallel_computation.py -f"
    channel.timeout   = 1600
    channel.tol       = 0.00001
    test_list.append(channel)

    # NACA0012 
    naca0012           = TestCase('naca0012')
    naca0012.cfg_dir   = "euler/naca0012"
    naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.237188, -5.641250, 0.334843, 0.022206] #last 4 columns
    naca0012.su2_exec  = "parallel_computation.py -f"
    naca0012.timeout   = 1600
    naca0012.tol       = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge 
    wedge           = TestCase('wedge')
    wedge.cfg_dir   = "euler/wedge"
    wedge.cfg_file  = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.690232, 3.924432, -0.252221, 0.044419] #last 4 columns
    wedge.su2_exec  = "parallel_computation.py -f"
    wedge.timeout   = 1600
    wedge.tol       = 0.00001
    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 = [-13.400678, -12.932056, 0.282557, 0.012706] #last 4 columns
    oneram6.su2_exec  = "parallel_computation.py -f"
    oneram6.timeout   = 3200
    oneram6.tol       = 0.00001
    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 = 500
    fixedCL_naca0012.test_vals = [-5.930145,-0.546310,0.300089,0.019393] #last 4 columns
    fixedCL_naca0012.su2_exec  = "parallel_computation.py -f"
    fixedCL_naca0012.timeout   = 1600
    fixedCL_naca0012.tol       = 0.00001
    test_list.append(fixedCL_naca0012)
    
    # Polar sweep of the inviscid NACA0012
    polar_naca0012           = TestCase('polar_naca0012')
    polar_naca0012.cfg_dir   = "polar/naca0012"
    polar_naca0012.cfg_file  = "inv_NACA0012.cfg"
    polar_naca0012.polar     = True
    polar_naca0012.test_iter = 10
    polar_naca0012.test_vals = [-1.298373, 4.139860, 0.010703, 0.008932] #last 4 columns
    polar_naca0012.su2_exec  = "compute_polar.py -i 11"
    polar_naca0012.timeout   = 1600
    polar_naca0012.tol       = 0.00001
    test_list.append(polar_naca0012)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate           = TestCase('flatplate')
    flatplate.cfg_dir   = "navierstokes/flatplate"
    flatplate.cfg_file  = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.231727, 0.261637, -0.166869, 0.012707] #last 4 columns
    flatplate.su2_exec  = "parallel_computation.py -f"
    flatplate.timeout   = 1600
    flatplate.tol       = 0.00001
    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.757291, -1.289309, -0.125948, 0.625438] #last 4 columns
    cylinder.su2_exec  = "parallel_computation.py -f"
    cylinder.timeout   = 1600
    cylinder.tol       = 0.00001
    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.861860, -1.399846, -1.557250, 110.230719] #last 4 columns
    cylinder_lowmach.su2_exec  = "parallel_computation.py -f"
    cylinder_lowmach.timeout   = 1600
    cylinder_lowmach.tol       = 0.00001
    test_list.append(cylinder_lowmach)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.647743, -5.442583, 0.903159, 0.025800] #last 4 columns
    rae2822_sa.su2_exec  = "parallel_computation.py -f"
    rae2822_sa.timeout   = 1600
    rae2822_sa.tol       = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.198777, 4.013989, 0.904265, 0.025941] #last 4 columns
    rae2822_sst.su2_exec  = "parallel_computation.py -f"
    rae2822_sst.timeout   = 1600
    rae2822_sst.tol       = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.071289, -7.366446, -0.187145, 0.010957] #last 4 columns
    turb_flatplate.su2_exec  = "parallel_computation.py -f"
    turb_flatplate.timeout   = 1600
    turb_flatplate.tol       = 0.00001
    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.327509, -6.563372, 0.230438, 0.155815] #last 4 columns
    turb_oneram6.su2_exec  = "parallel_computation.py -f"
    turb_oneram6.timeout   = 3200
    turb_oneram6.tol       = 0.00001
    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 = [-12.000764, -9.145363, 1.070528, 0.019417] #last 4 columns
    turb_naca0012_sa.su2_exec  = "parallel_computation.py -f"
    turb_naca0012_sa.timeout   = 3200
    turb_naca0012_sa.tol       = 0.00001
    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 = [-15.039645, -7.220177, 1.059622, 0.019138] #last 4 columns
    turb_naca0012_sst.su2_exec  = "parallel_computation.py -f"
    turb_naca0012_sst.timeout   = 3200
    turb_naca0012_sst.tol       = 0.00001
    test_list.append(turb_naca0012_sst)

    # PROPELLER
    propeller           = TestCase('propeller')
    propeller.cfg_dir   = "rans/propeller"
    propeller.cfg_file  = "propeller.cfg"
    propeller.test_iter = 10
    propeller.test_vals = [-3.380312, -8.129519, 0.000043, 0.056159] #last 4 columns
    propeller.su2_exec  = "parallel_computation.py -f"
    propeller.timeout   = 3200
    propeller.tol       = 0.00001
    test_list.append(propeller)

    #############################
    ### 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 = [-3.544713,-3.135163,0.968231,0.010161] #last 4 columns
    inc_euler_naca0012.su2_exec  = "parallel_computation.py -f"
    inc_euler_naca0012.timeout   = 1600
    inc_euler_naca0012.tol       = 0.00001
    test_list.append(inc_euler_naca0012)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.710048, -11.007498, 0.000002, 0.210441] #last 4 columns
    inc_turb_naca0012.su2_exec  = "parallel_computation.py -f"
    inc_turb_naca0012.timeout   = 1600
    inc_turb_naca0012.tol       = 0.00001
    test_list.append(inc_turb_naca0012)

    ############################
    ###      Transition      ###
    ############################

    # Schubauer-Klebanoff Natural Transition Case
    schubauer_klebanoff_transition              = TestCase('Schubauer_Klebanoff')
    schubauer_klebanoff_transition.cfg_dir      = "transition/Schubauer_Klebanoff"
    schubauer_klebanoff_transition.cfg_file     = "transitional_BC_model_ConfigFile.cfg"
    schubauer_klebanoff_transition.test_iter    = 250
    schubauer_klebanoff_transition.test_vals    = [-9.467876, -15.630835, 0.000520, 0.001062] #last 4 columns
    schubauer_klebanoff_transition.su2_exec     = "parallel_computation.py -f"
    schubauer_klebanoff_transition.timeout      = 1600
    schubauer_klebanoff_transition.tol          = 0.00001
    test_list.append(schubauer_klebanoff_transition)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012           = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir   = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file  = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-9.783712, -15.192812, 0.300920, 0.019552] #last 4 columns
    contadj_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_naca0012.timeout   = 1600
    contadj_naca0012.tol       = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6           = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir   = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file  = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 10
    contadj_oneram6.test_vals = [-12.131587, -12.703243, 0.685900, 0.007594] #last 4 columns
    contadj_oneram6.su2_exec  = "parallel_computation.py -f"
    contadj_oneram6.timeout   = 1600
    contadj_oneram6.tol       = 0.00001
    test_list.append(contadj_oneram6)

    # Inviscid WEDGE: generalized adjoint and custom DV
    contadj_wedge             = TestCase('contadj_wedge')
    contadj_wedge.cfg_dir   = "cont_adj_euler/wedge"
    contadj_wedge.cfg_file  = "inv_wedge_ROE.cfg"
    contadj_wedge.test_iter = 10  
    contadj_wedge.test_vals = [2.780403, -3.223266, -1448300.000000, -0.000000] #last 4 columns
    contadj_wedge.su2_exec  = "parallel_computation.py -f"
    contadj_wedge.timeout   = 1600
    contadj_wedge.tol       = 0.00001
    test_list.append(contadj_wedge)

    # Inviscid fixed CL NACA0012
    contadj_fixed_CL_naca0012           = TestCase('contadj_fixedcl_naca0012')
    contadj_fixed_CL_naca0012.cfg_dir   = "fixed_cl/naca0012"
    contadj_fixed_CL_naca0012.cfg_file  = "inv_NACA0012_ContAdj.cfg"
    contadj_fixed_CL_naca0012.test_iter = 500
    contadj_fixed_CL_naca0012.test_vals = [-2.921695, -8.474107, 0.250530, 0.000003] #last 4 columns
    contadj_fixed_CL_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_fixed_CL_naca0012.timeout   = 1600
    contadj_fixed_CL_naca0012.tol       = 0.00001
    test_list.append(contadj_fixed_CL_naca0012)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder           = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir   = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file  = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-3.659040, -9.117773, 2.056700, -0.000000] #last 4 columns
    contadj_ns_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_ns_cylinder.timeout   = 1600
    contadj_ns_cylinder.tol       = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub           = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir   = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [-2.744551, -8.216469, 0.518810, 0.001210] #last 4 columns
    contadj_ns_naca0012_sub.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_sub.timeout   = 1600
    contadj_ns_naca0012_sub.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_sub)
    
    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans           = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir   = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [-1.041539, -6.578524, 1.772300, 0.012494] #last 4 columns
    contadj_ns_naca0012_trans.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_trans.timeout   = 1600
    contadj_ns_naca0012_trans.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_trans)
    
    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012           = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir   = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file  = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-0.814757, -5.726517, 19.169000, -0.000000] #last 4 columns
    contadj_rans_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_rans_naca0012.timeout   = 1600
    contadj_rans_naca0012.tol       = 0.00001
    test_list.append(contadj_rans_naca0012)
    
    # Adjoint turbulent RAE2822
    contadj_rans_rae2822           = TestCase('contadj_rans_rae822')
    contadj_rans_rae2822.cfg_dir   = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file  = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [-5.380929, -10.886092, -0.212470, 0.005448] #last 4 columns
    contadj_rans_rae2822.su2_exec  = "parallel_computation.py -f"
    contadj_rans_rae2822.timeout   = 1600
    contadj_rans_rae2822.tol       = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012           = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir   = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 5
    contadj_incomp_NACA0012.test_vals = [-11.968536, -12.133235, 1.939900, 0.000000] #last 4 columns
    contadj_incomp_NACA0012.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_NACA0012.timeout   = 1600
    contadj_incomp_NACA0012.tol       = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder           = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-5.718840, -7.012324, 2.932100, 0.000000] #last 4 columns
    contadj_incomp_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_cylinder.timeout   = 1600
    contadj_incomp_cylinder.tol       = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################                                                                                  
    ### 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.569573, 3.941896, 0.008780, 0.079775] #last 4 columns
    harmonic_balance.su2_exec  = "parallel_computation.py -f"
    harmonic_balance.timeout   = 1600
    harmonic_balance.tol       = 0.00001
    test_list.append(harmonic_balance)

    ######################################
    ### 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.597018, -0.133158, 0.169034, 0.821371] #last 4 columns
    cavity.su2_exec  = "parallel_computation.py -f"
    cavity.timeout   = 1600
    cavity.tol       = 0.00001
    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.648320, -2.202753, 1.236836, 1.609040] #last 4 columns
    spinning_cylinder.su2_exec  = "parallel_computation.py -f"
    spinning_cylinder.timeout   = 1600
    spinning_cylinder.tol       = 0.00001
    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.166422,0.076751,1.398549,2.197047] #last 4 columns
    square_cylinder.su2_exec  = "parallel_computation.py -f"
    square_cylinder.timeout   = 1600
    square_cylinder.tol       = 0.00001
    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.977531, 3.481790, -0.014552, -0.004969] #last 4 columns
    sine_gust.su2_exec  = "parallel_computation.py -f"
    sine_gust.timeout   = 1600
    sine_gust.tol       = 0.00001
    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.077169, 0.036452, -0.001685, -0.000113] #last 4 columns
    aeroelastic.su2_exec  = "parallel_computation.py -f"
    aeroelastic.timeout   = 1600
    aeroelastic.tol       = 0.000001
    aeroelastic.unsteady  = True
    test_list.append(aeroelastic) 

    ######################################
    ### 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.058481, 1.115321, -0.000009, 0.000000] #last 4 columns
    edge_VW.su2_exec  = "parallel_computation.py -f"
    edge_VW.timeout   = 1600
    edge_VW.tol       = 0.00001
    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.486409, 0.654417, -0.000037, 0.000000] #last 4 columns
    edge_PPR.su2_exec  = "parallel_computation.py -f"
    edge_PPR.timeout   = 1600
    edge_PPR.tol       = 0.00001
    test_list.append(edge_PPR)

    ######################################
    ### 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 = 50
    uniform_flow.test_vals = [-0.368836, 5.156090, 0.000000, 0.000000] #last 4 columns
    uniform_flow.su2_exec  = "parallel_computation.py -f"
    uniform_flow.timeout   = 1600
    uniform_flow.tol       = 0.000001
    uniform_flow.unsteady  = 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_NN.cfg"
    channel_2D.test_iter = 4
    channel_2D.test_vals = [-1.498340, 4.541397, 0.000000, 0.000000] #last 4 columns
    channel_2D.su2_exec  = "parallel_computation.py -f"
    channel_2D.timeout   = 100
    channel_2D.tol       = 0.00001
    channel_2D.unsteady  = 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_NN.cfg"
    channel_3D.test_iter = 2
    channel_3D.test_vals = [-1.998330, 3.957669, 0.000000, 0.000000] #last 4 columns
    channel_3D.su2_exec  = "parallel_computation.py -f"
    channel_3D.timeout   = 1600
    channel_3D.tol       = 0.00001
    channel_3D.unsteady  = 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 = [-3.503708, 3.194241, 0.000000, 0.000000] #last 4 columns
#    pipe.su2_exec  = "parallel_computation.py -f"
#    pipe.timeout   = 1600
#    pipe.tol       = 0.00001
#    pipe.unsteady  = True
#    test_list.append(pipe)

    ##########################
    ### 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 = [-8.520066, -8.069308, -8.062384, 64095.000000] #last 4 columns
    statbeam3d.su2_exec  = "parallel_computation_fsi.py -f"
    statbeam3d.timeout   = 1600
    statbeam3d.tol       = 0.00001
    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 = [-9.420641, -5.365871, -12.430382, 6.5210e+04] #last 4 columns
    dynbeam2d.su2_exec  = "parallel_computation_fsi.py -f"
    dynbeam2d.timeout   = 1600
    dynbeam2d.tol       = 0.00001
    test_list.append(dynbeam2d)

    # FSI, 2d
    fsi2d           = TestCase('fsi2d')
    fsi2d.cfg_dir   = "fea_fsi/WallChannel_2d"
    fsi2d.cfg_file  = "configFSI_2D.cfg"
    fsi2d.test_iter = 4
    fsi2d.test_vals = [2.000000, 0.500000, -7.777910, -1.139830] #last 4 columns
    fsi2d.su2_exec  = "parallel_computation_fsi.py -f"
    fsi2d.timeout   = 1600
    fsi2d.tol       = 0.00001
    test_list.append(fsi2d)

    ##########################
    ###   Python wrapper   ###
    ##########################
    
    # NACA0012 
    pywrapper_naca0012           = TestCase('pywrapper_naca0012')
    pywrapper_naca0012.cfg_dir   = "euler/naca0012"
    pywrapper_naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    pywrapper_naca0012.test_iter = 100
    pywrapper_naca0012.test_vals = [-6.237188, -5.641250, 0.334843, 0.022206] #last 4 columns
    pywrapper_naca0012.su2_exec  = "mpirun -np 2 SU2_CFD.py --parallel -f"
    pywrapper_naca0012.timeout   = 1600
    pywrapper_naca0012.tol       = 0.00001
    test_list.append(pywrapper_naca0012)

    # NACA0012 (SST, FUN3D results for finest grid: CL=1.0840, CD=0.01253)
    pywrapper_turb_naca0012_sst           = TestCase('pywrapper_turb_naca0012_sst')
    pywrapper_turb_naca0012_sst.cfg_dir   = "rans/naca0012"
    pywrapper_turb_naca0012_sst.cfg_file  = "turb_NACA0012_sst.cfg"
    pywrapper_turb_naca0012_sst.test_iter = 10
    pywrapper_turb_naca0012_sst.test_vals = [-15.039645, -7.220177, 1.059622, 0.019138] #last 4 columns
    pywrapper_turb_naca0012_sst.su2_exec  = "mpirun -np 2 SU2_CFD.py --parallel -f"
    pywrapper_turb_naca0012_sst.timeout   = 3200
    pywrapper_turb_naca0012_sst.tol       = 0.00001
    test_list.append(pywrapper_turb_naca0012_sst)

    # Square cylinder
    pywrapper_square_cylinder           = TestCase('pywrapper_square_cylinder')
    pywrapper_square_cylinder.cfg_dir   = "unsteady/square_cylinder"
    pywrapper_square_cylinder.cfg_file  = "turb_square.cfg"
    pywrapper_square_cylinder.test_iter = 3
    pywrapper_square_cylinder.test_vals = [-1.166422,0.076751,1.398549,2.197047] #last 4 columns
    pywrapper_square_cylinder.su2_exec  = "mpirun -np 2 SU2_CFD.py --parallel -f"
    pywrapper_square_cylinder.timeout   = 1600
    pywrapper_square_cylinder.tol       = 0.00001
    pywrapper_square_cylinder.unsteady  = True
    test_list.append(pywrapper_square_cylinder)

    # Aeroelastic
    pywrapper_aeroelastic         = TestCase('pywrapper_aeroelastic')
    pywrapper_aeroelastic.cfg_dir   = "aeroelastic"
    pywrapper_aeroelastic.cfg_file  = "aeroelastic_NACA64A010.cfg"
    pywrapper_aeroelastic.test_iter = 2
    pywrapper_aeroelastic.test_vals = [0.077169, 0.036452, -0.001685, -0.000113] #last 4 columns
    pywrapper_aeroelastic.su2_exec  = "mpirun -np 2 SU2_CFD.py --parallel -f"
    pywrapper_aeroelastic.timeout   = 1600
    pywrapper_aeroelastic.tol       = 0.000001
    pywrapper_aeroelastic.unsteady  = True
    test_list.append(pywrapper_aeroelastic)

    # FSI, 2d
    pywrapper_fsi2d           = TestCase('pywrapper_fsi2d')
    pywrapper_fsi2d.cfg_dir   = "fea_fsi/WallChannel_2d"
    pywrapper_fsi2d.cfg_file  = "configFSI_2D.cfg"
    pywrapper_fsi2d.test_iter = 4
    pywrapper_fsi2d.test_vals = [2.000000, 0.500000, -7.777910, -1.139830] #last 4 columns
    pywrapper_fsi2d.su2_exec  = "mpirun -np 2 SU2_CFD.py --nZone 2 --fsi True --parallel -f"
    pywrapper_fsi2d.timeout   = 1600
    pywrapper_fsi2d.tol       = 0.00001
    test_list.append(pywrapper_fsi2d)
    
    
    ######################################
    ### RUN TESTS                      ###
    ######################################
    
    pass_list = [ test.run_test() for test in test_list ]


    ######################################
    ### RUN SU2_DEF TESTS              ###
    ######################################
    
    # Inviscid NACA0012 (triangles)
    naca0012_def            = TestCase('naca0012_def')
    naca0012_def.cfg_dir   = "deformation/naca0012"
    naca0012_def.cfg_file  = "def_NACA0012.cfg"
    naca0012_def.test_iter = 250
    naca0012_def.test_vals = [5.44754e-15] #residual
    naca0012_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    naca0012_def.timeout   = 1600
    naca0012_def.tol       = 1e-15
    
    pass_list.append(naca0012_def.run_def())
    test_list.append(naca0012_def)

    # RAE2822 (mixed tris + quads)
    rae2822_def            = TestCase('rae2822_def')
    rae2822_def.cfg_dir   = "deformation/rae2822"
    rae2822_def.cfg_file  = "def_RAE2822.cfg"
    rae2822_def.test_iter = 150
    rae2822_def.test_vals = [1.47076e-15] #residual
    rae2822_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    rae2822_def.timeout   = 1600
    rae2822_def.tol       = 1e-16
    
    pass_list.append(rae2822_def.run_def())
    test_list.append(rae2822_def)
    
    # Turb NACA4412 (quads, wall distance)
    naca4412_def            = TestCase('naca4412_def')
    naca4412_def.cfg_dir   = "deformation/naca4412"
    naca4412_def.cfg_file  = "def_NACA4412.cfg"
    naca4412_def.test_iter = 300
    naca4412_def.test_vals = [4.46129e-15] #residual
    naca4412_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    naca4412_def.timeout   = 1600
    naca4412_def.tol       = 1e-15
    
    pass_list.append(naca4412_def.run_def())
    test_list.append(naca4412_def)
    
    # Brick of tets (inverse volume)
    brick_tets_def            = TestCase('brick_tets_def')
    brick_tets_def.cfg_dir   = "deformation/brick_tets"
    brick_tets_def.cfg_file  = "def_brick_tets.cfg"
    brick_tets_def.test_iter = 1000
    brick_tets_def.test_vals = [9.35558e-16] #residual
    brick_tets_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    brick_tets_def.timeout   = 1600
    brick_tets_def.tol       = 1e-15
    
    pass_list.append(brick_tets_def.run_def())
    test_list.append(brick_tets_def)
    
    # Brick of isotropic hexas (inverse volume)
    brick_hex_def           = TestCase('brick_hex_def')
    brick_hex_def.cfg_dir   = "deformation/brick_hex"
    brick_hex_def.cfg_file  = "def_brick_hex.cfg"
    brick_hex_def.test_iter = 1000
    brick_hex_def.test_vals = [1.46423e-15] #residual
    brick_hex_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    brick_hex_def.timeout   = 1600
    brick_hex_def.tol       = 1e-15
    
    pass_list.append(brick_hex_def.run_def())
    test_list.append(brick_hex_def)
    
    # Brick with a pyramid layer (inverse volume)
    brick_pyra_def           = TestCase('brick_pyra_def')
    brick_pyra_def.cfg_dir   = "deformation/brick_pyra"
    brick_pyra_def.cfg_file  = "def_brick_pyra.cfg"
    brick_pyra_def.test_iter = 100
    brick_pyra_def.test_vals = [5.97202e-15] #residual
    brick_pyra_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    brick_pyra_def.timeout   = 1600
    brick_pyra_def.tol       = 1e-15
    
    pass_list.append(brick_pyra_def.run_def())
    test_list.append(brick_pyra_def)
    
    # Brick of isotropic prisms (inverse volume)
    brick_prism_def           = TestCase('brick_prism_def')
    brick_prism_def.cfg_dir   = "deformation/brick_prism"
    brick_prism_def.cfg_file  = "def_brick_prism.cfg"
    brick_prism_def.test_iter = 100
    brick_prism_def.test_vals = [2.80867e-14] #residual
    brick_prism_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    brick_prism_def.timeout   = 1600
    brick_prism_def.tol       = 1e-15
    
    pass_list.append(brick_prism_def.run_def())
    test_list.append(brick_prism_def)
    
    # Brick of prisms with high aspect ratio cells near the wall (wall distance)
    brick_prism_rans_def           = TestCase('brick_prism_rans_def')
    brick_prism_rans_def.cfg_dir   = "deformation/brick_prism_rans"
    brick_prism_rans_def.cfg_file  = "def_brick_prism_rans.cfg"
    brick_prism_rans_def.test_iter = 50
    brick_prism_rans_def.test_vals = [3.5265e-15] #residual
    brick_prism_rans_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    brick_prism_rans_def.timeout   = 1600
    brick_prism_rans_def.tol       = 1e-15
    
    pass_list.append(brick_prism_rans_def.run_def())
    test_list.append(brick_prism_rans_def)
    
    # Brick of hexas with high aspect ratio cells near the wall (inverse volume)
    brick_hex_rans_def           = TestCase('brick_hex_rans_def')
    brick_hex_rans_def.cfg_dir   = "deformation/brick_hex_rans"
    brick_hex_rans_def.cfg_file  = "def_brick_hex_rans.cfg"
    brick_hex_rans_def.test_iter = 600
    brick_hex_rans_def.test_vals = [2.75292e-14] #residual
    brick_hex_rans_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    brick_hex_rans_def.timeout   = 1600
    brick_hex_rans_def.tol       = 1e-16
    
    pass_list.append(brick_hex_rans_def.run_def())
    test_list.append(brick_hex_rans_def)

    # Cylindrical FFD test
    cylinder_ffd_def           = TestCase('cylinder_ffd_def')
    cylinder_ffd_def.cfg_dir   = "deformation/cylindrical_ffd"
    cylinder_ffd_def.cfg_file  = "def_cylindrical.cfg"
    cylinder_ffd_def.test_iter = 50
    cylinder_ffd_def.test_vals = [2.31204e-10] #residual
    cylinder_ffd_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    cylinder_ffd_def.timeout   = 1600
    cylinder_ffd_def.tol       = 1e-16

    pass_list.append(cylinder_ffd_def.run_def())
    test_list.append(cylinder_ffd_def)

    # Spherical FFD test
    sphere_ffd_def           = TestCase('sphere_ffd_def')
    sphere_ffd_def.cfg_dir   = "deformation/spherical_ffd"
    sphere_ffd_def.cfg_file  = "def_spherical.cfg"
    sphere_ffd_def.test_iter = 50
    sphere_ffd_def.test_vals = [2.0062e-10] #residual
    sphere_ffd_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    sphere_ffd_def.timeout   = 1600
    sphere_ffd_def.tol       = 1e-16

    pass_list.append(sphere_ffd_def.run_def())
    test_list.append(sphere_ffd_def)

    # Spherical FFD test using BSplines
    sphere_ffd_def_bspline           = TestCase('sphere_ffd_def_bspline')
    sphere_ffd_def_bspline.cfg_dir   = "deformation/spherical_ffd"
    sphere_ffd_def_bspline.cfg_file  = "def_spherical_bspline.cfg"
    sphere_ffd_def_bspline.test_iter = 50
    sphere_ffd_def_bspline.test_vals = [1.20429e-10] #residual
    sphere_ffd_def_bspline.su2_exec  = "mpirun -n 2 SU2_DEF"
    sphere_ffd_def_bspline.timeout   = 1600
    sphere_ffd_def_bspline.tol       = 1e-16

    pass_list.append(sphere_ffd_def_bspline.run_def())
    test_list.append(sphere_ffd_def_bspline)


    # Tests summary
    print '=================================================================='
    print 'Summary of the parallel tests'
    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)
Esempio n. 10
0
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 = 100
    channel.test_vals = [-3.071007, 2.301191, 0.008562, 0.028922] #last 4 columns
    channel.su2_exec  = "parallel_computation.py -f"
    channel.timeout   = 1600
    channel.tol       = 0.00001
    test_list.append(channel)

    # NACA0012 
    naca0012           = TestCase('naca0012')
    naca0012.cfg_dir   = "euler/naca0012"
    naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.237188, -5.641250, 0.334843, 0.022206] #last 4 columns
    naca0012.su2_exec  = "parallel_computation.py -f"
    naca0012.timeout   = 1600
    naca0012.tol       = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge 
    wedge           = TestCase('wedge')
    wedge.cfg_dir   = "euler/wedge"
    wedge.cfg_file  = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.690232, 3.924432, -0.252221, 0.044419] #last 4 columns
    wedge.su2_exec  = "parallel_computation.py -f"
    wedge.timeout   = 1600
    wedge.tol       = 0.00001
    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 = [-13.400678, -12.932056, 0.282557, 0.012706] #last 4 columns
    oneram6.su2_exec  = "parallel_computation.py -f"
    oneram6.timeout   = 3200
    oneram6.tol       = 0.00001
    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 = 500
    fixedCL_naca0012.test_vals = [-5.930145,-0.546310,0.300089,0.019393] #last 4 columns
    fixedCL_naca0012.su2_exec  = "parallel_computation.py -f"
    fixedCL_naca0012.timeout   = 1600
    fixedCL_naca0012.tol       = 0.00001
    test_list.append(fixedCL_naca0012)
    
    # Polar sweep of the inviscid NACA0012
    polar_naca0012           = TestCase('polar_naca0012')
    polar_naca0012.cfg_dir   = "polar/naca0012"
    polar_naca0012.cfg_file  = "inv_NACA0012.cfg"
    polar_naca0012.polar     = True
    polar_naca0012.test_iter = 10
    polar_naca0012.test_vals = [-1.298373, 4.139860, 0.010703, 0.008932] #last 4 columns
    polar_naca0012.su2_exec  = "compute_polar.py -i 11"
    polar_naca0012.timeout   = 1600
    polar_naca0012.tol       = 0.00001
    test_list.append(polar_naca0012)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate           = TestCase('flatplate')
    flatplate.cfg_dir   = "navierstokes/flatplate"
    flatplate.cfg_file  = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.231727, 0.261637, -0.166869, 0.012707] #last 4 columns
    flatplate.su2_exec  = "parallel_computation.py -f"
    flatplate.timeout   = 1600
    flatplate.tol       = 0.00001
    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.757291, -1.289309, -0.125948, 0.625438] #last 4 columns
    cylinder.su2_exec  = "parallel_computation.py -f"
    cylinder.timeout   = 1600
    cylinder.tol       = 0.00001
    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.861860, -1.399846, -1.557250, 110.230719] #last 4 columns
    cylinder_lowmach.su2_exec  = "parallel_computation.py -f"
    cylinder_lowmach.timeout   = 1600
    cylinder_lowmach.tol       = 0.00001
    test_list.append(cylinder_lowmach)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.647743, -5.442583, 0.903159, 0.025800] #last 4 columns
    rae2822_sa.su2_exec  = "parallel_computation.py -f"
    rae2822_sa.timeout   = 1600
    rae2822_sa.tol       = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.198777, 4.013989, 0.904265, 0.025941] #last 4 columns
    rae2822_sst.su2_exec  = "parallel_computation.py -f"
    rae2822_sst.timeout   = 1600
    rae2822_sst.tol       = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.071289, -7.366446, -0.187145, 0.010957] #last 4 columns
    turb_flatplate.su2_exec  = "parallel_computation.py -f"
    turb_flatplate.timeout   = 1600
    turb_flatplate.tol       = 0.00001
    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.327509, -6.563372, 0.230438, 0.155815] #last 4 columns
    turb_oneram6.su2_exec  = "parallel_computation.py -f"
    turb_oneram6.timeout   = 3200
    turb_oneram6.tol       = 0.00001
    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 = [-12.000764, -9.145363, 1.070528, 0.019417] #last 4 columns
    turb_naca0012_sa.su2_exec  = "parallel_computation.py -f"
    turb_naca0012_sa.timeout   = 3200
    turb_naca0012_sa.tol       = 0.00001
    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 = [-15.039645, -7.220177, 1.059622, 0.019138] #last 4 columns
    turb_naca0012_sst.su2_exec  = "parallel_computation.py -f"
    turb_naca0012_sst.timeout   = 3200
    turb_naca0012_sst.tol       = 0.00001
    test_list.append(turb_naca0012_sst)

    # PROPELLER
    propeller           = TestCase('propeller')
    propeller.cfg_dir   = "rans/propeller"
    propeller.cfg_file  = "propeller.cfg"
    propeller.test_iter = 10
    propeller.test_vals = [-3.380312, -8.129519, 0.000043, 0.056159] #last 4 columns
    propeller.su2_exec  = "parallel_computation.py -f"
    propeller.timeout   = 3200
    propeller.tol       = 0.00001
    test_list.append(propeller)

    #############################
    ### 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 = [-3.544713,-3.135163,0.968231,0.010161] #last 4 columns
    inc_euler_naca0012.su2_exec  = "parallel_computation.py -f"
    inc_euler_naca0012.timeout   = 1600
    inc_euler_naca0012.tol       = 0.00001
    test_list.append(inc_euler_naca0012)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.710048, -11.007498, 0.000002, 0.210441] #last 4 columns
    inc_turb_naca0012.su2_exec  = "parallel_computation.py -f"
    inc_turb_naca0012.timeout   = 1600
    inc_turb_naca0012.tol       = 0.00001
    test_list.append(inc_turb_naca0012)

    ############################
    ###      Transition      ###
    ############################

    # Schubauer-Klebanoff Natural Transition Case
    schubauer_klebanoff_transition              = TestCase('Schubauer_Klebanoff')
    schubauer_klebanoff_transition.cfg_dir      = "transition/Schubauer_Klebanoff"
    schubauer_klebanoff_transition.cfg_file     = "transitional_BC_model_ConfigFile.cfg"
    schubauer_klebanoff_transition.test_iter    = 250
    schubauer_klebanoff_transition.test_vals    = [-9.467876, -15.630835, 0.000520, 0.001062] #last 4 columns
    schubauer_klebanoff_transition.su2_exec     = "parallel_computation.py -f"
    schubauer_klebanoff_transition.timeout      = 1600
    schubauer_klebanoff_transition.tol          = 0.00001
    test_list.append(schubauer_klebanoff_transition)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012           = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir   = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file  = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-9.783712, -15.192812, 0.300920, 0.019552] #last 4 columns
    contadj_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_naca0012.timeout   = 1600
    contadj_naca0012.tol       = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6           = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir   = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file  = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 10
    contadj_oneram6.test_vals = [-12.131587, -12.703243, 0.685900, 0.007594] #last 4 columns
    contadj_oneram6.su2_exec  = "parallel_computation.py -f"
    contadj_oneram6.timeout   = 1600
    contadj_oneram6.tol       = 0.00001
    test_list.append(contadj_oneram6)

    # Inviscid WEDGE: generalized adjoint and custom DV
    contadj_wedge             = TestCase('contadj_wedge')
    contadj_wedge.cfg_dir   = "cont_adj_euler/wedge"
    contadj_wedge.cfg_file  = "inv_wedge_ROE.cfg"
    contadj_wedge.test_iter = 10  
    contadj_wedge.test_vals = [2.780403, -3.223266, -1448300.000000, -0.000000] #last 4 columns
    contadj_wedge.su2_exec  = "parallel_computation.py -f"
    contadj_wedge.timeout   = 1600
    contadj_wedge.tol       = 0.00001
    test_list.append(contadj_wedge)

    # Inviscid fixed CL NACA0012
    contadj_fixed_CL_naca0012           = TestCase('contadj_fixedcl_naca0012')
    contadj_fixed_CL_naca0012.cfg_dir   = "fixed_cl/naca0012"
    contadj_fixed_CL_naca0012.cfg_file  = "inv_NACA0012_ContAdj.cfg"
    contadj_fixed_CL_naca0012.test_iter = 500
    contadj_fixed_CL_naca0012.test_vals = [-2.921695, -8.474107, 0.250530, 0.000003] #last 4 columns
    contadj_fixed_CL_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_fixed_CL_naca0012.timeout   = 1600
    contadj_fixed_CL_naca0012.tol       = 0.00001
    test_list.append(contadj_fixed_CL_naca0012)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder           = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir   = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file  = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-3.659040, -9.117773, 2.056700, -0.000000] #last 4 columns
    contadj_ns_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_ns_cylinder.timeout   = 1600
    contadj_ns_cylinder.tol       = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub           = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir   = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [-2.744551, -8.216469, 0.518810, 0.001210] #last 4 columns
    contadj_ns_naca0012_sub.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_sub.timeout   = 1600
    contadj_ns_naca0012_sub.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_sub)
    
    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans           = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir   = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [-1.041539, -6.578524, 1.772300, 0.012494] #last 4 columns
    contadj_ns_naca0012_trans.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_trans.timeout   = 1600
    contadj_ns_naca0012_trans.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_trans)
    
    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012           = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir   = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file  = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-0.814757, -5.726517, 19.169000, -0.000000] #last 4 columns
    contadj_rans_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_rans_naca0012.timeout   = 1600
    contadj_rans_naca0012.tol       = 0.00001
    test_list.append(contadj_rans_naca0012)
    
    # Adjoint turbulent RAE2822
    contadj_rans_rae2822           = TestCase('contadj_rans_rae822')
    contadj_rans_rae2822.cfg_dir   = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file  = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [-5.380929, -10.886092, -0.212470, 0.005448] #last 4 columns
    contadj_rans_rae2822.su2_exec  = "parallel_computation.py -f"
    contadj_rans_rae2822.timeout   = 1600
    contadj_rans_rae2822.tol       = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012           = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir   = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 5
    contadj_incomp_NACA0012.test_vals = [-11.968536, -12.133235, 1.939900, 0.000000] #last 4 columns
    contadj_incomp_NACA0012.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_NACA0012.timeout   = 1600
    contadj_incomp_NACA0012.tol       = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder           = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-5.718840, -7.012324, 2.932100, 0.000000] #last 4 columns
    contadj_incomp_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_cylinder.timeout   = 1600
    contadj_incomp_cylinder.tol       = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################                                                                                  
    ### 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.569573, 3.941896, 0.008780, 0.079775] #last 4 columns
    harmonic_balance.su2_exec  = "parallel_computation.py -f"
    harmonic_balance.timeout   = 1600
    harmonic_balance.tol       = 0.00001
    test_list.append(harmonic_balance)

    ######################################
    ### 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.597018, -0.133158, 0.169034, 0.821371] #last 4 columns
    cavity.su2_exec  = "parallel_computation.py -f"
    cavity.timeout   = 1600
    cavity.tol       = 0.00001
    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.648320, -2.202753, 1.236836, 1.609040] #last 4 columns
    spinning_cylinder.su2_exec  = "parallel_computation.py -f"
    spinning_cylinder.timeout   = 1600
    spinning_cylinder.tol       = 0.00001
    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.166422,0.076751,1.398549,2.197047] #last 4 columns
    square_cylinder.su2_exec  = "parallel_computation.py -f"
    square_cylinder.timeout   = 1600
    square_cylinder.tol       = 0.00001
    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.977531, 3.481790, -0.014552, -0.004969] #last 4 columns
    sine_gust.su2_exec  = "parallel_computation.py -f"
    sine_gust.timeout   = 1600
    sine_gust.tol       = 0.00001
    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.077169, 0.036452, -0.001685, -0.000113] #last 4 columns
    aeroelastic.su2_exec  = "parallel_computation.py -f"
    aeroelastic.timeout   = 1600
    aeroelastic.tol       = 0.000001
    aeroelastic.unsteady  = True
    test_list.append(aeroelastic) 

    ######################################
    ### 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.058481, 1.115321, -0.000009, 0.000000] #last 4 columns
    edge_VW.su2_exec  = "parallel_computation.py -f"
    edge_VW.timeout   = 1600
    edge_VW.tol       = 0.00001
    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.486409, 0.654417, -0.000037, 0.000000] #last 4 columns
    edge_PPR.su2_exec  = "parallel_computation.py -f"
    edge_PPR.timeout   = 1600
    edge_PPR.tol       = 0.00001
    test_list.append(edge_PPR)

    ######################################
    ### 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 = 50
    uniform_flow.test_vals = [-0.368836, 5.156090, 0.000000, 0.000000] #last 4 columns
    uniform_flow.su2_exec  = "parallel_computation.py -f"
    uniform_flow.timeout   = 1600
    uniform_flow.tol       = 0.000001
    uniform_flow.unsteady  = 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_NN.cfg"
    channel_2D.test_iter = 4
    channel_2D.test_vals = [-1.498340, 4.541397, 0.000000, 0.000000] #last 4 columns
    channel_2D.su2_exec  = "parallel_computation.py -f"
    channel_2D.timeout   = 100
    channel_2D.tol       = 0.00001
    channel_2D.unsteady  = 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_NN.cfg"
    channel_3D.test_iter = 2
    channel_3D.test_vals = [-1.998330, 3.957669, 0.000000, 0.000000] #last 4 columns
    channel_3D.su2_exec  = "parallel_computation.py -f"
    channel_3D.timeout   = 1600
    channel_3D.tol       = 0.00001
    channel_3D.unsteady  = 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 = [-3.503708, 3.194241, 0.000000, 0.000000] #last 4 columns
#    pipe.su2_exec  = "parallel_computation.py -f"
#    pipe.timeout   = 1600
#    pipe.tol       = 0.00001
#    pipe.unsteady  = True
#    test_list.append(pipe)

    ##########################
    ### 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 = [-8.520066, -8.069308, -8.062384, 64095.000000] #last 4 columns
    statbeam3d.su2_exec  = "parallel_computation_fsi.py -f"
    statbeam3d.timeout   = 1600
    statbeam3d.tol       = 0.00001
    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 = [-9.420641, -5.365871, -12.430382, 6.5210e+04] #last 4 columns
    dynbeam2d.su2_exec  = "parallel_computation_fsi.py -f"
    dynbeam2d.timeout   = 1600
    dynbeam2d.tol       = 0.00001
    test_list.append(dynbeam2d)

    # FSI, 2d
    fsi2d           = TestCase('fsi2d')
    fsi2d.cfg_dir   = "fea_fsi/WallChannel_2d"
    fsi2d.cfg_file  = "configFSI_2D.cfg"
    fsi2d.test_iter = 4
    fsi2d.test_vals = [2.000000, 0.500000, -7.777910, -1.139830] #last 4 columns
    fsi2d.su2_exec  = "parallel_computation_fsi.py -f"
    fsi2d.timeout   = 1600
    fsi2d.tol       = 0.00001
    test_list.append(fsi2d)

    ##########################
    ###   Python wrapper   ###
    ##########################
    
    # NACA0012 
    pywrapper_naca0012           = TestCase('pywrapper_naca0012')
    pywrapper_naca0012.cfg_dir   = "euler/naca0012"
    pywrapper_naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    pywrapper_naca0012.test_iter = 100
    pywrapper_naca0012.test_vals = [-6.237188, -5.641250, 0.334843, 0.022206] #last 4 columns
    pywrapper_naca0012.su2_exec  = "mpirun -np 2 SU2_CFD.py --parallel -f"
    pywrapper_naca0012.timeout   = 1600
    pywrapper_naca0012.tol       = 0.00001
    test_list.append(pywrapper_naca0012)

    # NACA0012 (SST, FUN3D results for finest grid: CL=1.0840, CD=0.01253)
    pywrapper_turb_naca0012_sst           = TestCase('pywrapper_turb_naca0012_sst')
    pywrapper_turb_naca0012_sst.cfg_dir   = "rans/naca0012"
    pywrapper_turb_naca0012_sst.cfg_file  = "turb_NACA0012_sst.cfg"
    pywrapper_turb_naca0012_sst.test_iter = 10
    pywrapper_turb_naca0012_sst.test_vals = [-15.039645, -7.220177, 1.059622, 0.019138] #last 4 columns
    pywrapper_turb_naca0012_sst.su2_exec  = "mpirun -np 2 SU2_CFD.py --parallel -f"
    pywrapper_turb_naca0012_sst.timeout   = 3200
    pywrapper_turb_naca0012_sst.tol       = 0.00001
    test_list.append(pywrapper_turb_naca0012_sst)

    # Square cylinder
    pywrapper_square_cylinder           = TestCase('pywrapper_square_cylinder')
    pywrapper_square_cylinder.cfg_dir   = "unsteady/square_cylinder"
    pywrapper_square_cylinder.cfg_file  = "turb_square.cfg"
    pywrapper_square_cylinder.test_iter = 3
    pywrapper_square_cylinder.test_vals = [-1.166422,0.076751,1.398549,2.197047] #last 4 columns
    pywrapper_square_cylinder.su2_exec  = "mpirun -np 2 SU2_CFD.py --parallel -f"
    pywrapper_square_cylinder.timeout   = 1600
    pywrapper_square_cylinder.tol       = 0.00001
    pywrapper_square_cylinder.unsteady  = True
    test_list.append(pywrapper_square_cylinder)

    # Aeroelastic
    pywrapper_aeroelastic         = TestCase('pywrapper_aeroelastic')
    pywrapper_aeroelastic.cfg_dir   = "aeroelastic"
    pywrapper_aeroelastic.cfg_file  = "aeroelastic_NACA64A010.cfg"
    pywrapper_aeroelastic.test_iter = 2
    pywrapper_aeroelastic.test_vals = [0.077169, 0.036452, -0.001685, -0.000113] #last 4 columns
    pywrapper_aeroelastic.su2_exec  = "mpirun -np 2 SU2_CFD.py --parallel -f"
    pywrapper_aeroelastic.timeout   = 1600
    pywrapper_aeroelastic.tol       = 0.000001
    pywrapper_aeroelastic.unsteady  = True
    test_list.append(pywrapper_aeroelastic)

    # FSI, 2d
    pywrapper_fsi2d           = TestCase('pywrapper_fsi2d')
    pywrapper_fsi2d.cfg_dir   = "fea_fsi/WallChannel_2d"
    pywrapper_fsi2d.cfg_file  = "configFSI_2D.cfg"
    pywrapper_fsi2d.test_iter = 4
    pywrapper_fsi2d.test_vals = [2.000000, 0.500000, -7.777910, -1.139830] #last 4 columns
    pywrapper_fsi2d.su2_exec  = "mpirun -np 2 SU2_CFD.py --nZone 2 --fsi True --parallel -f"
    pywrapper_fsi2d.timeout   = 1600
    pywrapper_fsi2d.tol       = 0.00001
    test_list.append(pywrapper_fsi2d)
    
    
    ######################################
    ### RUN TESTS                      ###
    ######################################
    
    pass_list = [ test.run_test() for test in test_list ]


    ######################################
    ### RUN SU2_DEF TESTS              ###
    ######################################
    
    # Inviscid NACA0012 (triangles)
    naca0012_def            = TestCase('naca0012_def')
    naca0012_def.cfg_dir   = "deformation/naca0012"
    naca0012_def.cfg_file  = "def_NACA0012.cfg"
    naca0012_def.test_iter = 250
    naca0012_def.test_vals = [5.44754e-15] #residual
    naca0012_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    naca0012_def.timeout   = 1600
    naca0012_def.tol       = 1e-15
    
    pass_list.append(naca0012_def.run_def())
    test_list.append(naca0012_def)

    # RAE2822 (mixed tris + quads)
    rae2822_def            = TestCase('rae2822_def')
    rae2822_def.cfg_dir   = "deformation/rae2822"
    rae2822_def.cfg_file  = "def_RAE2822.cfg"
    rae2822_def.test_iter = 150
    rae2822_def.test_vals = [1.47076e-15] #residual
    rae2822_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    rae2822_def.timeout   = 1600
    rae2822_def.tol       = 1e-16
    
    pass_list.append(rae2822_def.run_def())
    test_list.append(rae2822_def)
    
    # Turb NACA4412 (quads, wall distance)
    naca4412_def            = TestCase('naca4412_def')
    naca4412_def.cfg_dir   = "deformation/naca4412"
    naca4412_def.cfg_file  = "def_NACA4412.cfg"
    naca4412_def.test_iter = 300
    naca4412_def.test_vals = [4.46129e-15] #residual
    naca4412_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    naca4412_def.timeout   = 1600
    naca4412_def.tol       = 1e-15
    
    pass_list.append(naca4412_def.run_def())
    test_list.append(naca4412_def)
    
    # Brick of tets (inverse volume)
    brick_tets_def            = TestCase('brick_tets_def')
    brick_tets_def.cfg_dir   = "deformation/brick_tets"
    brick_tets_def.cfg_file  = "def_brick_tets.cfg"
    brick_tets_def.test_iter = 1000
    brick_tets_def.test_vals = [9.35558e-16] #residual
    brick_tets_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    brick_tets_def.timeout   = 1600
    brick_tets_def.tol       = 1e-15
    
    pass_list.append(brick_tets_def.run_def())
    test_list.append(brick_tets_def)
    
    # Brick of isotropic hexas (inverse volume)
    brick_hex_def           = TestCase('brick_hex_def')
    brick_hex_def.cfg_dir   = "deformation/brick_hex"
    brick_hex_def.cfg_file  = "def_brick_hex.cfg"
    brick_hex_def.test_iter = 1000
    brick_hex_def.test_vals = [1.46423e-15] #residual
    brick_hex_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    brick_hex_def.timeout   = 1600
    brick_hex_def.tol       = 1e-15
    
    pass_list.append(brick_hex_def.run_def())
    test_list.append(brick_hex_def)
    
    # Brick with a pyramid layer (inverse volume)
    brick_pyra_def           = TestCase('brick_pyra_def')
    brick_pyra_def.cfg_dir   = "deformation/brick_pyra"
    brick_pyra_def.cfg_file  = "def_brick_pyra.cfg"
    brick_pyra_def.test_iter = 100
    brick_pyra_def.test_vals = [5.97202e-15] #residual
    brick_pyra_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    brick_pyra_def.timeout   = 1600
    brick_pyra_def.tol       = 1e-15
    
    pass_list.append(brick_pyra_def.run_def())
    test_list.append(brick_pyra_def)
    
    # Brick of isotropic prisms (inverse volume)
    brick_prism_def           = TestCase('brick_prism_def')
    brick_prism_def.cfg_dir   = "deformation/brick_prism"
    brick_prism_def.cfg_file  = "def_brick_prism.cfg"
    brick_prism_def.test_iter = 100
    brick_prism_def.test_vals = [2.80867e-14] #residual
    brick_prism_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    brick_prism_def.timeout   = 1600
    brick_prism_def.tol       = 1e-15
    
    pass_list.append(brick_prism_def.run_def())
    test_list.append(brick_prism_def)
    
    # Brick of prisms with high aspect ratio cells near the wall (wall distance)
    brick_prism_rans_def           = TestCase('brick_prism_rans_def')
    brick_prism_rans_def.cfg_dir   = "deformation/brick_prism_rans"
    brick_prism_rans_def.cfg_file  = "def_brick_prism_rans.cfg"
    brick_prism_rans_def.test_iter = 50
    brick_prism_rans_def.test_vals = [3.5265e-15] #residual
    brick_prism_rans_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    brick_prism_rans_def.timeout   = 1600
    brick_prism_rans_def.tol       = 1e-15
    
    pass_list.append(brick_prism_rans_def.run_def())
    test_list.append(brick_prism_rans_def)
    
    # Brick of hexas with high aspect ratio cells near the wall (inverse volume)
    brick_hex_rans_def           = TestCase('brick_hex_rans_def')
    brick_hex_rans_def.cfg_dir   = "deformation/brick_hex_rans"
    brick_hex_rans_def.cfg_file  = "def_brick_hex_rans.cfg"
    brick_hex_rans_def.test_iter = 600
    brick_hex_rans_def.test_vals = [2.75292e-14] #residual
    brick_hex_rans_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    brick_hex_rans_def.timeout   = 1600
    brick_hex_rans_def.tol       = 1e-16
    
    pass_list.append(brick_hex_rans_def.run_def())
    test_list.append(brick_hex_rans_def)

    # Cylindrical FFD test
    cylinder_ffd_def           = TestCase('cylinder_ffd_def')
    cylinder_ffd_def.cfg_dir   = "deformation/cylindrical_ffd"
    cylinder_ffd_def.cfg_file  = "def_cylindrical.cfg"
    cylinder_ffd_def.test_iter = 50
    cylinder_ffd_def.test_vals = [2.31204e-10] #residual
    cylinder_ffd_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    cylinder_ffd_def.timeout   = 1600
    cylinder_ffd_def.tol       = 1e-16

    pass_list.append(cylinder_ffd_def.run_def())
    test_list.append(cylinder_ffd_def)

    # Spherical FFD test
    sphere_ffd_def           = TestCase('sphere_ffd_def')
    sphere_ffd_def.cfg_dir   = "deformation/spherical_ffd"
    sphere_ffd_def.cfg_file  = "def_spherical.cfg"
    sphere_ffd_def.test_iter = 50
    sphere_ffd_def.test_vals = [2.0062e-10] #residual
    sphere_ffd_def.su2_exec  = "mpirun -n 2 SU2_DEF"
    sphere_ffd_def.timeout   = 1600
    sphere_ffd_def.tol       = 1e-16

    pass_list.append(sphere_ffd_def.run_def())
    test_list.append(sphere_ffd_def)

    # Spherical FFD test using BSplines
    sphere_ffd_def_bspline           = TestCase('sphere_ffd_def_bspline')
    sphere_ffd_def_bspline.cfg_dir   = "deformation/spherical_ffd"
    sphere_ffd_def_bspline.cfg_file  = "def_spherical_bspline.cfg"
    sphere_ffd_def_bspline.test_iter = 50
    sphere_ffd_def_bspline.test_vals = [1.20429e-10] #residual
    sphere_ffd_def_bspline.su2_exec  = "mpirun -n 2 SU2_DEF"
    sphere_ffd_def_bspline.timeout   = 1600
    sphere_ffd_def_bspline.tol       = 1e-16

    pass_list.append(sphere_ffd_def_bspline.run_def())
    test_list.append(sphere_ffd_def_bspline)


    # Tests summary
    print '=================================================================='
    print 'Summary of the parallel tests'
    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)
Esempio n. 11
0
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.606839, -9.035212, -0.000000, 0.005688] #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.724711, -4.052467, -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    = [-0.774805, -0.801209, 3.1979e+02, 0.0000e+00] #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 = [-1.751962, 0.485751, 0.182121, -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 = [-1.654903, -0.491485, 0.109157, 0.000011] #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 = [-3.633197, -2.544956, 0.000000, 0.000000] #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 = [-2.374306, -2.371564, 0.000000, 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 = [-3.845979, -1.031094, 0.000000, 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.845759, -2.416668, 0.000000, 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.746904, -1.544886, -0.008345, 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.698165, -1.607052, -2.2500e-03, 2.7211e-05] #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)

    ###################################
    ### 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 = 9
    discadj_fea.test_vals = [-6.282767, -6.361594, -3.6413e-04, -8.7087e+00] #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 = [3.176483, 1.144873, -1040.512028, -3277.663739] #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 FSI Adjoint         ###
    ###################################
   
    # Structural model
    discadj_fsi           = TestCase('discadj_fsi')
    discadj_fsi.cfg_dir   = "disc_adj_fsi"
    discadj_fsi.cfg_file  = "configAD_fsi.cfg" 
    discadj_fsi.test_iter = 3000
    discadj_fsi.test_vals = [0.958848,-0.157183,0.658415,1.302076] #last 4 columns
    discadj_fsi.su2_exec  = "SU2_CFD_AD"
    discadj_fsi.timeout   = 1600
    discadj_fsi.tol       = 0.00001
    test_list.append(discadj_fsi)      

    ######################################
    ### 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"
    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"
    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"
    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"
    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)

    # 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)
Esempio n. 12
0
def main():
    '''This program runs SU2 and ensures that the output matches specified values. 
       This will be used to do nightly checks to make sure nothing is broken. '''

    workdir = os.getcwd()

    # environment variables for SU2
    os.environ[
        'TEST_HOME'] = '/home/ale11/.cruise/projects/serial_regression/work'
    os.environ[
        'SU2_HOME'] = '/home/ale11/.cruise/projects/serial_regression/work/SU2'
    os.environ[
        'SU2_RUN'] = '/home/ale11/.cruise/projects/serial_regression/work/SU2/bin'
    os.environ['PATH'] = os.environ['PATH'] + ':' + os.environ['SU2_RUN']

    # sync Test Cases repo
    os.chdir(os.environ['TEST_HOME'])
    os.system('git fetch')
    os.system('git checkout develop')
    os.system('git pull origin develop')

    # sync SU2 repo
    os.chdir(os.environ['SU2_HOME'])
    os.system('git fetch')
    os.system('git checkout develop')
    os.system('git pull origin develop')

    # Build SU2_CFD in serial using autoconf
    os.system('./configure --prefix=$SU2_HOME CXXFLAGS="-O3"')
    os.system('make clean')
    os.system('make install')

    os.chdir(os.environ['SU2_RUN'])
    if not os.path.exists("./SU2_CFD"):
        print 'Could not build SU2_CFD'
        sys.exit(1)

    os.chdir(workdir)

    test_list = []

    ##########################
    ### Compressible Euler ###
    ##########################

    # Channel
    channel = TestCase('channel')
    channel.cfg_dir = "euler/channel"
    channel.cfg_file = "inv_channel_RK.cfg"
    channel.test_iter = 100
    channel.test_vals = [-3.110240, 2.263506, 0.008686,
                         0.029098]  #last 4 columns
    channel.su2_exec = "SU2_CFD"
    channel.timeout = 1600
    channel.tol = 0.00001
    test_list.append(channel)

    # NACA0012
    naca0012 = TestCase('naca0012')
    naca0012.cfg_dir = "euler/naca0012"
    naca0012.cfg_file = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.191618, -5.592802, 0.334809,
                          0.022197]  #last 4 columns
    naca0012.su2_exec = "SU2_CFD"
    naca0012.timeout = 1600
    naca0012.tol = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge
    wedge = TestCase('wedge')
    wedge.cfg_dir = "euler/wedge"
    wedge.cfg_file = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.711318, 3.913749, -0.252131,
                       0.044402]  #last 4 columns
    wedge.su2_exec = "SU2_CFD"
    wedge.timeout = 1600
    wedge.tol = 0.00001
    test_list.append(wedge)

    # ONERA M6 Wing
    oneram6 = TestCase('oneram6')
    oneram6.cfg_dir = "euler/oneram6"
    oneram6.cfg_file = "inv_ONERAM6_JST.cfg"
    oneram6.test_iter = 10
    oneram6.test_vals = [-4.704347, -4.159916, 0.271678,
                         0.018869]  #last 4 columns
    oneram6.su2_exec = "SU2_CFD"
    oneram6.timeout = 9600
    oneram6.tol = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate = TestCase('flatplate')
    flatplate.cfg_dir = "navierstokes/flatplate"
    flatplate.cfg_file = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.231916, 0.261866, -0.166832,
                           0.012717]  #last 4 columns
    flatplate.su2_exec = "SU2_CFD"
    flatplate.timeout = 1600
    flatplate.tol = 0.00001
    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.765426, -1.297422, 0.019496,
                          0.310082]  #last 4 columns
    cylinder.su2_exec = "SU2_CFD"
    cylinder.timeout = 1600
    cylinder.tol = 0.00001
    test_list.append(cylinder)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.442524, -5.441383, 0.884279,
                            0.024730]  #last 4 columns
    rae2822_sa.su2_exec = "SU2_CFD"
    rae2822_sa.timeout = 1600
    rae2822_sa.tol = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.185243, 4.018464, 0.886786,
                             0.024927]  #last 4 columns
    rae2822_sst.su2_exec = "SU2_CFD"
    rae2822_sst.timeout = 1600
    rae2822_sst.tol = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.069447, -7.354601, -0.187187,
                                0.010831]  #last 4 columns
    turb_flatplate.su2_exec = "SU2_CFD"
    turb_flatplate.timeout = 1600
    turb_flatplate.tol = 0.00001
    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.327509, -6.563372, 0.230438,
                              0.155815]  #last 4 columns
    turb_oneram6.su2_exec = "SU2_CFD"
    turb_oneram6.timeout = 3200
    turb_oneram6.tol = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012 (SA, FUN3D 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 = 20
    turb_naca0012_sa.test_vals = [-6.607227, -9.778334, 1.098508,
                                  0.012417]  #last 4 columns
    turb_naca0012_sa.su2_exec = "SU2_CFD"
    turb_naca0012_sa.timeout = 3200
    turb_naca0012_sa.tol = 0.00001
    test_list.append(turb_naca0012_sa)

    # NACA0012 (SST, FUN3D 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 = 20
    turb_naca0012_sst.test_vals = [-8.290782, -1.743121, 1.084189,
                                   0.012583]  #last 4 columns
    turb_naca0012_sst.su2_exec = "SU2_CFD"
    turb_naca0012_sst.timeout = 3200
    turb_naca0012_sst.tol = 0.00001
    test_list.append(turb_naca0012_sst)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.710052, -11.007500, -0.000001,
                                   0.210445]  #last 4 columns
    inc_turb_naca0012.su2_exec = "SU2_CFD"
    inc_turb_naca0012.timeout = 1600
    inc_turb_naca0012.tol = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012 = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-9.787555, -15.192503, 0.300920,
                                  0.536870]  #last 4 columns
    contadj_naca0012.su2_exec = "SU2_CFD"
    contadj_naca0012.timeout = 1600
    contadj_naca0012.tol = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6 = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 5
    contadj_oneram6.test_vals = [-6.009929, -6.251311, -0.106940,
                                 0.149230]  #last 4 columns
    contadj_oneram6.su2_exec = "SU2_CFD"
    contadj_oneram6.timeout = 1600
    contadj_oneram6.tol = 0.00001
    test_list.append(contadj_oneram6)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [
        -3.677184, -9.141850, -2.056700, 4.497000
    ]  #last 4 columns
    contadj_ns_cylinder.su2_exec = "SU2_CFD"
    contadj_ns_cylinder.timeout = 1600
    contadj_ns_cylinder.tol = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [
        -2.744551, -8.216469, 0.518810, 0.229160
    ]  #last 4 columns
    contadj_ns_naca0012_sub.su2_exec = "SU2_CFD"
    contadj_ns_naca0012_sub.timeout = 1600
    contadj_ns_naca0012_sub.tol = 0.00001
    test_list.append(contadj_ns_naca0012_sub)

    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [
        -1.041539, -6.578524, 1.772300, 0.620880
    ]  #last 4 columns
    contadj_ns_naca0012_trans.su2_exec = "SU2_CFD"
    contadj_ns_naca0012_trans.timeout = 1600
    contadj_ns_naca0012_trans.tol = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012 = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [
        -0.814757, -5.726517, -19.169000, -2.994100
    ]  #last 4 columns
    contadj_rans_naca0012.su2_exec = "SU2_CFD"
    contadj_rans_naca0012.timeout = 1600
    contadj_rans_naca0012.tol = 0.00001
    test_list.append(contadj_rans_naca0012)

    # Adjoint turbulent RAE2822
    contadj_rans_rae2822 = TestCase('contadj_rans_rae2822')
    contadj_rans_rae2822.cfg_dir = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [
        -5.377843, -10.882446, -0.212470, 0.269390
    ]  #last 4 columns
    contadj_rans_rae2822.su2_exec = "SU2_CFD"
    contadj_rans_rae2822.timeout = 1600
    contadj_rans_rae2822.tol = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012 = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 5
    contadj_incomp_NACA0012.test_vals = [
        -11.980272, -12.146779, 1.9399, 0.000000
    ]  #last 4 columns
    contadj_incomp_NACA0012.su2_exec = "SU2_CFD"
    contadj_incomp_NACA0012.timeout = 1600
    contadj_incomp_NACA0012.tol = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [
        -5.718622, -7.027366, -2.932100, 0.000000
    ]  #last 4 columns
    contadj_incomp_cylinder.su2_exec = "SU2_CFD"
    contadj_incomp_cylinder.timeout = 1600
    contadj_incomp_cylinder.tol = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################
    ramc = TestCase('ramc')
    ramc.cfg_dir = "tne2/ramc"
    ramc.cfg_file = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.643029, 2.849441, -4.443852,
                      0.000313]  #last 4 columns
    ramc.su2_exec = "SU2_CFD"
    ramc.timeout = 1600
    ramc.tol = 0.00001
    test_list.append(ramc)

    #    ######################################
    #    ### Spectral Method                ###
    #    ######################################
    #    spectral           = TestCase('spectral')
    #    spectral.cfg_dir   = "spectral_method"
    #    spectral.cfg_file  = "spectral.cfg"
    #    spectral.test_iter = 25
    #    spectral.test_vals = [-1.621870,3.852164,0.007465,0.084358]
    #    spectral.su2_exec  = "SU2_CFD"
    #    spectral.timeout   = 1600
    #    spectral.tol       = 0.00001
    #    test_list.append(spectral)

    ######################################
    ### 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.164470, 0.051972,
                        2.547034]  #last 4 columns
    cavity.su2_exec = "SU2_CFD"
    cavity.timeout = 1600
    cavity.tol = 0.00001
    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.709662, -2.274900, 1.418422,
                                   1.734206]  #last 4 columns
    spinning_cylinder.su2_exec = "SU2_CFD"
    spinning_cylinder.timeout = 1600
    spinning_cylinder.tol = 0.00001
    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.544603, 0.048578, 1.398951,
                                 2.196894]  #last 4 columns
    square_cylinder.su2_exec = "SU2_CFD"
    square_cylinder.timeout = 1600
    square_cylinder.tol = 0.00001
    test_list.append(square_cylinder)

    ######################################
    ### Real_Gas                       ###
    ######################################

    # ls89_sa
    ls89_sa = TestCase('ls89_sa')
    ls89_sa.cfg_dir = "nicf/LS89"
    ls89_sa.cfg_file = "turb_SA_PR.cfg"
    ls89_sa.test_iter = 100
    ls89_sa.test_vals = [-6.383111, -13.350395, 0.069071,
                         0.160893]  #last 4 columns
    ls89_sa.su2_exec = "SU2_CFD"
    ls89_sa.timeout = 1600
    ls89_sa.tol = 0.00001
    test_list.append(ls89_sa)

    #    # ls89_sst
    #    ls89_sst           = TestCase('ls89_sst')
    #    ls89_sst.cfg_dir   = "nicf/LS89"
    #    ls89_sst.cfg_file  = "turb_SST_PR.cfg"
    #    ls89_sst.test_iter = 100
    #    ls89_sst.test_vals =  [-8.548266, -1.449437, 0.067986, 0.151168] #last 4 columns
    #    ls89_sst.su2_exec  = "SU2_CFD"
    #    ls89_sst.timeout   = 1600
    #    ls89_sst.tol       = 0.00001
    #    test_list.append(ls89_sst)

    # 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 = [-1.448271, 4.749156, -0.000046,
                         0.000000]  #last 4 columns
    edge_VW.su2_exec = "SU2_CFD"
    edge_VW.timeout = 1600
    edge_VW.tol = 0.00001
    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 = [-1.998238, 4.172451, -0.000056,
                          0.000000]  #last 4 columns
    edge_PPR.su2_exec = "SU2_CFD"
    edge_PPR.timeout = 1600
    edge_PPR.tol = 0.00001
    test_list.append(edge_PPR)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [test.run_test() for test in test_list]

    if all(pass_list):
        sys.exit(0)
    else:
        sys.exit(1)
Esempio n. 13
0
def main():
    '''This program runs SU^2 and ensures that the output matches specified values. 
       This will be used to do nightly checks to make sure nothing is broken. '''

    workdir = os.getcwd()

    # environment variables for SU2
    os.environ['SU2_HOME'] = '/home/ale11/.cruise/projects/serial_regression/work/SU2'
    os.environ['SU2_RUN'] = '/home/ale11/.cruise/projects/serial_regression/work/SU2/bin'
    os.environ['PATH'] = os.environ['PATH'] + ':' + os.environ['SU2_RUN']

    # sync SU2 repo
    os.chdir( os.environ['SU2_HOME'] )
    os.system('git pull')

    # Build SU2_CFD in serial using autoconf
    os.system('./configure --prefix=$SU2_HOME CXXFLAGS="-O3"')
    os.system('make clean')
    os.system('make install')

    os.chdir(os.environ['SU2_RUN'])
    if not os.path.exists("./SU2_CFD"):
        print 'Could not build SU2_CFD'
        sys.exit(1)

    os.chdir(workdir)  


    test_list = []

    ##########################
    ### Compressible Euler ###
    ##########################

    # Channel
    channel           = TestCase('channel')
    channel.cfg_dir   = "euler/channel"
    channel.cfg_file  = "inv_channel_RK.cfg"
    channel.test_iter = 100
    channel.test_vals = [-2.991375,2.388702,-0.042177,0.068520]
    channel.su2_exec  = "SU2_CFD"
    channel.timeout   = 1600
    channel.tol       = 0.00001
    test_list.append(channel)

    # NACA0012 
    naca0012           = TestCase('naca0012')
    naca0012.cfg_dir   = "euler/naca0012"
    naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-5.932646,-5.394328,0.335205,0.022232]
    naca0012.su2_exec  = "SU2_CFD"
    naca0012.timeout   = 1600
    naca0012.tol       = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge 
    wedge           = TestCase('wedge')
    wedge.cfg_dir   = "euler/wedge"
    wedge.cfg_file  = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.838548,3.781222,-0.252690,0.044489]
    wedge.su2_exec  = "SU2_CFD"
    wedge.timeout   = 1600
    wedge.tol       = 0.00001
    test_list.append(wedge)

    # ONERA M6 Wing
    oneram6           = TestCase('oneram6')
    oneram6.cfg_dir   = "euler/oneram6"
    oneram6.cfg_file  = "inv_ONERAM6_JST.cfg"
    oneram6.test_iter = 10
    oneram6.test_vals = [-4.744759,-4.182702,0.281122,0.018310]
    oneram6.su2_exec  = "SU2_CFD"
    oneram6.timeout   = 9600
    oneram6.tol       = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate           = TestCase('flatplate')
    flatplate.cfg_dir   = "navierstokes/flatplate"
    flatplate.cfg_file  = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.230001,0.252184,-0.163706,0.013547]
    flatplate.su2_exec  = "SU2_CFD"
    flatplate.timeout   = 1600
    flatplate.tol       = 0.00001
    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.409812,-0.945306,0.088160,-5.192708]
    cylinder.su2_exec  = "SU2_CFD"
    cylinder.timeout   = 1600
    cylinder.tol       = 0.00001
    test_list.append(cylinder)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-2.729166,-5.506935,0.860798,0.023704] #last 4 columns
    rae2822_sa.su2_exec  = "SU2_CFD"
    rae2822_sa.timeout   = 1600
    rae2822_sa.tol       = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.151533,4.144621,0.861331,0.023855] #last 4 columns
    rae2822_sst.su2_exec  = "SU2_CFD"
    rae2822_sst.timeout   = 1600
    rae2822_sst.tol       = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.021253,-7.365210,-0.185394,0.015273] #last 4 columns
    turb_flatplate.su2_exec  = "SU2_CFD"
    turb_flatplate.timeout   = 1600
    turb_flatplate.tol       = 0.00001
    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.327517,-6.563378,0.230436,0.155816]#last 4 columns
    turb_oneram6.su2_exec  = "SU2_CFD"
    turb_oneram6.timeout   = 3200
    turb_oneram6.tol       = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012
    turb_naca0012           = TestCase('turb_naca0012')
    turb_naca0012.cfg_dir   = "rans/naca0012"
    turb_naca0012.cfg_file  = "turb_NACA0012.cfg"
    turb_naca0012.test_iter = 20
    turb_naca0012.test_vals = [-2.826334,-7.364207,-0.000025,0.803037] #last 4 columns
    turb_naca0012.su2_exec  = "SU2_CFD"
    turb_naca0012.timeout   = 3200
    turb_naca0012.tol       = 0.00001
    test_list.append(turb_naca0012)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.709986,-11.007545,0.000008,0.210347] #last 4 columns
    inc_turb_naca0012.su2_exec  = "SU2_CFD"
    inc_turb_naca0012.timeout   = 1600
    inc_turb_naca0012.tol       = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012           = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir   = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file  = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-12.214678,-16.000000,0.005483,0.536870] #last 4 columns
    contadj_naca0012.su2_exec  = "SU2_CFD"
    contadj_naca0012.timeout   = 1600
    contadj_naca0012.tol       = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6           = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir   = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file  = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 5
    contadj_oneram6.test_vals = [-6.370788,-6.545955,-0.000023,0.147730] #last 4 columns
    contadj_oneram6.su2_exec  = "SU2_CFD"
    contadj_oneram6.timeout   = 1600
    contadj_oneram6.tol       = 0.00001
    test_list.append(contadj_oneram6)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder           = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir   = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file  = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-0.597482,-6.063713,-0.032305,25.115000] #last 4 columns
    contadj_ns_cylinder.su2_exec  = "SU2_CFD"
    contadj_ns_cylinder.timeout   = 1600
    contadj_ns_cylinder.tol       = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub           = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir   = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [-4.234330,-9.705736,0.005161,0.398940 ] #last 4 columns
    contadj_ns_naca0012_sub.su2_exec  = "SU2_CFD"
    contadj_ns_naca0012_sub.timeout   = 1600
    contadj_ns_naca0012_sub.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_sub)
    
    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans           = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir   = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [-1.810435,-6.920519,0.014614,1.020100] #last 4 columns
    contadj_ns_naca0012_trans.su2_exec  = "SU2_CFD"
    contadj_ns_naca0012_trans.timeout   = 1600
    contadj_ns_naca0012_trans.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012           = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir   = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file  = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-4.351102,-8.919996,-1.275200,-2.541400] #last 4 columns
    contadj_rans_naca0012.su2_exec  = "SU2_CFD"
    contadj_rans_naca0012.timeout   = 1600
    contadj_rans_naca0012.tol       = 0.00001
    test_list.append(contadj_rans_naca0012)
    
    # Adjoint turbulent RAE2822
    contadj_rans_rae2822           = TestCase('contadj_rans_rae2822')
    contadj_rans_rae2822.cfg_dir   = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file  = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [-2.888858,-8.085710,4.545700,0.109650] #last 4 columns
    contadj_rans_rae2822.su2_exec  = "SU2_CFD"
    contadj_rans_rae2822.timeout   = 1600
    contadj_rans_rae2822.tol       = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012           = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir   = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 140
    contadj_incomp_NACA0012.test_vals = [-6.049647,-6.004696,0.010909,0.000000] #last 4 columns
    contadj_incomp_NACA0012.su2_exec  = "SU2_CFD"
    contadj_incomp_NACA0012.timeout   = 1600
    contadj_incomp_NACA0012.tol       = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder           = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-2.352353,-2.851967,-0.048345,0.000000] #last 4 columns
    contadj_incomp_cylinder.su2_exec  = "SU2_CFD"
    contadj_incomp_cylinder.timeout   = 1600
    contadj_incomp_cylinder.tol       = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################
    ramc           = TestCase('ramc')
    ramc.cfg_dir   = "tne2/ramc"
    ramc.cfg_file  = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.638119,2.854417,-4.439628,0.000188]
    ramc.su2_exec  = "SU2_CFD"
    ramc.timeout   = 1600
    ramc.tol       = 0.00001
    test_list.append(ramc)

#    ######################################
#    ### Spectral Method                ###
#    ######################################
#    spectral           = TestCase('spectral')
#    spectral.cfg_dir   = "spectral_method"
#    spectral.cfg_file  = "spectral.cfg"
#    spectral.test_iter = 25
#    spectral.test_vals = [-1.621870,3.852164,0.007465,0.084358]
#    spectral.su2_exec  = "SU2_CFD"
#    spectral.timeout   = 1600
#    spectral.tol       = 0.00001
#    test_list.append(spectral)

    ######################################
    ### 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.545249,-0.083220,-0.007449,-14.207933]
    cavity.su2_exec  = "SU2_CFD"
    cavity.timeout   = 1600
    cavity.tol       = 0.00001
    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 = [-6.743171,-1.295111,6.846763,0.823335]
    spinning_cylinder.su2_exec  = "SU2_CFD"
    spinning_cylinder.timeout   = 1600
    spinning_cylinder.tol       = 0.00001
    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.542160,0.048661,1.398952,2.196894 ]
    square_cylinder.su2_exec  = "SU2_CFD"
    square_cylinder.timeout   = 1600
    square_cylinder.tol       = 0.00001
    test_list.append(square_cylinder)



    ######################################
    ### Real_Gas                       ###
    ######################################

    # Supersonic_turbine
    supersonic_turbine           = TestCase('supersonic_turbine')
    supersonic_turbine.cfg_dir   = "real_gas/euler/supersonic_turbine"
    supersonic_turbine.cfg_file  = "supersonic.cfg"
    supersonic_turbine.test_iter = 19
    supersonic_turbine.test_vals = [-0.249215,5.701822,0.000000,0.000000 ]
    supersonic_turbine.su2_exec  = "SU2_CFD"
    supersonic_turbine.timeout   = 1600
    supersonic_turbine.tol       = 0.00001
    test_list.append(square_cylinder)



    # Supersonic_turbine
    supersonic_nozzle           = TestCase('supersonic_nozzle')
    supersonic_nozzle.cfg_dir   = "real_gas/euler/2Dnozzle"
    supersonic_nozzle.cfg_file  = "nozzle_MDM_shockwave.cfg"
    supersonic_nozzle.test_iter = 559
    supersonic_nozzle.test_vals = [-0.371019,4.755257,0.000000,0.000000 ]
    supersonic_nozzle.su2_exec  = "SU2_CFD"
    supersonic_nozzle.timeout   = 1600
    supersonic_nozzle.tol       = 0.00001
    test_list.append(square_cylinder)



    ######################################
    ### RUN TESTS                      ###
    ######################################  

    pass_list = [ test.run_test() for test in test_list ]

    if all(pass_list):
        sys.exit(0)
    else:
        sys.exit(1)
Esempio n. 14
0
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 = 100
    channel.test_vals = [-3.110240, 2.263506, 0.008686, 0.029098] #last 4 columns
    channel.su2_exec  = "SU2_CFD"
    channel.timeout   = 1600
    channel.tol       = 0.00001
    test_list.append(channel)

    # NACA0012 
    naca0012           = TestCase('naca0012')
    naca0012.cfg_dir   = "euler/naca0012"
    naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.191618, -5.592802, 0.334809, 0.022197] #last 4 columns
    naca0012.su2_exec  = "SU2_CFD"
    naca0012.timeout   = 1600
    naca0012.tol       = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge 
    wedge           = TestCase('wedge')
    wedge.cfg_dir   = "euler/wedge"
    wedge.cfg_file  = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.711318, 3.913749, -0.252131, 0.044402] #last 4 columns
    wedge.su2_exec  = "SU2_CFD"
    wedge.timeout   = 1600
    wedge.tol       = 0.00001
    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 = [-13.393130, -12.928941, 0.282557, 0.012706] #last 4 columns
    oneram6.su2_exec  = "SU2_CFD"
    oneram6.timeout   = 9600
    oneram6.tol       = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate           = TestCase('flatplate')
    flatplate.cfg_dir   = "navierstokes/flatplate"
    flatplate.cfg_file  = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.231916, 0.261866, -0.166832, 0.012717] #last 4 columns
    flatplate.su2_exec  = "SU2_CFD"
    flatplate.timeout   = 1600
    flatplate.tol       = 0.00001
    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.765426, -1.297422, 0.019496, 0.310082] #last 4 columns
    cylinder.su2_exec  = "SU2_CFD"
    cylinder.timeout   = 1600
    cylinder.tol       = 0.00001
    test_list.append(cylinder)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.442524, -5.441383, 0.884279, 0.024730] #last 4 columns
    rae2822_sa.su2_exec  = "SU2_CFD"
    rae2822_sa.timeout   = 1600
    rae2822_sa.tol       = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.185243, 4.018464, 0.886786, 0.024927] #last 4 columns
    rae2822_sst.su2_exec  = "SU2_CFD"
    rae2822_sst.timeout   = 1600
    rae2822_sst.tol       = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.069447, -7.354601, -0.187187, 0.010831] #last 4 columns
    turb_flatplate.su2_exec  = "SU2_CFD"
    turb_flatplate.timeout   = 1600
    turb_flatplate.tol       = 0.00001
    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.327509, -6.563372, 0.230438, 0.155815]#last 4 columns
    turb_oneram6.su2_exec  = "SU2_CFD"
    turb_oneram6.timeout   = 3200
    turb_oneram6.tol       = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012 (SA, FUN3D results for finest grid: 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 = [-12.000763, -9.145363, 1.070528, 0.019417] #last 4 columns
    turb_naca0012_sa.su2_exec  = "SU2_CFD"
    turb_naca0012_sa.timeout   = 3200
    turb_naca0012_sa.tol       = 0.00001
    test_list.append(turb_naca0012_sa)
    
    # NACA0012 (SST, FUN3D results for finest grid: 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 = [-15.039675, -7.219913, 1.059622, 0.019138] #last 4 columns
    turb_naca0012_sst.su2_exec  = "SU2_CFD"
    turb_naca0012_sst.timeout   = 3200
    turb_naca0012_sst.tol       = 0.00001
    test_list.append(turb_naca0012_sst)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.710052, -11.007500, -0.000001, 0.210445] #last 4 columns
    inc_turb_naca0012.su2_exec  = "SU2_CFD"
    inc_turb_naca0012.timeout   = 1600
    inc_turb_naca0012.tol       = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012           = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir   = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file  = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-9.787554, -15.192510, 0.300920, 0.536870] #last 4 columns
    contadj_naca0012.su2_exec  = "SU2_CFD"
    contadj_naca0012.timeout   = 1600
    contadj_naca0012.tol       = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6           = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir   = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file  = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 10
    contadj_oneram6.test_vals = [-12.133352, -12.707213, 6.8590e-01, 1.4092e-01] #last 4 columns
    contadj_oneram6.su2_exec  = "SU2_CFD"
    contadj_oneram6.timeout   = 1600
    contadj_oneram6.tol       = 0.00001
    test_list.append(contadj_oneram6)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder           = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir   = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file  = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-3.677184, -9.141850, -2.056700, 4.497000] #last 4 columns
    contadj_ns_cylinder.su2_exec  = "SU2_CFD"
    contadj_ns_cylinder.timeout   = 1600
    contadj_ns_cylinder.tol       = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub           = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir   = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [-2.744551, -8.216469, 0.518810, 0.229160] #last 4 columns
    contadj_ns_naca0012_sub.su2_exec  = "SU2_CFD"
    contadj_ns_naca0012_sub.timeout   = 1600
    contadj_ns_naca0012_sub.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_sub)
    
    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans           = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir   = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [-1.041539, -6.578524, 1.772300, 0.620880] #last 4 columns
    contadj_ns_naca0012_trans.su2_exec  = "SU2_CFD"
    contadj_ns_naca0012_trans.timeout   = 1600
    contadj_ns_naca0012_trans.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012           = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir   = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file  = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-0.814757, -5.726517, -19.169000, -2.994100] #last 4 columns
    contadj_rans_naca0012.su2_exec  = "SU2_CFD"
    contadj_rans_naca0012.timeout   = 1600
    contadj_rans_naca0012.tol       = 0.00001
    test_list.append(contadj_rans_naca0012)
    
    # Adjoint turbulent RAE2822
    contadj_rans_rae2822           = TestCase('contadj_rans_rae2822')
    contadj_rans_rae2822.cfg_dir   = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file  = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [-5.377843, -10.882446, -0.212470, 0.269390] #last 4 columns
    contadj_rans_rae2822.su2_exec  = "SU2_CFD"
    contadj_rans_rae2822.timeout   = 1600
    contadj_rans_rae2822.tol       = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012           = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir   = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 5
    contadj_incomp_NACA0012.test_vals = [-11.980272, -12.146779, 1.9399, 0.000000] #last 4 columns
    contadj_incomp_NACA0012.su2_exec  = "SU2_CFD"
    contadj_incomp_NACA0012.timeout   = 1600
    contadj_incomp_NACA0012.tol       = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder           = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-5.718622, -7.027366, -2.932100, 0.000000] #last 4 columns
    contadj_incomp_cylinder.su2_exec  = "SU2_CFD"
    contadj_incomp_cylinder.timeout   = 1600
    contadj_incomp_cylinder.tol       = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################
    ramc           = TestCase('ramc')
    ramc.cfg_dir   = "tne2/ramc"
    ramc.cfg_file  = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.643029, 2.849441, -4.443852, 0.000313] #last 4 columns
    ramc.su2_exec  = "SU2_CFD"
    ramc.timeout   = 1600
    ramc.tol       = 0.00001
    test_list.append(ramc)

#    ######################################
#    ### Spectral Method                ###
#    ######################################
#    spectral           = TestCase('spectral')
#    spectral.cfg_dir   = "spectral_method"
#    spectral.cfg_file  = "spectral.cfg"
#    spectral.test_iter = 25
#    spectral.test_vals = [-1.621870,3.852164,0.007465,0.084358]
#    spectral.su2_exec  = "SU2_CFD"
#    spectral.timeout   = 1600
#    spectral.tol       = 0.00001
#    test_list.append(spectral)

    ######################################
    ### 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.164470, 0.051972, 2.547034] #last 4 columns
    cavity.su2_exec  = "SU2_CFD"
    cavity.timeout   = 1600
    cavity.tol       = 0.00001
    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.709662, -2.274900, 1.418422, 1.734206] #last 4 columns
    spinning_cylinder.su2_exec  = "SU2_CFD"
    spinning_cylinder.timeout   = 1600
    spinning_cylinder.tol       = 0.00001
    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.544603, 0.048578, 1.398951, 2.196894] #last 4 columns
    square_cylinder.su2_exec  = "SU2_CFD"
    square_cylinder.timeout   = 1600
    square_cylinder.tol       = 0.00001
    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.977531, 3.481790, -0.006222, -0.001342] #last 4 columns
    sine_gust.su2_exec  = "SU2_CFD"
    sine_gust.timeout   = 1600
    sine_gust.tol       = 0.00001
    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.077106, 0.036449, -1.684915e-03, -1.131746e-04] #last 4 columns
    aeroelastic.su2_exec  = "SU2_CFD"
    aeroelastic.timeout   = 1600
    aeroelastic.tol       = 0.000001
    aeroelastic.unsteady  = True
    test_list.append(aeroelastic) 

    ######################################
    ### NICFD                          ###
    ######################################

    # ls89_sa
    ls89_sa           = TestCase('ls89_sa')
    ls89_sa.cfg_dir   = "nicf/LS89"
    ls89_sa.cfg_file  = "turb_SA_PR.cfg"
    ls89_sa.test_iter = 100
    ls89_sa.test_vals = [-6.383146, -13.350551, 0.069079, 0.160886] #last 4 columns
    ls89_sa.su2_exec  = "SU2_CFD"
    ls89_sa.timeout   = 1600
    ls89_sa.tol       = 0.00001
    test_list.append(ls89_sa)

#    # ls89_sst
#    ls89_sst           = TestCase('ls89_sst')
#    ls89_sst.cfg_dir   = "nicf/LS89"
#    ls89_sst.cfg_file  = "turb_SST_PR.cfg"
#    ls89_sst.test_iter = 100
#    ls89_sst.test_vals =  [-8.548266, -1.449437, 0.067986, 0.151168] #last 4 columns
#    ls89_sst.su2_exec  = "SU2_CFD"
#    ls89_sst.timeout   = 1600
#    ls89_sst.tol       = 0.00001
#    test_list.append(ls89_sst)

    # 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 = [-1.448387, 4.749040, -0.000046, 0.000000] #last 4 columns
    edge_VW.su2_exec  = "SU2_CFD"
    edge_VW.timeout   = 1600
    edge_VW.tol       = 0.00001
    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 = [-1.998340, 4.172354, -0.000056, 0.000000] #last 4 columns
    edge_PPR.su2_exec  = "SU2_CFD"
    edge_PPR.timeout   = 1600
    edge_PPR.tol       = 0.00001
    test_list.append(edge_PPR)

    ######################################
    ### RUN TESTS                      ###
    ######################################  

    pass_list = [ test.run_test() for test in test_list ]
    
    # Tests summary
    print '=================================================================='
    print 'Summary of the serial tests'
    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)
Esempio n. 15
0
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.606841, -9.035214, -0.000000, 0.005688] #last 4 columns
    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.720476, -4.039256, 0.000000, 0.000000] #last 4 columns
    discadj_cylinder3D.su2_exec  = "parallel_computation.py -f"
    discadj_cylinder3D.timeout   = 1600
    discadj_cylinder3D.tol       = 0.00001
    test_list.append(discadj_cylinder3D)

    ####################################
    ### 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 = [-1.751965, 0.485796, 0.182895, -0.000018] #last 4 columns
    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 = [-1.654193, -0.499281, 0.145545, -0.000018] #last 4 columns
    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   = "cont_adj_incomp_euler/naca0012"
    discadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012_disc.cfg"
    discadj_incomp_NACA0012.test_iter = 20
    discadj_incomp_NACA0012.test_vals = [-2.917789, -2.714752, 0.000000, 0.000000] #last 4 columns
    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
    discadj_incomp_cylinder           = TestCase('discadj_incomp_cylinder')
    discadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    discadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder_disc.cfg"
    discadj_incomp_cylinder.test_iter = 20
    discadj_incomp_cylinder.test_vals = [-2.727423, -2.272530, 0.000000, 0.000000] #last 4 columns
    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
    discadj_incomp_turb_NACA0012           = TestCase('discadj_incomp_turb_NACA0012')
    discadj_incomp_turb_NACA0012.cfg_dir   = "incomp_rans/naca0012"
    discadj_incomp_turb_NACA0012.cfg_file  = "naca0012_disc.cfg"
    discadj_incomp_turb_NACA0012.test_iter = 100
    discadj_incomp_turb_NACA0012.test_vals = [-3.645810, -1.625922, 0.000000, 0.000000] #last 4 columns
    discadj_incomp_turb_NACA0012.su2_exec  = "parallel_computation.py -f"
    discadj_incomp_turb_NACA0012.timeout   = 1600
    discadj_incomp_turb_NACA0012.tol       = 0.00001
    test_list.append(discadj_incomp_turb_NACA0012)

    #######################################################
    ### 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.746900, -1.544893, -8.3447e-03, 1.3808e-05] #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)
    
    #######################################################
    ### 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 = [-2.001081, -2.115303, -0.450996, -15.778175] #last 4 columns
    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          ###
    ###################################
   
    # Turbulent Cylinder
    discadj_fea           = TestCase('discadj_fea')
    discadj_fea.cfg_dir   = "disc_adj_fea"
    discadj_fea.cfg_file  = "configAD_fem.cfg" 
    discadj_fea.test_iter = 9
    discadj_fea.test_vals = [-4.872191, -5.131614, -3.6413e-04, -8.7087e+00] #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) 
    
    ###################################
    ### Coupled FSI Adjoint         ###
    ###################################
   
    # Structural model
    discadj_fsi           = TestCase('discadj_fsi')
    discadj_fsi.cfg_dir   = "disc_adj_fsi"
    discadj_fsi.cfg_file  = "configAD_fsi.cfg" 
    discadj_fsi.test_iter = 3000
    discadj_fsi.test_vals = [0.958848,-0.157183,0.658415,1.302076] #last 4 columns
    discadj_fsi.su2_exec  = "parallel_computation.py -f"
    discadj_fsi.timeout   = 1600
    discadj_fsi.tol       = 0.00001
    test_list.append(discadj_fsi)

    ######################################
    ### 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 = []

    #####################################
    ### 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 = "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.755976, -3.858734, 0.000000,
                                    0.000000]  #last 4 columns
    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 = [2.190119, 1.635847, 47258.0,
                                 0.0]  #last 4 columns
    discadj_arina2k.su2_exec = "parallel_computation.py -f"
    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.230573, 0.696562, 0.181780, -0.000018
    ]  #last 4 columns
    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.221040, -0.491759, 0.557480, 0.000027
    ]  #last 4 columns
    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.0, -4.107713, -2.670916,
                                         0.0]  #last 4 columns
    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.188743, -2.068616, 0.000000
    ]  #last 4 columns
    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.846036, -1.031071, 0.000000
    ]  #last 4 columns
    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.845624, -2.413044, -8.419978, 0.000000
    ]  #last 4 columns
    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.202376, -0.000030, 2.688758, -0.000032, 1.0679e+00
    ]  #last 5 columns
    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.225570, -1.643131, -0.007597, 0.000013
    ]  #last 4 columns
    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.942123,
                                      -1.998834]  #last 4 columns
    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.849526, -3.238467, -3.6413e-04,
                             -8.7087]  #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.281765, 0.706808, -0.743990,
                              -6.866000]  #last 4 columns
    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, -1.563852, -3.075167, 4.3991e-04,
                             -1.0631]  #last 5 columns
    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.320965, -2.4380e-13]  #last 2 columns
    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.381654, -3.099873, -3.099844,
                             -3.099841]  #last 4 columns
    discadj_cht.su2_exec = "mpirun -n 2 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]

    ##################################################
    ### 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.196883
    ]  #last 4 columns
    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)

    # 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)
Esempio n. 17
0
def main():
    '''This program runs SU^2 and ensures that the output matches specified values. 
       This will be used to do nightly checks to make sure nothing is broken. '''

    workdir = os.getcwd()

    # environment variables for SU2
    os.environ['SU2_HOME'] = '/home/ale11/.cruise/projects/serial_regression/work/SU2'
    os.environ['SU2_RUN'] = '/home/ale11/.cruise/projects/serial_regression/work/SU2/bin'
    os.environ['PATH'] = os.environ['PATH'] + ':' + os.environ['SU2_RUN']

    # sync SU2 repo
    os.chdir( os.environ['SU2_HOME'] )
    os.system('git pull')

    # Build SU2_CFD in serial using autoconf
    os.system('./configure --prefix=$SU2_HOME CXXFLAGS="-O3"')
    os.system('make clean')
    os.system('make install')

    os.chdir(os.environ['SU2_RUN'])
    if not os.path.exists("./SU2_CFD"):
        print 'Could not build SU2_CFD'
        sys.exit(1)

    os.chdir(workdir)  


    test_list = []

    ##########################
    ### Compressible Euler ###
    ##########################

    # Channel
    channel           = TestCase('channel')
    channel.cfg_dir   = "euler/channel"
    channel.cfg_file  = "inv_channel_RK.cfg"
    channel.test_iter = 100
    channel.test_vals = [-2.489214,2.821231,0.008730,0.053947]
    channel.su2_exec  = "SU2_CFD"
    channel.timeout   = 1600
    channel.tol       = 0.00001
    test_list.append(channel)

    # NACA0012 
    naca0012           = TestCase('naca0012')
    naca0012.cfg_dir   = "euler/naca0012"
    naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.203359,-5.582393,0.334818,0.022197]
    naca0012.su2_exec  = "SU2_CFD"
    naca0012.timeout   = 1600
    naca0012.tol       = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge 
    wedge           = TestCase('wedge')
    wedge.cfg_dir   = "euler/wedge"
    wedge.cfg_file  = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-2.703316,3.192215,-0.252410,0.044446]
    wedge.su2_exec  = "SU2_CFD"
    wedge.timeout   = 1600
    wedge.tol       = 0.00001
    test_list.append(wedge)

    # ONERA M6 Wing
    oneram6           = TestCase('oneram6')
    oneram6.cfg_dir   = "euler/oneram6"
    oneram6.cfg_file  = "inv_ONERAM6_JST.cfg"
    oneram6.test_iter = 10
    oneram6.test_vals = [-4.830417,-4.273125,0.290066,0.015809]
    oneram6.su2_exec  = "SU2_CFD"
    oneram6.timeout   = 9600
    oneram6.tol       = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate           = TestCase('flatplate')
    flatplate.cfg_dir   = "navierstokes/flatplate"
    flatplate.cfg_file  = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.227537,0.267007,-0.167233,0.012854]
    flatplate.su2_exec  = "SU2_CFD"
    flatplate.timeout   = 1600
    flatplate.tol       = 0.00001
    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.764866,-1.296840,-0.024986,0.974669]
    cylinder.su2_exec  = "SU2_CFD"
    cylinder.timeout   = 1600
    cylinder.tol       = 0.00001
    test_list.append(cylinder)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.542705,-5.430675,0.884353,0.024153] #last 4 columns
    rae2822_sa.su2_exec  = "SU2_CFD"
    rae2822_sa.timeout   = 1600
    rae2822_sa.tol       = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.214015,4.020029,0.884881,0.024141] #last 4 columns
    rae2822_sst.su2_exec  = "SU2_CFD"
    rae2822_sst.timeout   = 1600
    rae2822_sst.tol       = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.068405,-7.340795,-0.187223,0.010395] #last 4 columns
    turb_flatplate.su2_exec  = "SU2_CFD"
    turb_flatplate.timeout   = 1600
    turb_flatplate.tol       = 0.00001
    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.327517,-6.563378,0.230436,0.155816]#last 4 columns
    turb_oneram6.su2_exec  = "SU2_CFD"
    turb_oneram6.timeout   = 3200
    turb_oneram6.tol       = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012
    turb_naca0012           = TestCase('turb_naca0012')
    turb_naca0012.cfg_dir   = "rans/naca0012"
    turb_naca0012.cfg_file  = "turb_NACA0012.cfg"
    turb_naca0012.test_iter = 20
    turb_naca0012.test_vals = [-2.826334,-7.364207,-0.000025,0.803037] #last 4 columns
    turb_naca0012.su2_exec  = "SU2_CFD"
    turb_naca0012.timeout   = 3200
    turb_naca0012.tol       = 0.00001
    test_list.append(turb_naca0012)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.709986,-11.007545,0.000008,0.210347] #last 4 columns
    inc_turb_naca0012.su2_exec  = "SU2_CFD"
    inc_turb_naca0012.timeout   = 1600
    inc_turb_naca0012.tol       = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012           = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir   = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file  = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-12.206764,-16.000000,0.005483,0.536870] #last 4 columns
    contadj_naca0012.su2_exec  = "SU2_CFD"
    contadj_naca0012.timeout   = 1600
    contadj_naca0012.tol       = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6           = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir   = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file  = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 5
    contadj_oneram6.test_vals = [-6.353629,-6.525887,-0.000023,0.147720] #last 4 columns
    contadj_oneram6.su2_exec  = "SU2_CFD"
    contadj_oneram6.timeout   = 1600
    contadj_oneram6.tol       = 0.00001
    test_list.append(contadj_oneram6)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder           = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir   = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file  = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-0.599698,-6.065249,-0.032305,25.115000] #last 4 columns
    contadj_ns_cylinder.su2_exec  = "SU2_CFD"
    contadj_ns_cylinder.timeout   = 1600
    contadj_ns_cylinder.tol       = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub           = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir   = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [-4.234330,-9.705736,0.005161,0.398940 ] #last 4 columns
    contadj_ns_naca0012_sub.su2_exec  = "SU2_CFD"
    contadj_ns_naca0012_sub.timeout   = 1600
    contadj_ns_naca0012_sub.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_sub)
    
    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans           = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir   = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [-1.810435,-6.920519,0.014614,1.020100] #last 4 columns
    contadj_ns_naca0012_trans.su2_exec  = "SU2_CFD"
    contadj_ns_naca0012_trans.timeout   = 1600
    contadj_ns_naca0012_trans.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012           = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir   = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file  = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-4.351102,-8.919996,-1.275200,-2.541400] #last 4 columns
    contadj_rans_naca0012.su2_exec  = "SU2_CFD"
    contadj_rans_naca0012.timeout   = 1600
    contadj_rans_naca0012.tol       = 0.00001
    test_list.append(contadj_rans_naca0012)
    
    # Adjoint turbulent RAE2822
    contadj_rans_rae2822           = TestCase('contadj_rans_rae2822')
    contadj_rans_rae2822.cfg_dir   = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file  = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [-2.870304,-8.350308,4.5270e+00,3.5527e-01] #last 4 columns
    contadj_rans_rae2822.su2_exec  = "SU2_CFD"
    contadj_rans_rae2822.timeout   = 1600
    contadj_rans_rae2822.tol       = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012           = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir   = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 140
    contadj_incomp_NACA0012.test_vals = [-7.551025,-7.377690,0.010910,0.000000] #last 4 columns
    contadj_incomp_NACA0012.su2_exec  = "SU2_CFD"
    contadj_incomp_NACA0012.timeout   = 1600
    contadj_incomp_NACA0012.tol       = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder           = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-2.423636,-2.916834,-0.048414,0.000000] #last 4 columns
    contadj_incomp_cylinder.su2_exec  = "SU2_CFD"
    contadj_incomp_cylinder.timeout   = 1600
    contadj_incomp_cylinder.tol       = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################
    ramc           = TestCase('ramc')
    ramc.cfg_dir   = "tne2/ramc"
    ramc.cfg_file  = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.638119,2.854417,-4.439628,0.000188]
    ramc.su2_exec  = "SU2_CFD"
    ramc.timeout   = 1600
    ramc.tol       = 0.00001
    test_list.append(ramc)

#    ######################################
#    ### Spectral Method                ###
#    ######################################
#    spectral           = TestCase('spectral')
#    spectral.cfg_dir   = "spectral_method"
#    spectral.cfg_file  = "spectral.cfg"
#    spectral.test_iter = 25
#    spectral.test_vals = [-1.621870,3.852164,0.007465,0.084358]
#    spectral.su2_exec  = "SU2_CFD"
#    spectral.timeout   = 1600
#    spectral.tol       = 0.00001
#    test_list.append(spectral)

    ######################################
    ### 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.940515,-0.480469,0.018068,-3.926360]
    cavity.su2_exec  = "SU2_CFD"
    cavity.timeout   = 1600
    cavity.tol       = 0.00001
    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 = [-6.744370,-1.298814,8.697757,0.133608]
    spinning_cylinder.su2_exec  = "SU2_CFD"
    spinning_cylinder.timeout   = 1600
    spinning_cylinder.tol       = 0.00001
    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.542160,0.048661,1.398952,2.196894 ]
    square_cylinder.su2_exec  = "SU2_CFD"
    square_cylinder.timeout   = 1600
    square_cylinder.tol       = 0.00001
    test_list.append(square_cylinder)

    ######################################
    ### RUN TESTS                      ###
    ######################################  

    pass_list = [ test.run_test() for test in test_list ]

    if all(pass_list):
        sys.exit(0)
    else:
        sys.exit(1)
def main():
    '''This program runs SU^2 and ensures that the output matches specified values. 
       This will be used to do nightly checks to make sure nothing is broken. '''

    workdir = os.getcwd()

    # environment variables for SU2
    os.environ['SU2_HOME'] = '/home/ale11/.cruise/projects/serial_regression/work/SU2'
    os.environ['SU2_RUN'] = '/home/ale11/.cruise/projects/serial_regression/work/SU2/bin'
    os.environ['PATH'] = os.environ['PATH'] + ':' + os.environ['SU2_RUN']

    # sync SU2 repo
    os.chdir( os.environ['SU2_HOME'] )
    os.system('git fetch')
    os.system('git checkout develop')
    os.system('git pull origin develop')

    # Build SU2_CFD in serial using autoconf
    os.system('./configure --prefix=$SU2_HOME CXXFLAGS="-O3"')
    os.system('make clean')
    os.system('make install')

    os.chdir(os.environ['SU2_RUN'])
    if not os.path.exists("./SU2_CFD"):
        print 'Could not build SU2_CFD'
        sys.exit(1)

    os.chdir(workdir)  


    test_list = []

    ##########################
    ### Compressible Euler ###
    ##########################

    # Channel
    channel           = TestCase('channel')
    channel.cfg_dir   = "euler/channel"
    channel.cfg_file  = "inv_channel_RK.cfg"
    channel.test_iter = 100
    channel.test_vals = [-3.110240, 2.263506, 0.008686, 0.029098]
    channel.su2_exec  = "SU2_CFD"
    channel.timeout   = 1600
    channel.tol       = 0.00001
    test_list.append(channel)

    # NACA0012 
    naca0012           = TestCase('naca0012')
    naca0012.cfg_dir   = "euler/naca0012"
    naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.198537, -5.577721, 0.334810, 0.022197]
    naca0012.su2_exec  = "SU2_CFD"
    naca0012.timeout   = 1600
    naca0012.tol       = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge 
    wedge           = TestCase('wedge')
    wedge.cfg_dir   = "euler/wedge"
    wedge.cfg_file  = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.711318, 3.913749, -0.252131, 0.044402]
    wedge.su2_exec  = "SU2_CFD"
    wedge.timeout   = 1600
    wedge.tol       = 0.00001
    test_list.append(wedge)

    # ONERA M6 Wing
    oneram6           = TestCase('oneram6')
    oneram6.cfg_dir   = "euler/oneram6"
    oneram6.cfg_file  = "inv_ONERAM6_JST.cfg"
    oneram6.test_iter = 10
    oneram6.test_vals = [-4.711345, -4.145530, 0.271737, 0.018904]
    oneram6.su2_exec  = "SU2_CFD"
    oneram6.timeout   = 9600
    oneram6.tol       = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate           = TestCase('flatplate')
    flatplate.cfg_dir   = "navierstokes/flatplate"
    flatplate.cfg_file  = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.228462, 0.265581, -0.166503, 0.013013]
    flatplate.su2_exec  = "SU2_CFD"
    flatplate.timeout   = 1600
    flatplate.tol       = 0.00001
    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.765426, -1.297422, 0.019501, 0.310134]
    cylinder.su2_exec  = "SU2_CFD"
    cylinder.timeout   = 1600
    cylinder.tol       = 0.00001
    test_list.append(cylinder)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.442525, -5.441383, 0.884279, 0.024730] #last 4 columns
    rae2822_sa.su2_exec  = "SU2_CFD"
    rae2822_sa.timeout   = 1600
    rae2822_sa.tol       = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.186943, 4.023140, 0.886788, 0.024927] #last 4 columns
    rae2822_sst.su2_exec  = "SU2_CFD"
    rae2822_sst.timeout   = 1600
    rae2822_sst.tol       = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.067553, -7.354291, -0.187192, 0.010831] #last 4 columns
    turb_flatplate.su2_exec  = "SU2_CFD"
    turb_flatplate.timeout   = 1600
    turb_flatplate.tol       = 0.00001
    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.327516, -6.563376, 0.230437, 0.155816]#last 4 columns
    turb_oneram6.su2_exec  = "SU2_CFD"
    turb_oneram6.timeout   = 3200
    turb_oneram6.tol       = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012
    turb_naca0012           = TestCase('turb_naca0012')
    turb_naca0012.cfg_dir   = "rans/naca0012"
    turb_naca0012.cfg_file  = "turb_NACA0012.cfg"
    turb_naca0012.test_iter = 20
    turb_naca0012.test_vals = [-2.826358, -7.364211, -0.000020, 0.803040] #last 4 columns
    turb_naca0012.su2_exec  = "SU2_CFD"
    turb_naca0012.timeout   = 3200
    turb_naca0012.tol       = 0.00001
    test_list.append(turb_naca0012)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.710052, -11.007500, -0.000001, 0.210445] #last 4 columns
    inc_turb_naca0012.su2_exec  = "SU2_CFD"
    inc_turb_naca0012.timeout   = 1600
    inc_turb_naca0012.tol       = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012           = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir   = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file  = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-12.208788, -17.722752, 0.300920, 0.536870] #last 4 columns
    contadj_naca0012.su2_exec  = "SU2_CFD"
    contadj_naca0012.timeout   = 1600
    contadj_naca0012.tol       = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6           = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir   = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file  = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 5
    contadj_oneram6.test_vals = [-6.356212, -6.530823, -0.132860, 0.147720] #last 4 columns
    contadj_oneram6.su2_exec  = "SU2_CFD"
    contadj_oneram6.timeout   = 1600
    contadj_oneram6.tol       = 0.00001
    test_list.append(contadj_oneram6)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder           = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir   = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file  = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-0.607160, -6.072872, -2.056900, 25.115000] #last 4 columns
    contadj_ns_cylinder.su2_exec  = "SU2_CFD"
    contadj_ns_cylinder.timeout   = 1600
    contadj_ns_cylinder.tol       = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub           = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir   = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [-4.234330, -9.705735, 0.516750, 0.398940] #last 4 columns
    contadj_ns_naca0012_sub.su2_exec  = "SU2_CFD"
    contadj_ns_naca0012_sub.timeout   = 1600
    contadj_ns_naca0012_sub.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_sub)
    
    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans           = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir   = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [-1.810435, -6.920519, 1.756200, 1.020100] #last 4 columns
    contadj_ns_naca0012_trans.su2_exec  = "SU2_CFD"
    contadj_ns_naca0012_trans.timeout   = 1600
    contadj_ns_naca0012_trans.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012           = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir   = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file  = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-4.351102, -8.919996, -72.511000, -2.541400] #last 4 columns
    contadj_rans_naca0012.su2_exec  = "SU2_CFD"
    contadj_rans_naca0012.timeout   = 1600
    contadj_rans_naca0012.tol       = 0.00001
    test_list.append(contadj_rans_naca0012)
    
    # Adjoint turbulent RAE2822
    contadj_rans_rae2822           = TestCase('contadj_rans_rae2822')
    contadj_rans_rae2822.cfg_dir   = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file  = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [-2.959224, -8.349094, 354.120000, 0.106450] #last 4 columns
    contadj_rans_rae2822.su2_exec  = "SU2_CFD"
    contadj_rans_rae2822.timeout   = 1600
    contadj_rans_rae2822.tol       = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012           = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir   = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 140
    contadj_incomp_NACA0012.test_vals = [-7.326112, -7.153756, 1.892600, 0.000000] #last 4 columns
    contadj_incomp_NACA0012.su2_exec  = "SU2_CFD"
    contadj_incomp_NACA0012.timeout   = 1600
    contadj_incomp_NACA0012.tol       = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder           = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-2.423970, -2.907687, -3.082900, 0.000000] #last 4 columns
    contadj_incomp_cylinder.su2_exec  = "SU2_CFD"
    contadj_incomp_cylinder.timeout   = 1600
    contadj_incomp_cylinder.tol       = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################
    ramc           = TestCase('ramc')
    ramc.cfg_dir   = "tne2/ramc"
    ramc.cfg_file  = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.638119, 2.854417, -4.439628, 0.000188]
    ramc.su2_exec  = "SU2_CFD"
    ramc.timeout   = 1600
    ramc.tol       = 0.00001
    test_list.append(ramc)

#    ######################################
#    ### Spectral Method                ###
#    ######################################
#    spectral           = TestCase('spectral')
#    spectral.cfg_dir   = "spectral_method"
#    spectral.cfg_file  = "spectral.cfg"
#    spectral.test_iter = 25
#    spectral.test_vals = [-1.621870,3.852164,0.007465,0.084358]
#    spectral.su2_exec  = "SU2_CFD"
#    spectral.timeout   = 1600
#    spectral.tol       = 0.00001
#    test_list.append(spectral)

    ######################################
    ### 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.627883, -0.164418, 0.051983, 2.546202]
    cavity.su2_exec  = "SU2_CFD"
    cavity.timeout   = 1600
    cavity.tol       = 0.00001
    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 = [-6.905504, -1.452746, 9.120908, 0.087763]
    spinning_cylinder.su2_exec  = "SU2_CFD"
    spinning_cylinder.timeout   = 1600
    spinning_cylinder.tol       = 0.00001
    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.542156, 0.048662, 1.398952, 2.196893]
    square_cylinder.su2_exec  = "SU2_CFD"
    square_cylinder.timeout   = 1600
    square_cylinder.tol       = 0.00001
    test_list.append(square_cylinder)

    ######################################
    ### Real_Gas                       ###
    ######################################

    # ls89_sa
    ls89_sa           = TestCase('ls89_sa')
    ls89_sa.cfg_dir   = "nicf/LS89"
    ls89_sa.cfg_file  = "turb_SA_PR.cfg"
    ls89_sa.test_iter = 100
    ls89_sa.test_vals = [-7.038263, -11.990177, 0.068730, 0.152379]
    ls89_sa.su2_exec  = "SU2_CFD"
    ls89_sa.timeout   = 1600
    ls89_sa.tol       = 0.00001
    test_list.append(ls89_sa)

    # ls89_sst                                                                                                                                                                                                
    ls89_sst           = TestCase('ls89_sst')
    ls89_sst.cfg_dir   = "nicf/LS89"
    ls89_sst.cfg_file  = "turb_SST_PR.cfg"
    ls89_sst.test_iter = 100
    ls89_sst.test_vals = [-8.906245, -1.629702, 0.068978, 0.153799]
    ls89_sst.su2_exec  = "SU2_CFD"
    ls89_sst.timeout   = 1600
    ls89_sst.tol       = 0.00001
    test_list.append(ls89_sst)

    # 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.728637, -3.272400, -0.000046, 0.000000]
    edge_VW.su2_exec  = "SU2_CFD"
    edge_VW.timeout   = 1600
    edge_VW.tol       = 0.00001
    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 = [-6.254324, -3.823322, -0.002054, 0.000000]
    edge_PPR.su2_exec  = "SU2_CFD"
    edge_PPR.timeout   = 1600
    edge_PPR.tol       = 0.00001
    test_list.append(edge_PPR)

    ######################################
    ### RUN TESTS                      ###
    ######################################  

    pass_list = [ test.run_test() for test in test_list ]

    if all(pass_list):
        sys.exit(0)
    else:
        sys.exit(1)
Esempio n. 19
0
def main():
    '''This program runs SU^2 and ensures that the output matches specified values. 
       This will be used to do nightly checks to make sure nothing is broken. '''

    workdir = os.getcwd()

    # environment variables for SU2
    os.environ['SU2_HOME'] = '/home/ale11/.cruise/projects/parallel_regression/work/SU2'
    os.environ['SU2_RUN'] = '/home/ale11/.cruise/projects/parallel_regression/work/SU2/bin'
    os.environ['PATH'] = os.environ['PATH'] + ':' + os.environ['SU2_RUN']

    # sync SU2 repo
    os.chdir( os.environ['SU2_HOME'] )
    os.system('git fetch')
    os.system('git checkout develop')
    os.system('git pull origin develop')

    # Build SU2_CFD in parallel using autoconf
    os.system('./configure --prefix=$SU2_HOME --with-MPI=mpicxx CXXFLAGS="-O3"')
    os.system('make clean')
    os.system('make install')

    os.chdir(os.environ['SU2_RUN'])
    if not os.path.exists("./SU2_CFD"):
        print 'Could not build SU2_CFD'
        sys.exit(1)

    if not os.path.exists("./SU2_PRT"):
        print 'Could not build SU2_PRT'
        sys.exit(1)

    os.chdir(workdir)  
    test_list = []

    ##########################
    ### Compressible Euler ###
    ##########################

    # Channel
    channel           = TestCase('channel')
    channel.cfg_dir   = "euler/channel"
    channel.cfg_file  = "inv_channel_RK.cfg"
    channel.test_iter = 100
    channel.test_vals = [-3.007228, 2.358896, 0.008339, 0.028541]
    channel.su2_exec  = "parallel_computation.py -f"
    channel.timeout   = 1600
    channel.tol       = 0.00001
    test_list.append(channel)

    # NACA0012 
    naca0012           = TestCase('naca0012')
    naca0012.cfg_dir   = "euler/naca0012"
    naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.157022, -5.537399, 0.334831, 0.022209]
    naca0012.su2_exec  = "parallel_computation.py -f"
    naca0012.timeout   = 1600
    naca0012.tol       = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge 
    wedge           = TestCase('wedge')
    wedge.cfg_dir   = "euler/wedge"
    wedge.cfg_file  = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.647184, 3.989725, -0.251604, 0.044317]
    wedge.su2_exec  = "parallel_computation.py -f"
    wedge.timeout   = 1600
    wedge.tol       = 0.00001
    test_list.append(wedge)

    # ONERA M6 Wing
    oneram6           = TestCase('oneram6')
    oneram6.cfg_dir   = "euler/oneram6"
    oneram6.cfg_file  = "inv_ONERAM6_JST.cfg"
    oneram6.test_iter = 10
    oneram6.test_vals = [-4.707461, -4.138449, 0.269324, 0.018891]
    oneram6.su2_exec  = "parallel_computation.py -f"
    oneram6.timeout   = 3200
    oneram6.tol       = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate           = TestCase('flatplate')
    flatplate.cfg_dir   = "navierstokes/flatplate"
    flatplate.cfg_file  = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.232930, 0.260877, -0.166066, 0.013093]
    flatplate.su2_exec  = "parallel_computation.py -f"
    flatplate.timeout   = 1600
    flatplate.tol       = 0.00001
    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.759579, -1.292062, 0.047262, 0.139916]
    cylinder.su2_exec  = "parallel_computation.py -f"
    cylinder.timeout   = 1600
    cylinder.tol       = 0.00001
    test_list.append(cylinder)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.454436, -5.440827, 0.892572, 0.024842] #last 4 columns
    rae2822_sa.su2_exec  = "parallel_computation.py -f"
    rae2822_sa.timeout   = 1600
    rae2822_sa.tol       = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.178534, 4.029258, 0.894386, 0.024992] #last 4 columns
    rae2822_sst.su2_exec  = "parallel_computation.py -f"
    rae2822_sst.timeout   = 1600
    rae2822_sst.tol       = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.057092, -7.373256, -0.187140, 0.011347] #last 4 columns
    turb_flatplate.su2_exec  = "parallel_computation.py -f"
    turb_flatplate.timeout   = 1600
    turb_flatplate.tol       = 0.00001
    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.327515, -6.563376, 0.230436, 0.155816] #last 4 columns
    turb_oneram6.su2_exec  = "parallel_computation.py -f"
    turb_oneram6.timeout   = 3200
    turb_oneram6.tol       = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012
    turb_naca0012           = TestCase('turb_naca0012')
    turb_naca0012.cfg_dir   = "rans/naca0012"
    turb_naca0012.cfg_file  = "turb_NACA0012.cfg"
    turb_naca0012.test_iter = 20
    turb_naca0012.test_vals = [-2.826376, -7.364213, -0.000093, 0.803146] #last 4 columns
    turb_naca0012.su2_exec  = "parallel_computation.py -f"
    turb_naca0012.timeout   = 3200
    turb_naca0012.tol       = 0.00001
    test_list.append(turb_naca0012)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.709973, -11.007322, -0.000001, 0.211093] #last 4 columns
    inc_turb_naca0012.su2_exec  = "parallel_computation.py -f"
    inc_turb_naca0012.timeout   = 1600
    inc_turb_naca0012.tol       = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012           = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir   = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file  = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-12.168676, -17.674195, 0.300920, 0.536870] #last 4 columns
    contadj_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_naca0012.timeout   = 1600
    contadj_naca0012.tol       = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6           = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir   = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file  = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 5
    contadj_oneram6.test_vals = [-6.354703, -6.527803, -0.133910, 0.147720] #last 4 columns
    contadj_oneram6.su2_exec  = "parallel_computation.py -f"
    contadj_oneram6.timeout   = 1600
    contadj_oneram6.tol       = 0.00001
    test_list.append(contadj_oneram6)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder           = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir   = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file  = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-0.585239, -6.048475, -2.056900, 25.115000] #last 4 columns
    contadj_ns_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_ns_cylinder.timeout   = 1600
    contadj_ns_cylinder.tol       = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub           = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir   = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [-4.234330, -9.705735, 0.516750, 0.398940] #last 4 columns
    contadj_ns_naca0012_sub.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_sub.timeout   = 1600
    contadj_ns_naca0012_sub.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_sub)
    
    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans           = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir   = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [-1.810435, -6.920519, 1.756200, 1.020100] #last 4 columns
    contadj_ns_naca0012_trans.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_trans.timeout   = 1600
    contadj_ns_naca0012_trans.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012           = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir   = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file  = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-4.351102, -8.919996, -72.511000, -2.541400] #last 4 columns
    contadj_rans_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_rans_naca0012.timeout   = 1600
    contadj_rans_naca0012.tol       = 0.00001
    test_list.append(contadj_rans_naca0012)
    
    # Adjoint turbulent RAE2822
    contadj_rans_rae2822           = TestCase('contadj_rans_rae822')
    contadj_rans_rae2822.cfg_dir   = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file  = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [-2.903360, -8.331847, 354.020000, 0.128700] #last 4 columns
    contadj_rans_rae2822.su2_exec  = "parallel_computation.py -f"
    contadj_rans_rae2822.timeout   = 1600
    contadj_rans_rae2822.tol       = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012           = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir   = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 140
    contadj_incomp_NACA0012.test_vals = [-7.275605, -7.111247, 1.892600, 0.000000] #last 4 columns
    contadj_incomp_NACA0012.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_NACA0012.timeout   = 1600
    contadj_incomp_NACA0012.tol       = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder           = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-2.471344, -2.947390, -3.086500, 0.000000] #last 4 columns
    contadj_incomp_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_cylinder.timeout   = 1600
    contadj_incomp_cylinder.tol       = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################

    # RAM-C II Sphere-Cone -- 61km Altitude
    ramc           = TestCase('ramc')
    ramc.cfg_dir   = "tne2/ramc"
    ramc.cfg_file  = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.638119, 2.854417, -4.439628, 0.000188]
    ramc.su2_exec  = "parallel_computation.py -f"
    ramc.timeout   = 1600
    ramc.tol       = 0.00001
    test_list.append(ramc)

    ######################################
    ### 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.569056, -0.103736, 0.465430, 0.399409]
    cavity.su2_exec  = "parallel_computation.py -f"
    cavity.timeout   = 1600
    cavity.tol       = 0.00001
    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 = [-6.601720, -1.146034, 8.586054, 0.271493]
    spinning_cylinder.su2_exec  = "parallel_computation.py -f"
    spinning_cylinder.timeout   = 1600
    spinning_cylinder.tol       = 0.00001
    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.542156, 0.048663, 1.398952, 2.196894]
    square_cylinder.su2_exec  = "parallel_computation.py -f"
    square_cylinder.timeout   = 1600
    square_cylinder.tol       = 0.00001
    test_list.append(square_cylinder)

    ######################################
    ### Real_Gas                       ###
    ######################################	

    # 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.723975, -3.267743, -0.000046, 0.000000]
    edge_VW.su2_exec  = "parallel_computation.py -f"
    edge_VW.timeout   = 1600
    edge_VW.tol       = 0.00001
    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 = [-6.275801, -3.846499, -0.000056, 0.000000]
    edge_PPR.su2_exec  = "parallel_computation.py -f"
    edge_PPR.timeout   = 1600
    edge_PPR.tol       = 0.00001
    test_list.append(edge_PPR)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [ test.run_test() for test in test_list ]

    if all(pass_list):
        sys.exit(0)
    else:
        sys.exit(1)
Esempio n. 20
0
def main():
    '''This program runs SU^2 and ensures that the output matches specified values. 
       This will be used to do nightly checks to make sure nothing is broken. '''

    workdir = os.getcwd()

    # environment variables for SU2
    os.environ['SU2_HOME'] = '/home/ale11/.cruise/projects/parallel_regression/work/SU2'
    os.environ['SU2_RUN'] = '/home/ale11/.cruise/projects/parallel_regression/work/SU2/bin'
    os.environ['PATH'] = os.environ['PATH'] + ':' + os.environ['SU2_RUN']

    # sync SU2 repo
    os.chdir( os.environ['SU2_HOME'] )
    os.system('git pull')  

    # Build SU2_CFD in parallel using autoconf
    os.system('./configure --prefix=$SU2_HOME --with-MPI=mpicxx CXXFLAGS="-O3"')
    os.system('make clean')
    os.system('make install')

    os.chdir(os.environ['SU2_RUN'])
    if not os.path.exists("./SU2_CFD"):
        print 'Could not build SU2_CFD'
        sys.exit(1)

    if not os.path.exists("./SU2_PRT"):
        print 'Could not build SU2_PRT'
        sys.exit(1)

    os.chdir(workdir)  
    test_list = []

    ##########################
    ### Compressible Euler ###
    ##########################

    # Channel
    channel           = TestCase('channel')
    channel.cfg_dir   = "euler/channel"
    channel.cfg_file  = "inv_channel_RK.cfg"
    channel.test_iter = 100
    channel.test_vals = [-2.413846,2.965840,0.007590,0.051651]
    channel.su2_exec  = "parallel_computation.py -f"
    channel.timeout   = 1600
    channel.tol       = 0.00001
    test_list.append(channel)

    # NACA0012 
    naca0012           = TestCase('naca0012')
    naca0012.cfg_dir   = "euler/naca0012"
    naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.145865,-5.547701,0.334821,0.022211]
    naca0012.su2_exec  = "parallel_computation.py -f"
    naca0012.timeout   = 1600
    naca0012.tol       = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge 
    wedge           = TestCase('wedge')
    wedge.cfg_dir   = "euler/wedge"
    wedge.cfg_file  = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-2.694577,3.148295,-0.252137,0.044398]
    wedge.su2_exec  = "parallel_computation.py -f"
    wedge.timeout   = 1600
    wedge.tol       = 0.00001
    test_list.append(wedge)

    # ONERA M6 Wing
    oneram6           = TestCase('oneram6')
    oneram6.cfg_dir   = "euler/oneram6"
    oneram6.cfg_file  = "inv_ONERAM6_JST.cfg"
    oneram6.test_iter = 10
    oneram6.test_vals = [-4.825465,-4.290835,0.287910,0.015977]
    oneram6.su2_exec  = "parallel_computation.py -f"
    oneram6.timeout   = 3200
    oneram6.tol       = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate           = TestCase('flatplate')
    flatplate.cfg_dir   = "navierstokes/flatplate"
    flatplate.cfg_file  = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.232884,0.263297,0.020756,0.012889]
    flatplate.su2_exec  = "parallel_computation.py -f"
    flatplate.timeout   = 1600
    flatplate.tol       = 0.00001
    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.764733,-1.319817,0.096432,-1.542095]
    cylinder.su2_exec  = "parallel_computation.py -f"
    cylinder.timeout   = 1600
    cylinder.tol       = 0.00001
    test_list.append(cylinder)

    ##########################
    ### Compressible RANS  ###
    ##########################

    # RAE2822
    rae2822           = TestCase('rae2822')
    rae2822.cfg_dir   = "rans/rae2822"
    rae2822.cfg_file  = "turb_SA_RAE2822.cfg"
    rae2822.test_iter = 100
    rae2822.test_vals = [-3.650797,-5.455693,0.886602,0.024346 ] #last 4 columns
    rae2822.su2_exec  = "parallel_computation.py -f"
    rae2822.timeout   = 1600
    rae2822.tol       = 0.00001
    test_list.append(rae2822)

    # 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 = 100
    turb_flatplate.test_vals = [-5.079817,-7.339735,0.000536,0.010776] #last 4 columns
    turb_flatplate.su2_exec  = "parallel_computation.py -f"
    turb_flatplate.timeout   = 1600
    turb_flatplate.tol       = 0.00001
    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.343660,-6.584582,0.230390,0.155770] #last 4 columns
    turb_oneram6.su2_exec  = "parallel_computation.py -f"
    turb_oneram6.timeout   = 3200
    turb_oneram6.tol       = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012
    turb_naca0012           = TestCase('turb_naca0012')
    turb_naca0012.cfg_dir   = "rans/naca0012"
    turb_naca0012.cfg_file  = "turb_NACA0012.cfg"
    turb_naca0012.test_iter = 20
    turb_naca0012.test_vals = [-2.824685,-7.364142,-0.000065,0.803140] #last 4 columns
    turb_naca0012.su2_exec  = "parallel_computation.py -f"
    turb_naca0012.timeout   = 3200
    turb_naca0012.tol       = 0.00001
    test_list.append(turb_naca0012)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.709959,-11.007389,0.000012,0.211081] #last 4 columns
    inc_turb_naca0012.su2_exec  = "parallel_computation.py -f"
    inc_turb_naca0012.timeout   = 1600
    inc_turb_naca0012.tol       = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012 (To be validated with finite differences)
    contadj_naca0012           = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir   = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file  = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-10.108904,-15.604585,0.006153,0.522960] #last 4 columns
    contadj_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_naca0012.timeout   = 1600
    contadj_naca0012.tol       = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6           = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir   = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file  = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 5
    contadj_oneram6.test_vals = [-6.385873,-6.531040,-0.000023,0.147770] #last 4 columns
    contadj_oneram6.su2_exec  = "parallel_computation.py -f"
    contadj_oneram6.timeout   = 1600
    contadj_oneram6.tol       = 0.00001
    test_list.append(contadj_oneram6)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder           = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir   = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file  = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-0.236174,-5.631193,0.031920,25.060000] #last 4 columns
    contadj_ns_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_ns_cylinder.timeout   = 1600
    contadj_ns_cylinder.tol       = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012
    contadj_ns_naca0012           = TestCase('contadj_ns_naca0012')
    contadj_ns_naca0012.cfg_dir   = "cont_adj_navierstokes/naca0012"
    contadj_ns_naca0012.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012.test_iter = 100
    contadj_ns_naca0012.test_vals = [-4.686123,-10.145232,0.013057,0.184800] #last 4 columns
    contadj_ns_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012.timeout   = 1600
    contadj_ns_naca0012.tol       = 0.00001
    test_list.append(contadj_ns_naca0012)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012 (To be validated with finite differences)
    contadj_rans_naca0012           = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir   = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file  = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-4.351187,-8.921444,1.181000,-2.540200] #last 4 columns
    contadj_rans_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_rans_naca0012.timeout   = 1600
    contadj_rans_naca0012.tol       = 0.00001
    test_list.append(contadj_rans_naca0012)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012           = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir   = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 140
    contadj_incomp_NACA0012.test_vals = [-7.613876,-7.157641,0.011112,0.000000] #last 4 columns
    contadj_incomp_NACA0012.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_NACA0012.timeout   = 1600
    contadj_incomp_NACA0012.tol       = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder           = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-9.002264,-10.002274,0.048091,0.000000 ] #last 4 columns
    contadj_incomp_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_cylinder.timeout   = 1600
    contadj_incomp_cylinder.tol       = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################

    # RAM-C II Sphere-Cone -- 61km Altitude
    ramc           = TestCase('ramc')
    ramc.cfg_dir   = "tne2/ramc"
    ramc.cfg_file  = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.638119,2.854417,-4.439634,0.000188]
    ramc.su2_exec  = "parallel_computation.py -f"
    ramc.timeout   = 1600
    ramc.tol       = 0.00001
    test_list.append(ramc)

    ######################################
    ### 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.756437,-0.316355,-0.152010,-3.755979]
    cavity.su2_exec  = "parallel_computation.py -f"
    cavity.timeout   = 1600
    cavity.tol       = 0.00001
    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 = [-6.629674,-1.200221,8.693302,0.326125]
    spinning_cylinder.su2_exec  = "parallel_computation.py -f"
    spinning_cylinder.timeout   = 1600
    spinning_cylinder.tol       = 0.00001
    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.585044,-1.425751,1.490389,2.340439]
    square_cylinder.su2_exec  = "parallel_computation.py -f"
    square_cylinder.timeout   = 1600
    square_cylinder.tol       = 0.00001
    test_list.append(square_cylinder)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [ test.run_test() for test in test_list ]

    if all(pass_list):
        sys.exit(0)
    else:
        sys.exit(1)
Esempio n. 21
0
def main():
    '''This program runs SU2 and ensures that the output matches specified values. 
       This will be used to do nightly checks to make sure nothing is broken. '''

    workdir = os.getcwd()

    # environment variables for SU2
    os.environ['TEST_HOME'] = '/home/ale11/.cruise/projects/parallel_regression/work'
    os.environ['SU2_HOME'] = '/home/ale11/.cruise/projects/parallel_regression/work/SU2'
    os.environ['SU2_RUN'] = '/home/ale11/.cruise/projects/parallel_regression/work/SU2/bin'
    os.environ['PATH'] = os.environ['PATH'] + ':' + os.environ['SU2_RUN']

    # sync Test Cases repo
    os.chdir( os.environ['TEST_HOME'] )
    os.system('git fetch')
    os.system('git checkout develop')
    os.system('git pull origin develop')

    # sync SU2 repo
    os.chdir( os.environ['SU2_HOME'] )
    os.system('git fetch')
    os.system('git checkout develop')
    os.system('git pull origin develop')

    # Build SU2_CFD in parallel using autoconf
    os.system('./configure --prefix=$SU2_HOME --enable-mpi --with-cc=`which mpicc` --with-cxx=`which mpicxx` CXXFLAGS="-O3"')
    os.system('make clean')
    os.system('make install')

    os.chdir(os.environ['SU2_RUN'])
    if not os.path.exists("./SU2_CFD"):
        print 'Could not build SU2_CFD'
        sys.exit(1)

    if not os.path.exists("./SU2_PRT"):
        print 'Could not build SU2_PRT'
        sys.exit(1)

    os.chdir(workdir)  
    test_list = []

    ##########################
    ### Compressible Euler ###
    ##########################

    # Channel
    channel           = TestCase('channel')
    channel.cfg_dir   = "euler/channel"
    channel.cfg_file  = "inv_channel_RK.cfg"
    channel.test_iter = 100
    channel.test_vals = [-2.984481, 2.389875, 0.008865, 0.027854] #last 4 columns
    channel.su2_exec  = "parallel_computation.py -f"
    channel.timeout   = 1600
    channel.tol       = 0.00001
    test_list.append(channel)

    # NACA0012 
    naca0012           = TestCase('naca0012')
    naca0012.cfg_dir   = "euler/naca0012"
    naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.237188, -5.641250, 0.334843, 0.022206] #last 4 columns
    naca0012.su2_exec  = "parallel_computation.py -f"
    naca0012.timeout   = 1600
    naca0012.tol       = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge 
    wedge           = TestCase('wedge')
    wedge.cfg_dir   = "euler/wedge"
    wedge.cfg_file  = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.702502, 3.923373, -0.252116, 0.044396] #last 4 columns
    wedge.su2_exec  = "parallel_computation.py -f"
    wedge.timeout   = 1600
    wedge.tol       = 0.00001
    test_list.append(wedge)

    # ONERA M6 Wing
    oneram6           = TestCase('oneram6')
    oneram6.cfg_dir   = "euler/oneram6"
    oneram6.cfg_file  = "inv_ONERAM6_JST.cfg"
    oneram6.test_iter = 10
    oneram6.test_vals = [-4.701280, -4.154921, 0.270257, 0.019095] #last 4 columns
    oneram6.su2_exec  = "parallel_computation.py -f"
    oneram6.timeout   = 3200
    oneram6.tol       = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate           = TestCase('flatplate')
    flatplate.cfg_dir   = "navierstokes/flatplate"
    flatplate.cfg_file  = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.233923, 0.259801, -0.166790, 0.012722] #last 4 columns
    flatplate.su2_exec  = "parallel_computation.py -f"
    flatplate.timeout   = 1600
    flatplate.tol       = 0.00001
    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.757291, -1.289309, -0.125948, 0.625438] #last 4 columns
    cylinder.su2_exec  = "parallel_computation.py -f"
    cylinder.timeout   = 1600
    cylinder.tol       = 0.00001
    test_list.append(cylinder)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.637762, -5.450251, 0.890401, 0.025056] #last 4 columns
    rae2822_sa.su2_exec  = "parallel_computation.py -f"
    rae2822_sa.timeout   = 1600
    rae2822_sa.tol       = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.217020, 4.023774, 0.892665, 0.025209] #last 4 columns
    rae2822_sst.su2_exec  = "parallel_computation.py -f"
    rae2822_sst.timeout   = 1600
    rae2822_sst.tol       = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.061518, -7.362119, -0.187139, 0.011230] #last 4 columns
    turb_flatplate.su2_exec  = "parallel_computation.py -f"
    turb_flatplate.timeout   = 1600
    turb_flatplate.tol       = 0.00001
    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.327508, -6.563372, 0.230438, 0.155815] #last 4 columns
    turb_oneram6.su2_exec  = "parallel_computation.py -f"
    turb_oneram6.timeout   = 3200
    turb_oneram6.tol       = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012 (SA, FUN3D 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 = 20
    turb_naca0012_sa.test_vals = [-6.607223, -9.778334, 1.098508, 0.012417] #last 4 columns
    turb_naca0012_sa.su2_exec  = "parallel_computation.py -f"
    turb_naca0012_sa.timeout   = 3200
    turb_naca0012_sa.tol       = 0.00001
    test_list.append(turb_naca0012_sa)
    
    # NACA0012 (SST, FUN3D 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 = 20
    turb_naca0012_sst.test_vals = [-8.290777, -1.743118, 1.084186, 0.012583] #last 4 columns
    turb_naca0012_sst.su2_exec  = "parallel_computation.py -f"
    turb_naca0012_sst.timeout   = 3200
    turb_naca0012_sst.tol       = 0.00001
    test_list.append(turb_naca0012_sst)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.709508, -11.006161, -0.000017, 0.211696] #last 4 columns
    inc_turb_naca0012.su2_exec  = "parallel_computation.py -f"
    inc_turb_naca0012.timeout   = 1600
    inc_turb_naca0012.tol       = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012           = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir   = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file  = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-9.783724, -15.192804, 0.300920, 0.536870] #last 4 columns
    contadj_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_naca0012.timeout   = 1600
    contadj_naca0012.tol       = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6           = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir   = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file  = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 5
    contadj_oneram6.test_vals = [-6.001400, -6.242615, -0.105160, 0.149240] #last 4 columns
    contadj_oneram6.su2_exec  = "parallel_computation.py -f"
    contadj_oneram6.timeout   = 1600
    contadj_oneram6.tol       = 0.00001
    test_list.append(contadj_oneram6)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder           = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir   = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file  = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-3.658396, -9.117436, -2.056700, 4.497000] #last 4 columns
    contadj_ns_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_ns_cylinder.timeout   = 1600
    contadj_ns_cylinder.tol       = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub           = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir   = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [-2.744551, -8.216469, 0.518810, 0.229160] #last 4 columns
    contadj_ns_naca0012_sub.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_sub.timeout   = 1600
    contadj_ns_naca0012_sub.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_sub)
    
    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans           = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir   = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [-1.041539, -6.578524, 1.772300, 0.620880] #last 4 columns
    contadj_ns_naca0012_trans.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_trans.timeout   = 1600
    contadj_ns_naca0012_trans.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012           = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir   = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file  = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-0.814757, -5.726517, -19.169000, -2.994100] #last 4 columns
    contadj_rans_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_rans_naca0012.timeout   = 1600
    contadj_rans_naca0012.tol       = 0.00001
    test_list.append(contadj_rans_naca0012)
    
    # Adjoint turbulent RAE2822
    contadj_rans_rae2822           = TestCase('contadj_rans_rae822')
    contadj_rans_rae2822.cfg_dir   = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file  = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [-5.381632, -10.887032, -0.212470, 0.269390] #last 4 columns
    contadj_rans_rae2822.su2_exec  = "parallel_computation.py -f"
    contadj_rans_rae2822.timeout   = 1600
    contadj_rans_rae2822.tol       = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012           = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir   = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 5
    contadj_incomp_NACA0012.test_vals = [-11.968536, -12.133234, 1.939900, 0.000000] #last 4 columns
    contadj_incomp_NACA0012.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_NACA0012.timeout   = 1600
    contadj_incomp_NACA0012.tol       = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder           = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-5.718776, -7.020714, -2.932100, 0.000000] #last 4 columns
    contadj_incomp_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_cylinder.timeout   = 1600
    contadj_incomp_cylinder.tol       = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################

    # RAM-C II Sphere-Cone -- 61km Altitude
    ramc           = TestCase('ramc')
    ramc.cfg_dir   = "tne2/ramc"
    ramc.cfg_file  = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.643029, 2.849441, -4.443852, 0.000313] #last 4 columns
    ramc.su2_exec  = "parallel_computation.py -f"
    ramc.timeout   = 1600
    ramc.tol       = 0.00001
    test_list.append(ramc)

    ######################################
    ### 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.594283, -0.130745, -0.510607, 0.061921] #last 4 columns
    cavity.su2_exec  = "parallel_computation.py -f"
    cavity.timeout   = 1600
    cavity.tol       = 0.00001
    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.637313, -2.194229, 1.212769, 1.605369] #last 4 columns
    spinning_cylinder.su2_exec  = "parallel_computation.py -f"
    spinning_cylinder.timeout   = 1600
    spinning_cylinder.tol       = 0.00001
    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.544602, 0.048576, 1.398951, 2.196894] #last 4 columns
    square_cylinder.su2_exec  = "parallel_computation.py -f"
    square_cylinder.timeout   = 1600
    square_cylinder.tol       = 0.00001
    test_list.append(square_cylinder)

    ######################################
    ### Real_Gas                       ###
    ######################################	

    # 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 = [-1.446069, 4.751345, -0.000046, 0.000000] #last 4 columns
    edge_VW.su2_exec  = "parallel_computation.py -f"
    edge_VW.timeout   = 1600
    edge_VW.tol       = 0.00001
    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 = [-1.994951, 4.175777, -0.000056, 0.000000] #last 4 columns
    edge_PPR.su2_exec  = "parallel_computation.py -f"
    edge_PPR.timeout   = 1600
    edge_PPR.tol       = 0.00001
    test_list.append(edge_PPR)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [ test.run_test() for test in test_list ]

    if all(pass_list):
        sys.exit(0)
    else:
        sys.exit(1)
Esempio n. 22
0
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 = 100
    channel.test_vals = [-3.071007, 2.301191, 0.008562,
                         0.028922]  #last 4 columns
    channel.su2_exec = "parallel_computation.py -f"
    channel.timeout = 1600
    channel.tol = 0.00001
    test_list.append(channel)

    # NACA0012
    naca0012 = TestCase('naca0012')
    naca0012.cfg_dir = "euler/naca0012"
    naca0012.cfg_file = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.237188, -5.641250, 0.334843,
                          0.022206]  #last 4 columns
    naca0012.su2_exec = "parallel_computation.py -f"
    naca0012.timeout = 1600
    naca0012.tol = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge
    wedge = TestCase('wedge')
    wedge.cfg_dir = "euler/wedge"
    wedge.cfg_file = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.690232, 3.924432, -0.252221,
                       0.044419]  #last 4 columns
    wedge.su2_exec = "parallel_computation.py -f"
    wedge.timeout = 1600
    wedge.tol = 0.00001
    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 = [-13.400678, -12.932056, 0.282557,
                         0.012706]  #last 4 columns
    oneram6.su2_exec = "parallel_computation.py -f"
    oneram6.timeout = 3200
    oneram6.tol = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate = TestCase('flatplate')
    flatplate.cfg_dir = "navierstokes/flatplate"
    flatplate.cfg_file = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.231743, 0.261628, -0.166871,
                           0.012706]  #last 4 columns
    flatplate.su2_exec = "parallel_computation.py -f"
    flatplate.timeout = 1600
    flatplate.tol = 0.00001
    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.757291, -1.289309, -0.125948,
                          0.625438]  #last 4 columns
    cylinder.su2_exec = "parallel_computation.py -f"
    cylinder.timeout = 1600
    cylinder.tol = 0.00001
    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.861860, -1.399846, -1.557250,
                                  110.230719]  #last 4 columns
    cylinder_lowmach.su2_exec = "parallel_computation.py -f"
    cylinder_lowmach.timeout = 1600
    cylinder_lowmach.tol = 0.00001
    test_list.append(cylinder_lowmach)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.647743, -5.442583, 0.903159,
                            0.025800]  #last 4 columns
    rae2822_sa.su2_exec = "parallel_computation.py -f"
    rae2822_sa.timeout = 1600
    rae2822_sa.tol = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.198777, 4.013989, 0.904265,
                             0.025941]  #last 4 columns
    rae2822_sst.su2_exec = "parallel_computation.py -f"
    rae2822_sst.timeout = 1600
    rae2822_sst.tol = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.071289, -7.366446, -0.187145,
                                0.010957]  #last 4 columns
    turb_flatplate.su2_exec = "parallel_computation.py -f"
    turb_flatplate.timeout = 1600
    turb_flatplate.tol = 0.00001
    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.327509, -6.563372, 0.230438,
                              0.155815]  #last 4 columns
    turb_oneram6.su2_exec = "parallel_computation.py -f"
    turb_oneram6.timeout = 3200
    turb_oneram6.tol = 0.00001
    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 = [-12.000764, -9.145363, 1.070528,
                                  0.019417]  #last 4 columns
    turb_naca0012_sa.su2_exec = "parallel_computation.py -f"
    turb_naca0012_sa.timeout = 3200
    turb_naca0012_sa.tol = 0.00001
    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 = [-15.039645, -7.220177, 1.059622,
                                   0.019138]  #last 4 columns
    turb_naca0012_sst.su2_exec = "parallel_computation.py -f"
    turb_naca0012_sst.timeout = 3200
    turb_naca0012_sst.tol = 0.00001
    test_list.append(turb_naca0012_sst)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.710048, -11.007498, 0.000002,
                                   0.210441]  #last 4 columns
    inc_turb_naca0012.su2_exec = "parallel_computation.py -f"
    inc_turb_naca0012.timeout = 1600
    inc_turb_naca0012.tol = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012 = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-9.783712, -15.192812, 0.300920,
                                  0.536870]  #last 4 columns
    contadj_naca0012.su2_exec = "parallel_computation.py -f"
    contadj_naca0012.timeout = 1600
    contadj_naca0012.tol = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6 = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 10
    contadj_oneram6.test_vals = [-12.131587, -12.703243, 0.685900,
                                 0.140920]  #last 4 columns
    contadj_oneram6.su2_exec = "parallel_computation.py -f"
    contadj_oneram6.timeout = 1600
    contadj_oneram6.tol = 0.00001
    test_list.append(contadj_oneram6)

    # Inviscid WEDGE: generalized adjoint and custom DV
    contadj_wedge = TestCase('contadj_wedge')
    contadj_wedge.cfg_dir = "cont_adj_euler/wedge"
    contadj_wedge.cfg_file = "inv_wedge_ROE.cfg"
    contadj_wedge.test_iter = 10
    contadj_wedge.test_vals = [-7.364977, -13.301134, 0.000266,
                               0.000000]  #last 4 columns
    contadj_wedge.su2_exec = "parallel_computation.py -f"
    contadj_wedge.timeout = 1600
    contadj_wedge.tol = 0.00001
    test_list.append(contadj_wedge)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [
        -3.659040, -9.117773, -2.056700, 4.497000
    ]  #last 4 columns
    contadj_ns_cylinder.su2_exec = "parallel_computation.py -f"
    contadj_ns_cylinder.timeout = 1600
    contadj_ns_cylinder.tol = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [
        -2.744551, -8.216469, 0.518810, 0.229160
    ]  #last 4 columns
    contadj_ns_naca0012_sub.su2_exec = "parallel_computation.py -f"
    contadj_ns_naca0012_sub.timeout = 1600
    contadj_ns_naca0012_sub.tol = 0.00001
    test_list.append(contadj_ns_naca0012_sub)

    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [
        -1.041539, -6.578524, 1.772300, 0.620880
    ]  #last 4 columns
    contadj_ns_naca0012_trans.su2_exec = "parallel_computation.py -f"
    contadj_ns_naca0012_trans.timeout = 1600
    contadj_ns_naca0012_trans.tol = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012 = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [
        -0.814757, -5.726517, -19.169000, -2.994100
    ]  #last 4 columns
    contadj_rans_naca0012.su2_exec = "parallel_computation.py -f"
    contadj_rans_naca0012.timeout = 1600
    contadj_rans_naca0012.tol = 0.00001
    test_list.append(contadj_rans_naca0012)

    # Adjoint turbulent RAE2822
    contadj_rans_rae2822 = TestCase('contadj_rans_rae822')
    contadj_rans_rae2822.cfg_dir = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [
        -5.380929, -10.886092, -0.212470, 0.269390
    ]  #last 4 columns
    contadj_rans_rae2822.su2_exec = "parallel_computation.py -f"
    contadj_rans_rae2822.timeout = 1600
    contadj_rans_rae2822.tol = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012 = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 5
    contadj_incomp_NACA0012.test_vals = [
        -11.968536, -12.133235, 1.939900, 0.000000
    ]  #last 4 columns
    contadj_incomp_NACA0012.su2_exec = "parallel_computation.py -f"
    contadj_incomp_NACA0012.timeout = 1600
    contadj_incomp_NACA0012.tol = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [
        -5.718840, -7.012324, -2.932100, 0.000000
    ]  #last 4 columns
    contadj_incomp_cylinder.su2_exec = "parallel_computation.py -f"
    contadj_incomp_cylinder.timeout = 1600
    contadj_incomp_cylinder.tol = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### 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.597018, -0.133158, 0.169034,
                        0.821371]  #last 4 columns
    cavity.su2_exec = "parallel_computation.py -f"
    cavity.timeout = 1600
    cavity.tol = 0.00001
    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.648320, -2.202753, 1.236836,
                                   1.609040]  #last 4 columns
    spinning_cylinder.su2_exec = "parallel_computation.py -f"
    spinning_cylinder.timeout = 1600
    spinning_cylinder.tol = 0.00001
    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.544602, 0.048576, 1.398951,
                                 2.196894]  #last 4 columns
    square_cylinder.su2_exec = "parallel_computation.py -f"
    square_cylinder.timeout = 1600
    square_cylinder.tol = 0.00001
    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.977531, 3.481790, -0.014552,
                           -0.004969]  #last 4 columns
    sine_gust.su2_exec = "parallel_computation.py -f"
    sine_gust.timeout = 1600
    sine_gust.tol = 0.00001
    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.077169, 0.036452, -0.001685,
                             -0.000113]  #last 4 columns
    aeroelastic.su2_exec = "parallel_computation.py -f"
    aeroelastic.timeout = 1600
    aeroelastic.tol = 0.000001
    aeroelastic.unsteady = True
    test_list.append(aeroelastic)

    ######################################
    ### 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.058481, 1.115321, -0.000009,
                         0.000000]  #last 4 columns
    edge_VW.su2_exec = "parallel_computation.py -f"
    edge_VW.timeout = 1600
    edge_VW.tol = 0.00001
    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.486409, 0.654417, -0.000037,
                          0.000000]  #last 4 columns
    edge_PPR.su2_exec = "parallel_computation.py -f"
    edge_PPR.timeout = 1600
    edge_PPR.tol = 0.00001
    test_list.append(edge_PPR)

    ##########################
    ### 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 = [-8.520066, -8.069308, -8.062384,
                            64095.000000]  #last 4 columns
    statbeam3d.su2_exec = "parallel_computation_fsi.py -f"
    statbeam3d.timeout = 1600
    statbeam3d.tol = 0.00001
    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 = [-9.420641, -5.365871, -12.430382,
                           6.5210e+04]  #last 4 columns
    dynbeam2d.su2_exec = "parallel_computation_fsi.py -f"
    dynbeam2d.timeout = 1600
    dynbeam2d.tol = 0.00001
    test_list.append(dynbeam2d)

    # FSI, 2d
    fsi2d = TestCase('fsi2d')
    fsi2d.cfg_dir = "fea_fsi/WallChannel_2d"
    fsi2d.cfg_file = "configFSI_2D.cfg"
    fsi2d.test_iter = 4
    fsi2d.test_vals = [2, 0.500000, -7.779707, -1.141608]  #last 4 columns
    fsi2d.su2_exec = "parallel_computation_fsi.py -f"
    fsi2d.timeout = 1600
    fsi2d.tol = 0.00001
    test_list.append(fsi2d)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [test.run_test() for test in test_list]

    # Tests summary
    print '=================================================================='
    print 'Summary of the parallel tests'
    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)
Esempio n. 23
0
def main():
    '''This program runs SU2 and ensures that the output matches specified values. 
       This will be used to do nightly checks to make sure nothing is broken. '''

    workdir = os.getcwd()

    # environment variables for SU2
    os.environ[
        'TEST_HOME'] = '/home/ale11/.cruise/projects/parallel_regression/work'
    os.environ[
        'SU2_HOME'] = '/home/ale11/.cruise/projects/parallel_regression/work/SU2'
    os.environ[
        'SU2_RUN'] = '/home/ale11/.cruise/projects/parallel_regression/work/SU2/bin'
    os.environ['PATH'] = os.environ['PATH'] + ':' + os.environ['SU2_RUN']

    # sync Test Cases repo
    os.chdir(os.environ['TEST_HOME'])
    os.system('git fetch')
    os.system('git checkout develop')
    os.system('git pull origin develop')

    # sync SU2 repo
    os.chdir(os.environ['SU2_HOME'])
    os.system('git fetch')
    os.system('git checkout develop')
    os.system('git pull origin develop')

    # Build SU2_CFD in parallel using autoconf
    os.system(
        './configure --prefix=$SU2_HOME --enable-mpi --with-cc=`which mpicc` --with-cxx=`which mpicxx` CXXFLAGS="-O3"'
    )
    os.system('make clean')
    os.system('make install')

    os.chdir(os.environ['SU2_RUN'])
    if not os.path.exists("./SU2_CFD"):
        print 'Could not build SU2_CFD'
        sys.exit(1)

    if not os.path.exists("./SU2_PRT"):
        print 'Could not build SU2_PRT'
        sys.exit(1)

    os.chdir(workdir)
    test_list = []

    ##########################
    ### Compressible Euler ###
    ##########################

    # Channel
    channel = TestCase('channel')
    channel.cfg_dir = "euler/channel"
    channel.cfg_file = "inv_channel_RK.cfg"
    channel.test_iter = 100
    channel.test_vals = [-2.984481, 2.389875, 0.008865,
                         0.027854]  #last 4 columns
    channel.su2_exec = "parallel_computation.py -f"
    channel.timeout = 1600
    channel.tol = 0.00001
    test_list.append(channel)

    # NACA0012
    naca0012 = TestCase('naca0012')
    naca0012.cfg_dir = "euler/naca0012"
    naca0012.cfg_file = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.237188, -5.641250, 0.334843,
                          0.022206]  #last 4 columns
    naca0012.su2_exec = "parallel_computation.py -f"
    naca0012.timeout = 1600
    naca0012.tol = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge
    wedge = TestCase('wedge')
    wedge.cfg_dir = "euler/wedge"
    wedge.cfg_file = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.702502, 3.923373, -0.252116,
                       0.044396]  #last 4 columns
    wedge.su2_exec = "parallel_computation.py -f"
    wedge.timeout = 1600
    wedge.tol = 0.00001
    test_list.append(wedge)

    # ONERA M6 Wing
    oneram6 = TestCase('oneram6')
    oneram6.cfg_dir = "euler/oneram6"
    oneram6.cfg_file = "inv_ONERAM6_JST.cfg"
    oneram6.test_iter = 10
    oneram6.test_vals = [-4.701280, -4.154921, 0.270257,
                         0.019095]  #last 4 columns
    oneram6.su2_exec = "parallel_computation.py -f"
    oneram6.timeout = 3200
    oneram6.tol = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate = TestCase('flatplate')
    flatplate.cfg_dir = "navierstokes/flatplate"
    flatplate.cfg_file = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.233923, 0.259801, -0.166790,
                           0.012722]  #last 4 columns
    flatplate.su2_exec = "parallel_computation.py -f"
    flatplate.timeout = 1600
    flatplate.tol = 0.00001
    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.757291, -1.289309, -0.125948,
                          0.625438]  #last 4 columns
    cylinder.su2_exec = "parallel_computation.py -f"
    cylinder.timeout = 1600
    cylinder.tol = 0.00001
    test_list.append(cylinder)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.637762, -5.450251, 0.890401,
                            0.025056]  #last 4 columns
    rae2822_sa.su2_exec = "parallel_computation.py -f"
    rae2822_sa.timeout = 1600
    rae2822_sa.tol = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.217020, 4.023774, 0.892665,
                             0.025209]  #last 4 columns
    rae2822_sst.su2_exec = "parallel_computation.py -f"
    rae2822_sst.timeout = 1600
    rae2822_sst.tol = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.061518, -7.362119, -0.187139,
                                0.011230]  #last 4 columns
    turb_flatplate.su2_exec = "parallel_computation.py -f"
    turb_flatplate.timeout = 1600
    turb_flatplate.tol = 0.00001
    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.327508, -6.563372, 0.230438,
                              0.155815]  #last 4 columns
    turb_oneram6.su2_exec = "parallel_computation.py -f"
    turb_oneram6.timeout = 3200
    turb_oneram6.tol = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012 (SA, FUN3D 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 = 20
    turb_naca0012_sa.test_vals = [-6.607223, -9.778334, 1.098508,
                                  0.012417]  #last 4 columns
    turb_naca0012_sa.su2_exec = "parallel_computation.py -f"
    turb_naca0012_sa.timeout = 3200
    turb_naca0012_sa.tol = 0.00001
    test_list.append(turb_naca0012_sa)

    # NACA0012 (SST, FUN3D 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 = 20
    turb_naca0012_sst.test_vals = [-8.290777, -1.743118, 1.084186,
                                   0.012583]  #last 4 columns
    turb_naca0012_sst.su2_exec = "parallel_computation.py -f"
    turb_naca0012_sst.timeout = 3200
    turb_naca0012_sst.tol = 0.00001
    test_list.append(turb_naca0012_sst)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.709508, -11.006161, -0.000017,
                                   0.211696]  #last 4 columns
    inc_turb_naca0012.su2_exec = "parallel_computation.py -f"
    inc_turb_naca0012.timeout = 1600
    inc_turb_naca0012.tol = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012 = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-9.783724, -15.192804, 0.300920,
                                  0.536870]  #last 4 columns
    contadj_naca0012.su2_exec = "parallel_computation.py -f"
    contadj_naca0012.timeout = 1600
    contadj_naca0012.tol = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6 = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 5
    contadj_oneram6.test_vals = [-6.001400, -6.242615, -0.105160,
                                 0.149240]  #last 4 columns
    contadj_oneram6.su2_exec = "parallel_computation.py -f"
    contadj_oneram6.timeout = 1600
    contadj_oneram6.tol = 0.00001
    test_list.append(contadj_oneram6)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [
        -3.658396, -9.117436, -2.056700, 4.497000
    ]  #last 4 columns
    contadj_ns_cylinder.su2_exec = "parallel_computation.py -f"
    contadj_ns_cylinder.timeout = 1600
    contadj_ns_cylinder.tol = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [
        -2.744551, -8.216469, 0.518810, 0.229160
    ]  #last 4 columns
    contadj_ns_naca0012_sub.su2_exec = "parallel_computation.py -f"
    contadj_ns_naca0012_sub.timeout = 1600
    contadj_ns_naca0012_sub.tol = 0.00001
    test_list.append(contadj_ns_naca0012_sub)

    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [
        -1.041539, -6.578524, 1.772300, 0.620880
    ]  #last 4 columns
    contadj_ns_naca0012_trans.su2_exec = "parallel_computation.py -f"
    contadj_ns_naca0012_trans.timeout = 1600
    contadj_ns_naca0012_trans.tol = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012 = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [
        -0.814757, -5.726517, -19.169000, -2.994100
    ]  #last 4 columns
    contadj_rans_naca0012.su2_exec = "parallel_computation.py -f"
    contadj_rans_naca0012.timeout = 1600
    contadj_rans_naca0012.tol = 0.00001
    test_list.append(contadj_rans_naca0012)

    # Adjoint turbulent RAE2822
    contadj_rans_rae2822 = TestCase('contadj_rans_rae822')
    contadj_rans_rae2822.cfg_dir = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [
        -5.381632, -10.887032, -0.212470, 0.269390
    ]  #last 4 columns
    contadj_rans_rae2822.su2_exec = "parallel_computation.py -f"
    contadj_rans_rae2822.timeout = 1600
    contadj_rans_rae2822.tol = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012 = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 5
    contadj_incomp_NACA0012.test_vals = [
        -11.968536, -12.133234, 1.939900, 0.000000
    ]  #last 4 columns
    contadj_incomp_NACA0012.su2_exec = "parallel_computation.py -f"
    contadj_incomp_NACA0012.timeout = 1600
    contadj_incomp_NACA0012.tol = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [
        -5.718776, -7.020714, -2.932100, 0.000000
    ]  #last 4 columns
    contadj_incomp_cylinder.su2_exec = "parallel_computation.py -f"
    contadj_incomp_cylinder.timeout = 1600
    contadj_incomp_cylinder.tol = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################

    # RAM-C II Sphere-Cone -- 61km Altitude
    ramc = TestCase('ramc')
    ramc.cfg_dir = "tne2/ramc"
    ramc.cfg_file = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.643029, 2.849441, -4.443852,
                      0.000313]  #last 4 columns
    ramc.su2_exec = "parallel_computation.py -f"
    ramc.timeout = 1600
    ramc.tol = 0.00001
    test_list.append(ramc)

    ######################################
    ### 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.594283, -0.130745, -0.510607,
                        0.061921]  #last 4 columns
    cavity.su2_exec = "parallel_computation.py -f"
    cavity.timeout = 1600
    cavity.tol = 0.00001
    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.637313, -2.194229, 1.212769,
                                   1.605369]  #last 4 columns
    spinning_cylinder.su2_exec = "parallel_computation.py -f"
    spinning_cylinder.timeout = 1600
    spinning_cylinder.tol = 0.00001
    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.544602, 0.048576, 1.398951,
                                 2.196894]  #last 4 columns
    square_cylinder.su2_exec = "parallel_computation.py -f"
    square_cylinder.timeout = 1600
    square_cylinder.tol = 0.00001
    test_list.append(square_cylinder)

    ######################################
    ### Real_Gas                       ###
    ######################################

    # 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 = [-1.446069, 4.751345, -0.000046,
                         0.000000]  #last 4 columns
    edge_VW.su2_exec = "parallel_computation.py -f"
    edge_VW.timeout = 1600
    edge_VW.tol = 0.00001
    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 = [-1.994951, 4.175777, -0.000056,
                          0.000000]  #last 4 columns
    edge_PPR.su2_exec = "parallel_computation.py -f"
    edge_PPR.timeout = 1600
    edge_PPR.tol = 0.00001
    test_list.append(edge_PPR)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [test.run_test() for test in test_list]

    if all(pass_list):
        sys.exit(0)
    else:
        sys.exit(1)
Esempio n. 24
0
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 = 100
    channel.test_vals = [-2.984481, 2.389875, 0.008865,
                         0.027854]  #last 4 columns
    channel.su2_exec = "parallel_computation.py -f"
    channel.timeout = 1600
    channel.tol = 0.00001
    test_list.append(channel)

    # NACA0012
    naca0012 = TestCase('naca0012')
    naca0012.cfg_dir = "euler/naca0012"
    naca0012.cfg_file = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.237188, -5.641250, 0.334843,
                          0.022206]  #last 4 columns
    naca0012.su2_exec = "parallel_computation.py -f"
    naca0012.timeout = 1600
    naca0012.tol = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge
    wedge = TestCase('wedge')
    wedge.cfg_dir = "euler/wedge"
    wedge.cfg_file = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.702502, 3.923373, -0.252116,
                       0.044396]  #last 4 columns
    wedge.su2_exec = "parallel_computation.py -f"
    wedge.timeout = 1600
    wedge.tol = 0.00001
    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 = [-13.398374, -12.928436, 0.282557,
                         0.012706]  #last 4 columns
    oneram6.su2_exec = "parallel_computation.py -f"
    oneram6.timeout = 3200
    oneram6.tol = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate = TestCase('flatplate')
    flatplate.cfg_dir = "navierstokes/flatplate"
    flatplate.cfg_file = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.233923, 0.259801, -0.166790,
                           0.012722]  #last 4 columns
    flatplate.su2_exec = "parallel_computation.py -f"
    flatplate.timeout = 1600
    flatplate.tol = 0.00001
    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.757291, -1.289309, -0.125948,
                          0.625438]  #last 4 columns
    cylinder.su2_exec = "parallel_computation.py -f"
    cylinder.timeout = 1600
    cylinder.tol = 0.00001
    test_list.append(cylinder)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.637762, -5.450251, 0.890401,
                            0.025056]  #last 4 columns
    rae2822_sa.su2_exec = "parallel_computation.py -f"
    rae2822_sa.timeout = 1600
    rae2822_sa.tol = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.217020, 4.023774, 0.892665,
                             0.025209]  #last 4 columns
    rae2822_sst.su2_exec = "parallel_computation.py -f"
    rae2822_sst.timeout = 1600
    rae2822_sst.tol = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.073540, -7.354716, -0.187154,
                                0.011105]  #last 4 columns
    turb_flatplate.su2_exec = "parallel_computation.py -f"
    turb_flatplate.timeout = 1600
    turb_flatplate.tol = 0.00001
    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.327509, -6.563372, 0.230438,
                              0.155815]  #last 4 columns
    turb_oneram6.su2_exec = "parallel_computation.py -f"
    turb_oneram6.timeout = 3200
    turb_oneram6.tol = 0.00001
    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 = [-12.000764, -9.145363, 1.070528,
                                  0.019417]  #last 4 columns
    turb_naca0012_sa.su2_exec = "parallel_computation.py -f"
    turb_naca0012_sa.timeout = 3200
    turb_naca0012_sa.tol = 0.00001
    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 = [-15.039665, -7.220109, 1.059622,
                                   0.019138]  #last 4 columns
    turb_naca0012_sst.su2_exec = "parallel_computation.py -f"
    turb_naca0012_sst.timeout = 3200
    turb_naca0012_sst.tol = 0.00001
    test_list.append(turb_naca0012_sst)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.709508, -11.006161, -0.000017,
                                   0.211696]  #last 4 columns
    inc_turb_naca0012.su2_exec = "parallel_computation.py -f"
    inc_turb_naca0012.timeout = 1600
    inc_turb_naca0012.tol = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012 = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-9.783712, -15.192812, 0.300920,
                                  0.536870]  #last 4 columns
    contadj_naca0012.su2_exec = "parallel_computation.py -f"
    contadj_naca0012.timeout = 1600
    contadj_naca0012.tol = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6 = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 10
    contadj_oneram6.test_vals = [-12.132862, -12.704820, 0.685900,
                                 0.140920]  #last 4 columns
    contadj_oneram6.su2_exec = "parallel_computation.py -f"
    contadj_oneram6.timeout = 1600
    contadj_oneram6.tol = 0.00001
    test_list.append(contadj_oneram6)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [
        -3.658396, -9.117436, -2.056700, 4.497000
    ]  #last 4 columns
    contadj_ns_cylinder.su2_exec = "parallel_computation.py -f"
    contadj_ns_cylinder.timeout = 1600
    contadj_ns_cylinder.tol = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [
        -2.744551, -8.216469, 0.518810, 0.229160
    ]  #last 4 columns
    contadj_ns_naca0012_sub.su2_exec = "parallel_computation.py -f"
    contadj_ns_naca0012_sub.timeout = 1600
    contadj_ns_naca0012_sub.tol = 0.00001
    test_list.append(contadj_ns_naca0012_sub)

    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [
        -1.041539, -6.578524, 1.772300, 0.620880
    ]  #last 4 columns
    contadj_ns_naca0012_trans.su2_exec = "parallel_computation.py -f"
    contadj_ns_naca0012_trans.timeout = 1600
    contadj_ns_naca0012_trans.tol = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012 = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [
        -0.814757, -5.726517, -19.169000, -2.994100
    ]  #last 4 columns
    contadj_rans_naca0012.su2_exec = "parallel_computation.py -f"
    contadj_rans_naca0012.timeout = 1600
    contadj_rans_naca0012.tol = 0.00001
    test_list.append(contadj_rans_naca0012)

    # Adjoint turbulent RAE2822
    contadj_rans_rae2822 = TestCase('contadj_rans_rae822')
    contadj_rans_rae2822.cfg_dir = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [
        -5.381632, -10.887032, -0.212470, 0.269390
    ]  #last 4 columns
    contadj_rans_rae2822.su2_exec = "parallel_computation.py -f"
    contadj_rans_rae2822.timeout = 1600
    contadj_rans_rae2822.tol = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012 = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 5
    contadj_incomp_NACA0012.test_vals = [
        -11.968536, -12.133235, 1.939900, 0.000000
    ]  #last 4 columns
    contadj_incomp_NACA0012.su2_exec = "parallel_computation.py -f"
    contadj_incomp_NACA0012.timeout = 1600
    contadj_incomp_NACA0012.tol = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [
        -5.718776, -7.020714, -2.932100, 0.000000
    ]  #last 4 columns
    contadj_incomp_cylinder.su2_exec = "parallel_computation.py -f"
    contadj_incomp_cylinder.timeout = 1600
    contadj_incomp_cylinder.tol = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################

    # RAM-C II Sphere-Cone -- 61km Altitude
    ramc = TestCase('ramc')
    ramc.cfg_dir = "tne2/ramc"
    ramc.cfg_file = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.643029, 2.849441, -4.443852,
                      0.000313]  #last 4 columns
    ramc.su2_exec = "parallel_computation.py -f"
    ramc.timeout = 1600
    ramc.tol = 0.00001
    test_list.append(ramc)

    ######################################
    ### 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.594283, -0.130745, -0.510607,
                        0.061921]  #last 4 columns
    cavity.su2_exec = "parallel_computation.py -f"
    cavity.timeout = 1600
    cavity.tol = 0.00001
    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.637313, -2.194229, 1.212769,
                                   1.605369]  #last 4 columns
    spinning_cylinder.su2_exec = "parallel_computation.py -f"
    spinning_cylinder.timeout = 1600
    spinning_cylinder.tol = 0.00001
    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.544602, 0.048576, 1.398951,
                                 2.196894]  #last 4 columns
    square_cylinder.su2_exec = "parallel_computation.py -f"
    square_cylinder.timeout = 1600
    square_cylinder.tol = 0.00001
    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.977531, 3.481790, -0.014552,
                           -0.004969]  #last 4 columns
    sine_gust.su2_exec = "parallel_computation.py -f"
    sine_gust.timeout = 1600
    sine_gust.tol = 0.00001
    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.077319, 0.036428, -1.685289e-03,
                             -1.129111e-04]  #last 4 columns
    aeroelastic.su2_exec = "parallel_computation.py -f"
    aeroelastic.timeout = 1600
    aeroelastic.tol = 0.000001
    aeroelastic.unsteady = True
    test_list.append(aeroelastic)

    ######################################
    ### 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 = [-1.446201, 4.751213, -0.000046,
                         0.000000]  #last 4 columns
    edge_VW.su2_exec = "parallel_computation.py -f"
    edge_VW.timeout = 1600
    edge_VW.tol = 0.00001
    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 = [-1.995058, 4.175675, -0.000056,
                          0.000000]  #last 4 columns
    edge_PPR.su2_exec = "parallel_computation.py -f"
    edge_PPR.timeout = 1600
    edge_PPR.tol = 0.00001
    test_list.append(edge_PPR)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [test.run_test() for test in test_list]

    # Tests summary
    print '=================================================================='
    print 'Summary of the parallel tests'
    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)
Esempio n. 25
0
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 = 100
    channel.test_vals = [-3.071007, 2.301191, 0.008562, 0.028922] #last 4 columns
    channel.su2_exec  = "parallel_computation.py -f"
    channel.timeout   = 1600
    channel.tol       = 0.00001
    test_list.append(channel)

    # NACA0012 
    naca0012           = TestCase('naca0012')
    naca0012.cfg_dir   = "euler/naca0012"
    naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.237188, -5.641250, 0.334843, 0.022206] #last 4 columns
    naca0012.su2_exec  = "parallel_computation.py -f"
    naca0012.timeout   = 1600
    naca0012.tol       = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge 
    wedge           = TestCase('wedge')
    wedge.cfg_dir   = "euler/wedge"
    wedge.cfg_file  = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.690232, 3.924432, -0.252221, 0.044419] #last 4 columns
    wedge.su2_exec  = "parallel_computation.py -f"
    wedge.timeout   = 1600
    wedge.tol       = 0.00001
    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 = [-13.400678, -12.932056, 0.282557, 0.012706] #last 4 columns
    oneram6.su2_exec  = "parallel_computation.py -f"
    oneram6.timeout   = 3200
    oneram6.tol       = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate           = TestCase('flatplate')
    flatplate.cfg_dir   = "navierstokes/flatplate"
    flatplate.cfg_file  = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.231743, 0.261628, -0.166871, 0.012706] #last 4 columns
    flatplate.su2_exec  = "parallel_computation.py -f"
    flatplate.timeout   = 1600
    flatplate.tol       = 0.00001
    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.757291, -1.289309, -0.125948, 0.625438] #last 4 columns
    cylinder.su2_exec  = "parallel_computation.py -f"
    cylinder.timeout   = 1600
    cylinder.tol       = 0.00001
    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.861860, -1.399846, -1.557250, 110.230719] #last 4 columns
    cylinder_lowmach.su2_exec  = "parallel_computation.py -f"
    cylinder_lowmach.timeout   = 1600
    cylinder_lowmach.tol       = 0.00001
    test_list.append(cylinder_lowmach)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.647743, -5.442583, 0.903159, 0.025800] #last 4 columns
    rae2822_sa.su2_exec  = "parallel_computation.py -f"
    rae2822_sa.timeout   = 1600
    rae2822_sa.tol       = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.198777, 4.013989, 0.904265, 0.025941] #last 4 columns
    rae2822_sst.su2_exec  = "parallel_computation.py -f"
    rae2822_sst.timeout   = 1600
    rae2822_sst.tol       = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.071289, -7.366446, -0.187145, 0.010957] #last 4 columns
    turb_flatplate.su2_exec  = "parallel_computation.py -f"
    turb_flatplate.timeout   = 1600
    turb_flatplate.tol       = 0.00001
    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.327509, -6.563372, 0.230438, 0.155815] #last 4 columns
    turb_oneram6.su2_exec  = "parallel_computation.py -f"
    turb_oneram6.timeout   = 3200
    turb_oneram6.tol       = 0.00001
    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 = [-12.000764, -9.145363, 1.070528, 0.019417] #last 4 columns
    turb_naca0012_sa.su2_exec  = "parallel_computation.py -f"
    turb_naca0012_sa.timeout   = 3200
    turb_naca0012_sa.tol       = 0.00001
    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 = [-15.039645, -7.220177, 1.059622, 0.019138] #last 4 columns
    turb_naca0012_sst.su2_exec  = "parallel_computation.py -f"
    turb_naca0012_sst.timeout   = 3200
    turb_naca0012_sst.tol       = 0.00001
    test_list.append(turb_naca0012_sst)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.710048, -11.007498, 0.000002, 0.210441] #last 4 columns
    inc_turb_naca0012.su2_exec  = "parallel_computation.py -f"
    inc_turb_naca0012.timeout   = 1600
    inc_turb_naca0012.tol       = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012           = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir   = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file  = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-9.783712, -15.192812, 0.300920, 0.536870] #last 4 columns
    contadj_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_naca0012.timeout   = 1600
    contadj_naca0012.tol       = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6           = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir   = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file  = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 10
    contadj_oneram6.test_vals = [-12.131587, -12.703243, 0.685900, 0.140920] #last 4 columns
    contadj_oneram6.su2_exec  = "parallel_computation.py -f"
    contadj_oneram6.timeout   = 1600
    contadj_oneram6.tol       = 0.00001
    test_list.append(contadj_oneram6)


    # Inviscid WEDGE: generalized adjoint and custom DV
    contadj_wedge             = TestCase('contadj_wedge')
    contadj_wedge.cfg_dir   = "cont_adj_euler/wedge"
    contadj_wedge.cfg_file  = "inv_wedge_ROE.cfg"
    contadj_wedge.test_iter = 10
    contadj_wedge.test_vals = [-7.364977, -13.301134, 0.000266, 0.000000] #last 4 columns
    contadj_wedge.su2_exec  = "parallel_computation.py -f"
    contadj_wedge.timeout   = 1600
    contadj_wedge.tol       = 0.00001
    test_list.append(contadj_wedge)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder           = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir   = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file  = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-3.659040, -9.117773, -2.056700, 4.497000] #last 4 columns
    contadj_ns_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_ns_cylinder.timeout   = 1600
    contadj_ns_cylinder.tol       = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub           = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir   = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [-2.744551, -8.216469, 0.518810, 0.229160] #last 4 columns
    contadj_ns_naca0012_sub.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_sub.timeout   = 1600
    contadj_ns_naca0012_sub.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_sub)
    
    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans           = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir   = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [-1.041539, -6.578524, 1.772300, 0.620880] #last 4 columns
    contadj_ns_naca0012_trans.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_trans.timeout   = 1600
    contadj_ns_naca0012_trans.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_trans)
    
    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012           = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir   = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file  = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-0.814757, -5.726517, -19.169000, -2.994100] #last 4 columns
    contadj_rans_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_rans_naca0012.timeout   = 1600
    contadj_rans_naca0012.tol       = 0.00001
    test_list.append(contadj_rans_naca0012)
    
    # Adjoint turbulent RAE2822
    contadj_rans_rae2822           = TestCase('contadj_rans_rae822')
    contadj_rans_rae2822.cfg_dir   = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file  = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [-5.380929, -10.886092, -0.212470, 0.269390] #last 4 columns
    contadj_rans_rae2822.su2_exec  = "parallel_computation.py -f"
    contadj_rans_rae2822.timeout   = 1600
    contadj_rans_rae2822.tol       = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012           = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir   = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 5
    contadj_incomp_NACA0012.test_vals = [-11.968536, -12.133235, 1.939900, 0.000000] #last 4 columns
    contadj_incomp_NACA0012.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_NACA0012.timeout   = 1600
    contadj_incomp_NACA0012.tol       = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder           = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-5.718840, -7.012324, -2.932100, 0.000000] #last 4 columns
    contadj_incomp_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_cylinder.timeout   = 1600
    contadj_incomp_cylinder.tol       = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### 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.597018, -0.133158, 0.169034, 0.821371] #last 4 columns
    cavity.su2_exec  = "parallel_computation.py -f"
    cavity.timeout   = 1600
    cavity.tol       = 0.00001
    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.648320, -2.202753, 1.236836, 1.609040] #last 4 columns
    spinning_cylinder.su2_exec  = "parallel_computation.py -f"
    spinning_cylinder.timeout   = 1600
    spinning_cylinder.tol       = 0.00001
    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.544602, 0.048576, 1.398951, 2.196894] #last 4 columns
    square_cylinder.su2_exec  = "parallel_computation.py -f"
    square_cylinder.timeout   = 1600
    square_cylinder.tol       = 0.00001
    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.977531, 3.481790, -0.014552, -0.004969] #last 4 columns
    sine_gust.su2_exec  = "parallel_computation.py -f"
    sine_gust.timeout   = 1600
    sine_gust.tol       = 0.00001
    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.077169, 0.036452, -0.001685, -0.000113] #last 4 columns
    aeroelastic.su2_exec  = "parallel_computation.py -f"
    aeroelastic.timeout   = 1600
    aeroelastic.tol       = 0.000001
    aeroelastic.unsteady  = True
    test_list.append(aeroelastic) 

    ######################################
    ### 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.058481, 1.115321, -0.000009, 0.000000] #last 4 columns
    edge_VW.su2_exec  = "parallel_computation.py -f"
    edge_VW.timeout   = 1600
    edge_VW.tol       = 0.00001
    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.486409, 0.654417, -0.000037, 0.000000] #last 4 columns
    edge_PPR.su2_exec  = "parallel_computation.py -f"
    edge_PPR.timeout   = 1600
    edge_PPR.tol       = 0.00001
    test_list.append(edge_PPR)

    ##########################
    ### 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 = [-8.520066, -8.069308, -8.062384, 64095.000000] #last 4 columns
    statbeam3d.su2_exec  = "parallel_computation_fsi.py -f"
    statbeam3d.timeout   = 1600
    statbeam3d.tol       = 0.00001
    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 = [-9.420641, -5.365871, -12.430382, 6.5210e+04] #last 4 columns
    dynbeam2d.su2_exec  = "parallel_computation_fsi.py -f"
    dynbeam2d.timeout   = 1600
    dynbeam2d.tol       = 0.00001
    test_list.append(dynbeam2d)

    # FSI, 2d
    fsi2d           = TestCase('fsi2d')
    fsi2d.cfg_dir   = "fea_fsi/WallChannel_2d"
    fsi2d.cfg_file  = "configFSI_2D.cfg"
    fsi2d.test_iter = 4
    fsi2d.test_vals = [2, 0.500000, -7.779707,  -1.141608] #last 4 columns
    fsi2d.su2_exec  = "parallel_computation_fsi.py -f"
    fsi2d.timeout   = 1600
    fsi2d.tol       = 0.00001
    test_list.append(fsi2d)        

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [ test.run_test() for test in test_list ]

    # Tests summary
    print '=================================================================='
    print 'Summary of the parallel tests'
    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)
Esempio n. 26
0
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)
Esempio n. 27
0
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             ###
    ######################################

    ### 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.003000,
                                   0.012720]  #last 4 columns
    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.292159,
                                    0.052922]  #last 4 columns
    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.247124,
                                    0.085734]  #last 4 columns
    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.186570, 69.267308
    ]  #last 4 columns
    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.429387, 0.201236
    ]  #last 4 columns
    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.330906, 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.499497, -11.473637, 0.332666, 0.098280
    ]  #last 4 columns
    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 = [
        -1.909272, -6.407306, 4.284191, 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)

    ### 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.134515, 0.208523
    ]  #last 4 columns
    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.941261, 0.218432, 0.190639
    ]  #last 4 columns
    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)
Esempio n. 28
0
def main():
    '''This program runs SU^2 and ensures that the output matches specified values. 
       This will be used to do nightly checks to make sure nothing is broken. '''

    workdir = os.getcwd()

    # environment variables for SU2
    os.environ['SU2_HOME'] = '/home/ale11/.cruise/projects/parallel_regression/work/SU2'
    os.environ['SU2_RUN'] = '/home/ale11/.cruise/projects/parallel_regression/work/SU2/bin'
    os.environ['PATH'] = os.environ['PATH'] + ':' + os.environ['SU2_RUN']

    # sync SU2 repo
    os.chdir( os.environ['SU2_HOME'] )
    os.system('git pull')  

    # Build SU2_CFD in parallel using autoconf
    os.system('./configure --prefix=$SU2_HOME --with-MPI=mpicxx CXXFLAGS="-O3"')
    os.system('make clean')
    os.system('make install')

    os.chdir(os.environ['SU2_RUN'])
    if not os.path.exists("./SU2_CFD"):
        print 'Could not build SU2_CFD'
        sys.exit(1)

    if not os.path.exists("./SU2_PRT"):
        print 'Could not build SU2_PRT'
        sys.exit(1)

    os.chdir(workdir)  
    test_list = []

    ##########################
    ### Compressible Euler ###
    ##########################

    # Channel
    channel           = TestCase('channel')
    channel.cfg_dir   = "euler/channel"
    channel.cfg_file  = "inv_channel_RK.cfg"
    channel.test_iter = 100
    channel.test_vals = [-2.413232,2.965227,0.007590,0.051651]
    channel.su2_exec  = "parallel_computation.py -f"
    channel.timeout   = 1600
    channel.tol       = 0.00001
    test_list.append(channel)

    # NACA0012 
    naca0012           = TestCase('naca0012')
    naca0012.cfg_dir   = "euler/naca0012"
    naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.149012,-5.528869,0.334821,0.022212]
    naca0012.su2_exec  = "parallel_computation.py -f"
    naca0012.timeout   = 1600
    naca0012.tol       = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge 
    wedge           = TestCase('wedge')
    wedge.cfg_dir   = "euler/wedge"
    wedge.cfg_file  = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-2.680761,3.156839,-0.252403,0.044445]
    wedge.su2_exec  = "parallel_computation.py -f"
    wedge.timeout   = 1600
    wedge.tol       = 0.00001
    test_list.append(wedge)

    # ONERA M6 Wing
    oneram6           = TestCase('oneram6')
    oneram6.cfg_dir   = "euler/oneram6"
    oneram6.cfg_file  = "inv_ONERAM6_JST.cfg"
    oneram6.test_iter = 10
    oneram6.test_vals = [-4.830407,-4.275436,0.288842,0.016334]
    oneram6.su2_exec  = "parallel_computation.py -f"
    oneram6.timeout   = 3200
    oneram6.tol       = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate           = TestCase('flatplate')
    flatplate.cfg_dir   = "navierstokes/flatplate"
    flatplate.cfg_file  = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.234581,0.260131,-0.167010,0.012885]
    flatplate.su2_exec  = "parallel_computation.py -f"
    flatplate.timeout   = 1600
    flatplate.tol       = 0.00001
    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.748270,-1.281365,0.096480,-1.541539]
    cylinder.su2_exec  = "parallel_computation.py -f"
    cylinder.timeout   = 1600
    cylinder.tol       = 0.00001
    test_list.append(cylinder)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.634245,-5.433694,0.886579,0.024338] #last 4 columns
    rae2822_sa.su2_exec  = "parallel_computation.py -f"
    rae2822_sa.timeout   = 1600
    rae2822_sa.tol       = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.214299,4.029754,0.888047,0.024408] #last 4 columns
    rae2822_sst.su2_exec  = "parallel_computation.py -f"
    rae2822_sst.timeout   = 1600
    rae2822_sst.tol       = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.057473,-7.347789,-0.187197,0.010819] #last 4 columns
    turb_flatplate.su2_exec  = "parallel_computation.py -f"
    turb_flatplate.timeout   = 1600
    turb_flatplate.tol       = 0.00001
    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.327518,-6.563377,0.230436,0.155816] #last 4 columns
    turb_oneram6.su2_exec  = "parallel_computation.py -f"
    turb_oneram6.timeout   = 3200
    turb_oneram6.tol       = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012
    turb_naca0012           = TestCase('turb_naca0012')
    turb_naca0012.cfg_dir   = "rans/naca0012"
    turb_naca0012.cfg_file  = "turb_NACA0012.cfg"
    turb_naca0012.test_iter = 20
    turb_naca0012.test_vals = [-2.826348,-7.364208,-0.000065,0.803130] #last 4 columns
    turb_naca0012.su2_exec  = "parallel_computation.py -f"
    turb_naca0012.timeout   = 3200
    turb_naca0012.tol       = 0.00001
    test_list.append(turb_naca0012)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.709964,-11.007318,0.000012,0.211084] #last 4 columns
    inc_turb_naca0012.su2_exec  = "parallel_computation.py -f"
    inc_turb_naca0012.timeout   = 1600
    inc_turb_naca0012.tol       = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012           = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir   = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file  = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-12.135515,-16.000000,0.005483,0.536870] #last 4 columns
    contadj_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_naca0012.timeout   = 1600
    contadj_naca0012.tol       = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6           = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir   = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file  = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 5
    contadj_oneram6.test_vals = [-6.352088,-6.532237,-0.000023,0.147720] #last 4 columns
    contadj_oneram6.su2_exec  = "parallel_computation.py -f"
    contadj_oneram6.timeout   = 1600
    contadj_oneram6.tol       = 0.00001
    test_list.append(contadj_oneram6)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder           = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir   = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file  = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-0.586316,-6.050120,-0.032305,25.115000] #last 4 columns
    contadj_ns_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_ns_cylinder.timeout   = 1600
    contadj_ns_cylinder.tol       = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub           = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir   = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [-4.234330,-9.705736,0.005161,0.398940] #last 4 columns
    contadj_ns_naca0012_sub.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_sub.timeout   = 1600
    contadj_ns_naca0012_sub.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_sub)
    
    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans           = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir   = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [-1.810435,-6.920519,0.014614,1.020100] #last 4 columns
    contadj_ns_naca0012_trans.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_trans.timeout   = 1600
    contadj_ns_naca0012_trans.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012           = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir   = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file  = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-4.351102,-8.919996,-1.275200,-2.541400] #last 4 columns
    contadj_rans_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_rans_naca0012.timeout   = 1600
    contadj_rans_naca0012.tol       = 0.00001
    test_list.append(contadj_rans_naca0012)
    
    # Adjoint turbulent RAE2822
    contadj_rans_rae2822           = TestCase('contadj_rans_rae822')
    contadj_rans_rae2822.cfg_dir   = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file  = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [-2.872467,-8.347153,4.525800,0.360080] #last 4 columns
    contadj_rans_rae2822.su2_exec  = "parallel_computation.py -f"
    contadj_rans_rae2822.timeout   = 1600
    contadj_rans_rae2822.tol       = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012           = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir   = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 140
    contadj_incomp_NACA0012.test_vals = [-7.501598,-7.335538,0.010910,0.000000] #last 4 columns
    contadj_incomp_NACA0012.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_NACA0012.timeout   = 1600
    contadj_incomp_NACA0012.tol       = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder           = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-2.471178,-2.957206,-0.048458,0.000000] #last 4 columns
    contadj_incomp_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_cylinder.timeout   = 1600
    contadj_incomp_cylinder.tol       = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################

    # RAM-C II Sphere-Cone -- 61km Altitude
    ramc           = TestCase('ramc')
    ramc.cfg_dir   = "tne2/ramc"
    ramc.cfg_file  = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.638119,2.854417,-4.439628,0.000188]
    ramc.su2_exec  = "parallel_computation.py -f"
    ramc.timeout   = 1600
    ramc.tol       = 0.00001
    test_list.append(ramc)

    ######################################
    ### 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.739930,-0.277880,-0.151798,-3.745224]
    cavity.su2_exec  = "parallel_computation.py -f"
    cavity.timeout   = 1600
    cavity.tol       = 0.00001
    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 = [-6.621605,-1.171604,8.512933,0.300307]
    spinning_cylinder.su2_exec  = "parallel_computation.py -f"
    spinning_cylinder.timeout   = 1600
    spinning_cylinder.tol       = 0.00001
    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.542162,0.048674,1.398952,2.196894]
    square_cylinder.su2_exec  = "parallel_computation.py -f"
    square_cylinder.timeout   = 1600
    square_cylinder.tol       = 0.00001
    test_list.append(square_cylinder)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [ test.run_test() for test in test_list ]

    if all(pass_list):
        sys.exit(0)
    else:
        sys.exit(1)
Esempio n. 29
0
def main():
    '''This program runs SU^2 and ensures that the output matches specified values. 
       This will be used to do nightly checks to make sure nothing is broken. '''

    workdir = os.getcwd()

    # environment variables for SU2
    os.environ['SU2_HOME'] = '/home/ale11/.cruise/projects/parallel_regression/work/SU2'
    os.environ['SU2_RUN'] = '/home/ale11/.cruise/projects/parallel_regression/work/SU2/bin'
    os.environ['PATH'] = os.environ['PATH'] + ':' + os.environ['SU2_RUN']

    # sync SU2 repo
    os.chdir( os.environ['SU2_HOME'] )
    os.system('git pull')  

    # Build SU2_CFD in parallel using autoconf
    os.system('./configure --prefix=$SU2_HOME --with-MPI=mpicxx CXXFLAGS="-O3"')
    os.system('make clean')
    os.system('make install')

    os.chdir(os.environ['SU2_RUN'])
    if not os.path.exists("./SU2_CFD"):
        print 'Could not build SU2_CFD'
        sys.exit(1)

    if not os.path.exists("./SU2_PRT"):
        print 'Could not build SU2_PRT'
        sys.exit(1)

    os.chdir(workdir)  
    test_list = []

    ##########################
    ### Compressible Euler ###
    ##########################

    # Channel
    channel           = TestCase('channel')
    channel.cfg_dir   = "euler/channel"
    channel.cfg_file  = "inv_channel_RK.cfg"
    channel.test_iter = 100
    channel.test_vals = [-2.413846,2.965840,0.007590,0.051651]
    channel.su2_exec  = "parallel_computation.py -f"
    channel.timeout   = 1600
    channel.tol       = 0.00001
    test_list.append(channel)

    # NACA0012 
    naca0012           = TestCase('naca0012')
    naca0012.cfg_dir   = "euler/naca0012"
    naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-3.751809,-3.271265,0.136604,0.066791]
    naca0012.su2_exec  = "parallel_computation.py -f"
    naca0012.timeout   = 1600
    naca0012.tol       = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge 
    wedge           = TestCase('wedge')
    wedge.cfg_dir   = "euler/wedge"
    wedge.cfg_file  = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-2.694577,3.148295,-0.252137,0.044398]
    wedge.su2_exec  = "parallel_computation.py -f"
    wedge.timeout   = 1600
    wedge.tol       = 0.00001
    test_list.append(wedge)

    # ONERA M6 Wing
    oneram6           = TestCase('oneram6')
    oneram6.cfg_dir   = "euler/oneram6"
    oneram6.cfg_file  = "inv_ONERAM6_JST.cfg"
    oneram6.test_iter = 10
    oneram6.test_vals = [-4.819412,-4.286432,0.288842,0.016334]
    oneram6.su2_exec  = "parallel_computation.py -f"
    oneram6.timeout   = 3200
    oneram6.tol       = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate           = TestCase('flatplate')
    flatplate.cfg_dir   = "navierstokes/flatplate"
    flatplate.cfg_file  = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.142353,0.347570,0.029870,0.015971]
    flatplate.su2_exec  = "parallel_computation.py -f"
    flatplate.timeout   = 1600
    flatplate.tol       = 0.00001
    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 = [-9.727830,-9.107325,-0.047634,3.804844]
    cylinder.su2_exec  = "parallel_computation.py -f"
    cylinder.timeout   = 1600
    cylinder.tol       = 0.00001
    test_list.append(cylinder)

    ##########################
    ### Compressible RANS  ###
    ##########################

    # RAE2822
    rae2822           = TestCase('rae2822')
    rae2822.cfg_dir   = "rans/rae2822"
    rae2822.cfg_file  = "turb_SA_RAE2822.cfg"
    rae2822.test_iter = 100
    rae2822.test_vals = [-3.650797,-5.455693,0.886602,0.024346 ] #last 4 columns
    rae2822.su2_exec  = "parallel_computation.py -f"
    rae2822.timeout   = 1600
    rae2822.tol       = 0.00001
    test_list.append(rae2822)

    # 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 = 100
    turb_flatplate.test_vals = [-5.086782,-7.250991,-0.000015,0.014381] #last 4 columns
    turb_flatplate.su2_exec  = "parallel_computation.py -f"
    turb_flatplate.timeout   = 1600
    turb_flatplate.tol       = 0.00001
    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 = [-4.872687,-11.524700,0.238115,0.155977] #last 4 columns
    turb_oneram6.su2_exec  = "parallel_computation.py -f"
    turb_oneram6.timeout   = 3200
    turb_oneram6.tol       = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012
    turb_naca0012           = TestCase('turb_naca0012')
    turb_naca0012.cfg_dir   = "rans/naca0012"
    turb_naca0012.cfg_file  = "turb_NACA0012.cfg"
    turb_naca0012.test_iter = 20
    turb_naca0012.test_vals = [-7.508443,-9.210101,-0.000034,0.007944] #last 4 columns
    turb_naca0012.su2_exec  = "parallel_computation.py -f"
    turb_naca0012.timeout   = 3200
    turb_naca0012.tol       = 0.00001
    test_list.append(turb_naca0012)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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 = [-9.066924,-8.386769,-0.000003,0.008181] #last 4 columns
    inc_turb_naca0012.su2_exec  = "parallel_computation.py -f"
    inc_turb_naca0012.timeout   = 1600
    inc_turb_naca0012.tol       = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012 (To be validated with finite differences)
    contadj_naca0012           = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir   = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file  = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 100
    contadj_naca0012.test_vals = [-4.953138,-10.312798,0.006116,0.527890] #last 4 columns
    contadj_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_naca0012.timeout   = 1600
    contadj_naca0012.tol       = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid RAM-C (To be validated with finite differences)
    contadj_ram_c           = TestCase('contadj_ram_c')
    contadj_ram_c.cfg_dir   = "cont_adj_euler/ram_c"
    contadj_ram_c.cfg_file  = "inv_RAMC.cfg"
    contadj_ram_c.test_iter = 100
    contadj_ram_c.test_vals = [0.776609,-7.308868,-0.001885,0.080464] #last 4 columns
    contadj_ram_c.su2_exec  = "parallel_computation.py -f"
    contadj_ram_c.timeout   = 1600
    contadj_ram_c.tol       = 0.00001
    test_list.append(contadj_ram_c)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder           = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir   = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file  = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [2.599646,-1.977099,0.529560,179.160000] #last 4 columns
    contadj_ns_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_ns_cylinder.timeout   = 1600
    contadj_ns_cylinder.tol       = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 (To be fixed)
    contadj_ns_naca0012           = TestCase('contadj_ns_naca0012')
    contadj_ns_naca0012.cfg_dir   = "cont_adj_navierstokes/naca0012"
    contadj_ns_naca0012.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012.test_iter = 100
    contadj_ns_naca0012.test_vals = [1.515646,-3.816185,8.9793e-01,1.7569e-01] #last 4 columns
    contadj_ns_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012.timeout   = 1600
    contadj_ns_naca0012.tol       = 0.00001
    test_list.append(contadj_ns_naca0012)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012 (To be validated with finite differences)
    contadj_rans_naca0012           = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir   = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file  = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-5.356749,-8.622049,18.310000,-0.000000] #last 4 columns
    contadj_rans_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_rans_naca0012.timeout   = 1600
    contadj_rans_naca0012.tol       = 0.00001
    test_list.append(contadj_rans_naca0012)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012           = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir   = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 140
    contadj_incomp_NACA0012.test_vals = [-7.613876,-7.157641,0.011112,0.000000] #last 4 columns
    contadj_incomp_NACA0012.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_NACA0012.timeout   = 1600
    contadj_incomp_NACA0012.tol       = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder           = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-9.002264,-10.002274,0.048091,0.000000 ] #last 4 columns
    contadj_incomp_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_cylinder.timeout   = 1600
    contadj_incomp_cylinder.tol       = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################

    # RAM-C II Sphere-Cone -- 61km Altitude
    ramc           = TestCase('ramc')
    ramc.cfg_dir   = "tne2/ramc"
    ramc.cfg_file  = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.638119,2.854417,-4.439634,0.000188]
    ramc.su2_exec  = "parallel_computation.py -f"
    ramc.timeout   = 1600
    ramc.tol       = 0.00001
    test_list.append(ramc)


    ######################################
    ### RUN TESTS                      ###
    ######################################  

    pass_list = [ test.run_test() for test in test_list ]

    if all(pass_list):
        sys.exit(0)
    else:
        sys.exit(1)
Esempio n. 30
0
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.606839, -9.035212, -0.000000, 0.005688] #last 4 columns
    discadj_naca0012.su2_exec  = "SU2_CFD_AD"
    discadj_naca0012.timeout   = 1600
    discadj_naca0012.tol       = 0.00001
    test_list.append(discadj_naca0012)

    #######################################################
    ### 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 = [-1.751947, 0.485758, 0.181440, -0.000017] #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 = [-1.658566, -0.487694, 0.087556, 0.000023] #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)

    #######################################################
    ### 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 = 10
    discadj_cylinder.test_vals = [3.522068, -1.787841, -0.012030, 0.000017] #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)

    ######################################
    ### 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"
    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 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"
    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 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_disc_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)

    # Tests summary
    print '=================================================================='
    print 'Summary of the serial tests'
    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)
Esempio n. 31
0
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.606839, -9.035212, -0.000000,
                                  0.005688]  #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.724711, -4.052467, -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 = [-0.774805, -0.801209, 3.1979e+02,
                                 0.0000e+00]  #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 = [
        -1.751962, 0.485751, 0.182121, -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 = [
        -1.654903, -0.491485, 0.109157, 0.000011
    ]  #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 = [
        -3.633197, -2.544956, 0.000000, 0.000000
    ]  #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 = [
        -2.374306, -2.371564, 0.000000, 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 = [
        -3.845979, -1.031094, 0.000000, 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.845759, -2.416668, 0.000000, 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.746904, -1.544886, -0.008345,
                                  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.698165, -1.607052, -2.2500e-03, 2.7211e-05
    ]  #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)

    ###################################
    ### 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 = 9
    discadj_fea.test_vals = [-6.282767, -6.361594, -3.6413e-04,
                             -8.7087e+00]  #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 = [3.176483, 1.144873, -1040.512028,
                              -3277.663739]  #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 FSI Adjoint         ###
    ###################################

    # Structural model
    discadj_fsi = TestCase('discadj_fsi')
    discadj_fsi.cfg_dir = "disc_adj_fsi"
    discadj_fsi.cfg_file = "configAD_fsi.cfg"
    discadj_fsi.test_iter = 3000
    discadj_fsi.test_vals = [0.958848, -0.157183, 0.658415,
                             1.302076]  #last 4 columns
    discadj_fsi.su2_exec = "SU2_CFD_AD"
    discadj_fsi.timeout = 1600
    discadj_fsi.tol = 0.00001
    test_list.append(discadj_fsi)

    ######################################
    ### 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"
    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"
    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"
    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"
    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)

    # 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)
Esempio n. 32
0
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)
Esempio n. 33
0
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)
Esempio n. 34
0
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 = 100
    channel.test_vals = [-3.110240, 2.263506, 0.008686, 0.029098]  # last 4 columns
    channel.su2_exec = "SU2_CFD"
    channel.timeout = 1600
    channel.tol = 0.00001
    test_list.append(channel)

    # NACA0012
    naca0012 = TestCase("naca0012")
    naca0012.cfg_dir = "euler/naca0012"
    naca0012.cfg_file = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.191618, -5.592802, 0.334809, 0.022197]  # last 4 columns
    naca0012.su2_exec = "SU2_CFD"
    naca0012.timeout = 1600
    naca0012.tol = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge
    wedge = TestCase("wedge")
    wedge.cfg_dir = "euler/wedge"
    wedge.cfg_file = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.769374, 3.848733, -0.252191, 0.044410]  # last 4 columns
    wedge.su2_exec = "SU2_CFD"
    wedge.timeout = 1600
    wedge.tol = 0.00001
    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 = [-13.393130, -12.928941, 0.282557, 0.012706]  # last 4 columns
    oneram6.su2_exec = "SU2_CFD"
    oneram6.timeout = 9600
    oneram6.tol = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate = TestCase("flatplate")
    flatplate.cfg_dir = "navierstokes/flatplate"
    flatplate.cfg_file = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.231916, 0.261866, -0.166832, 0.012717]  # last 4 columns
    flatplate.su2_exec = "SU2_CFD"
    flatplate.timeout = 1600
    flatplate.tol = 0.00001
    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.765426, -1.297422, 0.019496, 0.310082]  # last 4 columns
    cylinder.su2_exec = "SU2_CFD"
    cylinder.timeout = 1600
    cylinder.tol = 0.00001
    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.850123, -1.388088, -0.056090, 108.140177]  # last 4 columns
    cylinder_lowmach.su2_exec = "SU2_CFD"
    cylinder_lowmach.timeout = 1600
    cylinder_lowmach.tol = 0.00001
    test_list.append(cylinder_lowmach)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.442524, -5.441383, 0.884279, 0.024730]  # last 4 columns
    rae2822_sa.su2_exec = "SU2_CFD"
    rae2822_sa.timeout = 1600
    rae2822_sa.tol = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.185243, 4.018464, 0.886786, 0.024927]  # last 4 columns
    rae2822_sst.su2_exec = "SU2_CFD"
    rae2822_sst.timeout = 1600
    rae2822_sst.tol = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.069447, -7.354601, -0.187187, 0.010831]  # last 4 columns
    turb_flatplate.su2_exec = "SU2_CFD"
    turb_flatplate.timeout = 1600
    turb_flatplate.tol = 0.00001
    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.327509, -6.563372, 0.230438, 0.155815]  # last 4 columns
    turb_oneram6.su2_exec = "SU2_CFD"
    turb_oneram6.timeout = 3200
    turb_oneram6.tol = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012 (SA, FUN3D results for finest grid: 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 = [-12.000763, -9.145363, 1.070528, 0.019417]  # last 4 columns
    turb_naca0012_sa.su2_exec = "SU2_CFD"
    turb_naca0012_sa.timeout = 3200
    turb_naca0012_sa.tol = 0.00001
    test_list.append(turb_naca0012_sa)

    # NACA0012 (SST, FUN3D results for finest grid: 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 = [-15.039675, -7.219913, 1.059622, 0.019138]  # last 4 columns
    turb_naca0012_sst.su2_exec = "SU2_CFD"
    turb_naca0012_sst.timeout = 3200
    turb_naca0012_sst.tol = 0.00001
    test_list.append(turb_naca0012_sst)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.710052, -11.007500, -0.000001, 0.210445]  # last 4 columns
    inc_turb_naca0012.su2_exec = "SU2_CFD"
    inc_turb_naca0012.timeout = 1600
    inc_turb_naca0012.tol = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012 = TestCase("contadj_naca0012")
    contadj_naca0012.cfg_dir = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-9.787554, -15.192510, 0.300920, 0.536870]  # last 4 columns
    contadj_naca0012.su2_exec = "SU2_CFD"
    contadj_naca0012.timeout = 1600
    contadj_naca0012.tol = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6 = TestCase("contadj_oneram6")
    contadj_oneram6.cfg_dir = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 10
    contadj_oneram6.test_vals = [-12.133352, -12.707213, 6.8590e-01, 1.4092e-01]  # last 4 columns
    contadj_oneram6.su2_exec = "SU2_CFD"
    contadj_oneram6.timeout = 1600
    contadj_oneram6.tol = 0.00001
    test_list.append(contadj_oneram6)

    # Inviscid WEDGE: generalized adjoint and custom DV
    contadj_wedge = TestCase("contadj_wedge")
    contadj_wedge.cfg_dir = "cont_adj_euler/wedge"
    contadj_wedge.cfg_file = "inv_wedge_ROE.cfg"
    contadj_wedge.test_iter = 10
    contadj_wedge.test_vals = [-7.364977, -13.301134, 0.000266, 0.000000]  # last 4 columns
    contadj_wedge.su2_exec = "SU2_CFD"
    contadj_wedge.timeout = 1600
    contadj_wedge.tol = 0.00001
    test_list.append(contadj_wedge)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder = TestCase("contadj_ns_cylinder")
    contadj_ns_cylinder.cfg_dir = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-3.677184, -9.141850, -2.056700, 4.497000]  # last 4 columns
    contadj_ns_cylinder.su2_exec = "SU2_CFD"
    contadj_ns_cylinder.timeout = 1600
    contadj_ns_cylinder.tol = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub = TestCase("contadj_ns_naca0012_sub")
    contadj_ns_naca0012_sub.cfg_dir = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [-2.744551, -8.216469, 0.518810, 0.229160]  # last 4 columns
    contadj_ns_naca0012_sub.su2_exec = "SU2_CFD"
    contadj_ns_naca0012_sub.timeout = 1600
    contadj_ns_naca0012_sub.tol = 0.00001
    test_list.append(contadj_ns_naca0012_sub)

    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans = TestCase("contadj_ns_naca0012_trans")
    contadj_ns_naca0012_trans.cfg_dir = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [-1.041539, -6.578524, 1.772300, 0.620880]  # last 4 columns
    contadj_ns_naca0012_trans.su2_exec = "SU2_CFD"
    contadj_ns_naca0012_trans.timeout = 1600
    contadj_ns_naca0012_trans.tol = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012 = TestCase("contadj_rans_naca0012")
    contadj_rans_naca0012.cfg_dir = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-0.814757, -5.726517, -19.169000, -2.994100]  # last 4 columns
    contadj_rans_naca0012.su2_exec = "SU2_CFD"
    contadj_rans_naca0012.timeout = 1600
    contadj_rans_naca0012.tol = 0.00001
    test_list.append(contadj_rans_naca0012)

    # Adjoint turbulent RAE2822
    contadj_rans_rae2822 = TestCase("contadj_rans_rae2822")
    contadj_rans_rae2822.cfg_dir = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [-5.377843, -10.882446, -0.212470, 0.269390]  # last 4 columns
    contadj_rans_rae2822.su2_exec = "SU2_CFD"
    contadj_rans_rae2822.timeout = 1600
    contadj_rans_rae2822.tol = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012 = TestCase("contadj_incomp_NACA0012")
    contadj_incomp_NACA0012.cfg_dir = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 5
    contadj_incomp_NACA0012.test_vals = [-11.980272, -12.146779, 1.9399, 0.000000]  # last 4 columns
    contadj_incomp_NACA0012.su2_exec = "SU2_CFD"
    contadj_incomp_NACA0012.timeout = 1600
    contadj_incomp_NACA0012.tol = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder = TestCase("contadj_incomp_cylinder")
    contadj_incomp_cylinder.cfg_dir = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-5.718622, -7.027366, -2.932100, 0.000000]  # last 4 columns
    contadj_incomp_cylinder.su2_exec = "SU2_CFD"
    contadj_incomp_cylinder.timeout = 1600
    contadj_incomp_cylinder.tol = 0.00001
    test_list.append(contadj_incomp_cylinder)

    #    ######################################
    #    ### Spectral Method                ###
    #    ######################################
    #    spectral           = TestCase('spectral')
    #    spectral.cfg_dir   = "spectral_method"
    #    spectral.cfg_file  = "spectral.cfg"
    #    spectral.test_iter = 25
    #    spectral.test_vals = [-1.621870,3.852164,0.007465,0.084358]
    #    spectral.su2_exec  = "SU2_CFD"
    #    spectral.timeout   = 1600
    #    spectral.tol       = 0.00001
    #    test_list.append(spectral)

    ######################################
    ### 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.164470, 0.051972, 2.547034]  # last 4 columns
    cavity.su2_exec = "SU2_CFD"
    cavity.timeout = 1600
    cavity.tol = 0.00001
    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.709662, -2.274900, 1.418422, 1.734206]  # last 4 columns
    spinning_cylinder.su2_exec = "SU2_CFD"
    spinning_cylinder.timeout = 1600
    spinning_cylinder.tol = 0.00001
    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.544603, 0.048578, 1.398951, 2.196894]  # last 4 columns
    square_cylinder.su2_exec = "SU2_CFD"
    square_cylinder.timeout = 1600
    square_cylinder.tol = 0.00001
    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.977531, 3.481790, -0.006222, -0.001342]  # last 4 columns
    sine_gust.su2_exec = "SU2_CFD"
    sine_gust.timeout = 1600
    sine_gust.tol = 0.00001
    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.077106, 0.036449, -1.684916e-03, -1.131735e-04]  # last 4 columns
    aeroelastic.su2_exec = "SU2_CFD"
    aeroelastic.timeout = 1600
    aeroelastic.tol = 0.000001
    aeroelastic.unsteady = True
    test_list.append(aeroelastic)

    ######################################
    ### NICFD                          ###
    ######################################

    # ls89_sa
    ls89_sa = TestCase("ls89_sa")
    ls89_sa.cfg_dir = "nicf/LS89"
    ls89_sa.cfg_file = "turb_SA_PR.cfg"
    ls89_sa.test_iter = 100
    ls89_sa.test_vals = [-6.383146, -13.350551, 0.069079, 0.160886]  # last 4 columns
    ls89_sa.su2_exec = "SU2_CFD"
    ls89_sa.timeout = 1600
    ls89_sa.tol = 0.00001
    test_list.append(ls89_sa)

    #    # ls89_sst
    #    ls89_sst           = TestCase('ls89_sst')
    #    ls89_sst.cfg_dir   = "nicf/LS89"
    #    ls89_sst.cfg_file  = "turb_SST_PR.cfg"
    #    ls89_sst.test_iter = 100
    #    ls89_sst.test_vals =  [-8.548266, -1.449437, 0.067986, 0.151168] #last 4 columns
    #    ls89_sst.su2_exec  = "SU2_CFD"
    #    ls89_sst.timeout   = 1600
    #    ls89_sst.tol       = 0.00001
    #    test_list.append(ls89_sst)

    # 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.055874, 1.117978, -0.000009, 0.000000]  # last 4 columns
    edge_VW.su2_exec = "SU2_CFD"
    edge_VW.timeout = 1600
    edge_VW.tol = 0.00001
    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.484387, 0.656352, -0.000037, 0.000000]  # last 4 columns
    edge_PPR.su2_exec = "SU2_CFD"
    edge_PPR.timeout = 1600
    edge_PPR.tol = 0.00001
    test_list.append(edge_PPR)

    ######################################
    ### turboSU2                       ###
    ######################################

    # Mini centrifugal turbine blade
    centrifugal_blade = TestCase("centrifugal_blade")
    centrifugal_blade.cfg_dir = "turbomachinery/centrifugal_blade"
    centrifugal_blade.cfg_file = "centrifugal_blade.cfg"
    centrifugal_blade.test_iter = 100
    centrifugal_blade.test_vals = [-9.106943, -0.460429, 1.069070e01, 3.396010e-01]  # last 4 columns
    centrifugal_blade.su2_exec = "SU2_CFD"
    centrifugal_blade.timeout = 1600
    centrifugal_blade.tol = 0.000001
    test_list.append(centrifugal_blade)

    # Mini centrifugal turbine stage
    centrifugal_stage = TestCase("centrifugal_stage")
    centrifugal_stage.cfg_dir = "turbomachinery/centrifugal_stage"
    centrifugal_stage.cfg_file = "centrifugal_stage.cfg"
    centrifugal_stage.test_iter = 100
    centrifugal_stage.test_vals = [-10.166364, 1.621172, 2.206476e01, 5.271075e-01]  # last 4 columns
    centrifugal_stage.su2_exec = "SU2_CFD"
    centrifugal_stage.timeout = 1600
    centrifugal_stage.tol = 0.000001
    test_list.append(centrifugal_stage)

    ##########################
    ### 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 = [-8.498274, -8.230638, -8.123824, 6.4095e04]  # last 4 columns
    statbeam3d.su2_exec = "SU2_CFD"
    statbeam3d.timeout = 1600
    statbeam3d.tol = 0.00001
    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 = [-9.420640, -5.365872, -12.430382, 6.5210e04]  # last 4 columns
    dynbeam2d.su2_exec = "SU2_CFD"
    dynbeam2d.timeout = 1600
    dynbeam2d.tol = 0.00001
    test_list.append(dynbeam2d)

    # FSI, 2d
    fsi2d = TestCase("fsi2d")
    fsi2d.cfg_dir = "fea_fsi/WallChannel_2d"
    fsi2d.cfg_file = "configFSI_2D.cfg"
    fsi2d.test_iter = 4
    fsi2d.test_vals = [2, 0.500000, -7.779713, -1.141613]  # last 4 columns
    fsi2d.su2_exec = "SU2_CFD"
    fsi2d.timeout = 1600
    fsi2d.tol = 0.00001
    test_list.append(fsi2d)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [test.run_test() for test in test_list]

    ######################################
    ### RUN SU2_GEO TESTS               ###
    ######################################

    # NACA0012
    naca0012_geo = TestCase("naca0012_geo")
    naca0012_geo.cfg_dir = "optimization_euler/steady_naca0012"
    naca0012_geo.cfg_file = "inv_NACA0012_adv.cfg"
    naca0012_geo.test_vals = [0.120011, 0.0816925, 0.0, 1.0]  # max thickness, area, twist, chord
    naca0012_geo.su2_exec = "SU2_GEO"
    naca0012_geo.timeout = 1600
    naca0012_geo.tol = 0.00001
    pass_list.append(naca0012_geo.run_geo())
    test_list.append(naca0012_geo)

    ######################################
    ### RUN SU2_DEF TESTS              ###
    ######################################

    # RAE2822
    rae2822_def = TestCase("rae2822_def")
    rae2822_def.cfg_dir = "optimization_rans/steady_rae2822"
    rae2822_def.cfg_file = "def_SA_RAE2822.cfg"
    rae2822_def.test_iter = 100
    rae2822_def.test_vals = [8.06616e-14]  # residual
    rae2822_def.su2_exec = "SU2_DEF"
    rae2822_def.timeout = 1600
    rae2822_def.tol = 1e-14

    pass_list.append(rae2822_def.run_def())
    test_list.append(rae2822_def)

    # Inviscid ONERAM6
    oneram6_sa_def = TestCase("oneram6_sa_def")
    oneram6_sa_def.cfg_dir = "optimization_euler/steady_oneram6"
    oneram6_sa_def.cfg_file = "def_ONERAM6.cfg"
    oneram6_sa_def.test_iter = 600
    oneram6_sa_def.test_vals = [3.46695e-13]  # residual
    oneram6_sa_def.su2_exec = "SU2_DEF"
    oneram6_sa_def.timeout = 1600
    oneram6_sa_def.tol = 1e-13

    pass_list.append(oneram6_sa_def.run_def())
    test_list.append(oneram6_sa_def)

    ######################################
    ### RUN PYTHON TESTS               ###
    ######################################

    # test continuous_adjoint.py
    contadj_euler_py = TestCase("contadj_euler_py")
    contadj_euler_py.cfg_dir = "cont_adj_euler/naca0012"
    contadj_euler_py.cfg_file = "inv_NACA0012.cfg"
    contadj_euler_py.test_iter = 10
    contadj_euler_py.su2_exec = "continuous_adjoint.py"
    contadj_euler_py.timeout = 1600
    contadj_euler_py.reference_file = "of_grad_cd.dat.ref"
    contadj_euler_py.test_file = "of_grad_cd.dat"
    pass_list.append(contadj_euler_py.run_filediff())
    test_list.append(contadj_euler_py)

    # test finite_difference.py
    findiff_euler_py = TestCase("findiff_euler_py")
    findiff_euler_py.cfg_dir = "cont_adj_euler/naca0012"
    findiff_euler_py.cfg_file = "inv_NACA0012_FD.cfg"
    findiff_euler_py.test_iter = 10
    findiff_euler_py.su2_exec = "finite_differences.py"
    findiff_euler_py.timeout = 1600
    findiff_euler_py.reference_file = "of_grad_findiff.dat.ref"
    findiff_euler_py.test_file = "FINDIFF/of_grad_findiff.dat"
    pass_list.append(findiff_euler_py.run_filediff())
    test_list.append(findiff_euler_py)

    # test shape_optimization.py
    shape_opt_euler_py = TestCase("shape_opt_euler_py")
    shape_opt_euler_py.cfg_dir = "optimization_euler/steady_naca0012"
    shape_opt_euler_py.cfg_file = "inv_NACA0012_adv.cfg"
    shape_opt_euler_py.test_iter = 1
    shape_opt_euler_py.test_vals = [1, 1, 2.134974e-05, 3.829535e-03]  # last 4 columns
    shape_opt_euler_py.su2_exec = "shape_optimization.py -f"
    shape_opt_euler_py.timeout = 1600
    shape_opt_euler_py.tol = 0.00001
    pass_list.append(shape_opt_euler_py.run_opt())
    test_list.append(shape_opt_euler_py)

    # Tests summary
    print "=================================================================="
    print "Summary of the serial tests"
    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)
Esempio n. 35
0
def main():
    '''This program runs SU^2 and ensures that the output matches specified values. 
       This will be used to do nightly checks to make sure nothing is broken. '''

    workdir = os.getcwd()

    # environment variables for SU2
    os.environ['SU2_HOME'] = '/home/ale11/.cruise/projects/parallel_regression/work/SU2'
    os.environ['SU2_RUN'] = '/home/ale11/.cruise/projects/parallel_regression/work/SU2/bin'
    os.environ['PATH'] = os.environ['PATH'] + ':' + os.environ['SU2_RUN']

    # sync SU2 repo
    os.chdir( os.environ['SU2_HOME'] )
    os.system('git fetch')
    os.system('git checkout develop')
    os.system('git pull origin develop')

    # Build SU2_CFD in parallel using autoconf
    os.system('./configure --prefix=$SU2_HOME --with-MPI=mpicxx CXXFLAGS="-O3"')
    os.system('make clean')
    os.system('make install')

    os.chdir(os.environ['SU2_RUN'])
    if not os.path.exists("./SU2_CFD"):
        print 'Could not build SU2_CFD'
        sys.exit(1)

    if not os.path.exists("./SU2_PRT"):
        print 'Could not build SU2_PRT'
        sys.exit(1)

    os.chdir(workdir)  
    test_list = []

    ##########################
    ### Compressible Euler ###
    ##########################

    # Channel
    channel           = TestCase('channel')
    channel.cfg_dir   = "euler/channel"
    channel.cfg_file  = "inv_channel_RK.cfg"
    channel.test_iter = 100
    channel.test_vals = [-3.007706, 2.358555, 0.008379, 0.028547]
    channel.su2_exec  = "parallel_computation.py -f"
    channel.timeout   = 1600
    channel.tol       = 0.00001
    test_list.append(channel)

    # NACA0012 
    naca0012           = TestCase('naca0012')
    naca0012.cfg_dir   = "euler/naca0012"
    naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.157022, -5.537399, 0.334831, 0.022209]
    naca0012.su2_exec  = "parallel_computation.py -f"
    naca0012.timeout   = 1600
    naca0012.tol       = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge 
    wedge           = TestCase('wedge')
    wedge.cfg_dir   = "euler/wedge"
    wedge.cfg_file  = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.647184, 3.989725, -0.251604, 0.044317]
    wedge.su2_exec  = "parallel_computation.py -f"
    wedge.timeout   = 1600
    wedge.tol       = 0.00001
    test_list.append(wedge)

    # ONERA M6 Wing
    oneram6           = TestCase('oneram6')
    oneram6.cfg_dir   = "euler/oneram6"
    oneram6.cfg_file  = "inv_ONERAM6_JST.cfg"
    oneram6.test_iter = 10
    oneram6.test_vals = [-4.707461, -4.138449, 0.269324, 0.018891]
    oneram6.su2_exec  = "parallel_computation.py -f"
    oneram6.timeout   = 3200
    oneram6.tol       = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate           = TestCase('flatplate')
    flatplate.cfg_dir   = "navierstokes/flatplate"
    flatplate.cfg_file  = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.232930, 0.260877, -0.166066, 0.013093]
    flatplate.su2_exec  = "parallel_computation.py -f"
    flatplate.timeout   = 1600
    flatplate.tol       = 0.00001
    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.759579, -1.292062, 0.047262, 0.139916]
    cylinder.su2_exec  = "parallel_computation.py -f"
    cylinder.timeout   = 1600
    cylinder.tol       = 0.00001
    test_list.append(cylinder)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.454436, -5.440827, 0.892572, 0.024842] #last 4 columns
    rae2822_sa.su2_exec  = "parallel_computation.py -f"
    rae2822_sa.timeout   = 1600
    rae2822_sa.tol       = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.178534, 4.029258, 0.894386, 0.024992] #last 4 columns
    rae2822_sst.su2_exec  = "parallel_computation.py -f"
    rae2822_sst.timeout   = 1600
    rae2822_sst.tol       = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.057092, -7.373256, -0.187140, 0.011347] #last 4 columns
    turb_flatplate.su2_exec  = "parallel_computation.py -f"
    turb_flatplate.timeout   = 1600
    turb_flatplate.tol       = 0.00001
    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.327515, -6.563376, 0.230436, 0.155816] #last 4 columns
    turb_oneram6.su2_exec  = "parallel_computation.py -f"
    turb_oneram6.timeout   = 3200
    turb_oneram6.tol       = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012
    turb_naca0012           = TestCase('turb_naca0012')
    turb_naca0012.cfg_dir   = "rans/naca0012"
    turb_naca0012.cfg_file  = "turb_NACA0012.cfg"
    turb_naca0012.test_iter = 20
    turb_naca0012.test_vals = [-2.826376, -7.364213, -0.000093, 0.803146] #last 4 columns
    turb_naca0012.su2_exec  = "parallel_computation.py -f"
    turb_naca0012.timeout   = 3200
    turb_naca0012.tol       = 0.00001
    test_list.append(turb_naca0012)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.709973, -11.007322, -0.000001, 0.211093] #last 4 columns
    inc_turb_naca0012.su2_exec  = "parallel_computation.py -f"
    inc_turb_naca0012.timeout   = 1600
    inc_turb_naca0012.tol       = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012           = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir   = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file  = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-12.122156, -17.630206, 0.300920, 0.536870] #last 4 columns
    contadj_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_naca0012.timeout   = 1600
    contadj_naca0012.tol       = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6           = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir   = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file  = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 5
    contadj_oneram6.test_vals = [-6.354703, -6.527803, -0.133910, 0.147720] #last 4 columns
    contadj_oneram6.su2_exec  = "parallel_computation.py -f"
    contadj_oneram6.timeout   = 1600
    contadj_oneram6.tol       = 0.00001
    test_list.append(contadj_oneram6)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder           = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir   = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file  = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-0.585239, -6.048475, -2.056900, 25.115000] #last 4 columns
    contadj_ns_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_ns_cylinder.timeout   = 1600
    contadj_ns_cylinder.tol       = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub           = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir   = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [-4.234330, -9.705735, 0.516750, 0.398940] #last 4 columns
    contadj_ns_naca0012_sub.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_sub.timeout   = 1600
    contadj_ns_naca0012_sub.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_sub)
    
    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans           = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir   = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [-1.810435, -6.920519, 1.756200, 1.020100] #last 4 columns
    contadj_ns_naca0012_trans.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_trans.timeout   = 1600
    contadj_ns_naca0012_trans.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012           = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir   = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file  = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-4.351102, -8.919996, -72.511000, -2.541400] #last 4 columns
    contadj_rans_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_rans_naca0012.timeout   = 1600
    contadj_rans_naca0012.tol       = 0.00001
    test_list.append(contadj_rans_naca0012)
    
    # Adjoint turbulent RAE2822
    contadj_rans_rae2822           = TestCase('contadj_rans_rae822')
    contadj_rans_rae2822.cfg_dir   = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file  = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [-2.903360, -8.331847, 354.020000, 0.128700] #last 4 columns
    contadj_rans_rae2822.su2_exec  = "parallel_computation.py -f"
    contadj_rans_rae2822.timeout   = 1600
    contadj_rans_rae2822.tol       = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012           = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir   = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 140
    contadj_incomp_NACA0012.test_vals = [-7.275605, -7.111247, 1.892600, 0.000000] #last 4 columns
    contadj_incomp_NACA0012.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_NACA0012.timeout   = 1600
    contadj_incomp_NACA0012.tol       = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder           = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-2.471344, -2.947390, -3.086500, 0.000000] #last 4 columns
    contadj_incomp_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_cylinder.timeout   = 1600
    contadj_incomp_cylinder.tol       = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################

    # RAM-C II Sphere-Cone -- 61km Altitude
    ramc           = TestCase('ramc')
    ramc.cfg_dir   = "tne2/ramc"
    ramc.cfg_file  = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.638119, 2.854417, -4.439628, 0.000188]
    ramc.su2_exec  = "parallel_computation.py -f"
    ramc.timeout   = 1600
    ramc.tol       = 0.00001
    test_list.append(ramc)

    ######################################
    ### 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.569056, -0.103736, 0.465430, 0.399409]
    cavity.su2_exec  = "parallel_computation.py -f"
    cavity.timeout   = 1600
    cavity.tol       = 0.00001
    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 = [-6.601720, -1.146034, 8.586054, 0.271493]
    spinning_cylinder.su2_exec  = "parallel_computation.py -f"
    spinning_cylinder.timeout   = 1600
    spinning_cylinder.tol       = 0.00001
    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.542156, 0.048663, 1.398952, 2.196894]
    square_cylinder.su2_exec  = "parallel_computation.py -f"
    square_cylinder.timeout   = 1600
    square_cylinder.tol       = 0.00001
    test_list.append(square_cylinder)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [ test.run_test() for test in test_list ]

    if all(pass_list):
        sys.exit(0)
    else:
        sys.exit(1)
Esempio n. 36
0
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.606839, -9.035212, -3.3386e-07, 1.8777e-01
    ]  #last 4 columns
    discadj_naca0012.su2_exec = "SU2_CFD_AD"
    discadj_naca0012.timeout = 1600
    discadj_naca0012.tol = 0.00001
    test_list.append(discadj_naca0012)

    #######################################################
    ### 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 = [
        -1.751947, 0.485758, 0.181440, -0.385110
    ]  #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 = [
        -1.658568, -0.487694, 8.7557e-02, -5.3701e-01
    ]  #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)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [test.run_test() for test in test_list]

    # Tests summary
    print '=================================================================='
    print 'Summary of the serial tests'
    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)
Esempio n. 37
0
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 = 100
    channel.test_vals = [-3.110240, 2.263506, 0.008686, 0.029098] #last 4 columns
    channel.su2_exec  = "SU2_CFD"
    channel.timeout   = 1600
    channel.tol       = 0.00001
    test_list.append(channel)

    # NACA0012 
    naca0012           = TestCase('naca0012')
    naca0012.cfg_dir   = "euler/naca0012"
    naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.191618, -5.592802, 0.334809, 0.022197] #last 4 columns
    naca0012.su2_exec  = "SU2_CFD"
    naca0012.timeout   = 1600
    naca0012.tol       = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge 
    wedge           = TestCase('wedge')
    wedge.cfg_dir   = "euler/wedge"
    wedge.cfg_file  = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.769374, 3.848733, -0.252191, 0.044410] #last 4 columns
    wedge.su2_exec  = "SU2_CFD"
    wedge.timeout   = 1600
    wedge.tol       = 0.00001
    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 = [-13.393130, -12.928941, 0.282557, 0.012706] #last 4 columns
    oneram6.su2_exec  = "SU2_CFD"
    oneram6.timeout   = 9600
    oneram6.tol       = 0.00001
    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 = 500
    fixedCL_naca0012.test_vals = [-6.707530,-1.319851,0.300017,0.019390] #last 4 columns
    fixedCL_naca0012.su2_exec  = "SU2_CFD"
    fixedCL_naca0012.timeout   = 1600
    fixedCL_naca0012.tol       = 0.00001
    test_list.append(fixedCL_naca0012)
    
    # Polar sweep of the inviscid NACA0012
    polar_naca0012           = TestCase('polar_naca0012')
    polar_naca0012.cfg_dir   = "polar/naca0012"
    polar_naca0012.cfg_file  = "inv_NACA0012.cfg"
    polar_naca0012.polar     = True
    polar_naca0012.test_iter = 10
    polar_naca0012.test_vals = [-1.319488, 4.112397, 0.011954, 0.009584] #last 4 columns
    polar_naca0012.su2_exec  = "compute_polar.py -n 1 -i 11"
    polar_naca0012.timeout   = 1600
    polar_naca0012.tol       = 0.00001
    test_list.append(polar_naca0012)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate           = TestCase('flatplate')
    flatplate.cfg_dir   = "navierstokes/flatplate"
    flatplate.cfg_file  = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.231916, 0.261866, -0.166832, 0.012717] #last 4 columns
    flatplate.su2_exec  = "SU2_CFD"
    flatplate.timeout   = 1600
    flatplate.tol       = 0.00001
    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.765426, -1.297422, 0.019496, 0.310082] #last 4 columns
    cylinder.su2_exec  = "SU2_CFD"
    cylinder.timeout   = 1600
    cylinder.tol       = 0.00001
    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.850123, -1.388088, -0.056090, 108.140177] #last 4 columns
    cylinder_lowmach.su2_exec  = "SU2_CFD"
    cylinder_lowmach.timeout   = 1600
    cylinder_lowmach.tol       = 0.00001
    test_list.append(cylinder_lowmach)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.442524, -5.441383, 0.884279, 0.024730] #last 4 columns
    rae2822_sa.su2_exec  = "SU2_CFD"
    rae2822_sa.timeout   = 1600
    rae2822_sa.tol       = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.185243, 4.018464, 0.886786, 0.024927] #last 4 columns
    rae2822_sst.su2_exec  = "SU2_CFD"
    rae2822_sst.timeout   = 1600
    rae2822_sst.tol       = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.069447, -7.354601, -0.187187, 0.010831] #last 4 columns
    turb_flatplate.su2_exec  = "SU2_CFD"
    turb_flatplate.timeout   = 1600
    turb_flatplate.tol       = 0.00001
    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.327509, -6.563372, 0.230438, 0.155815]#last 4 columns
    turb_oneram6.su2_exec  = "SU2_CFD"
    turb_oneram6.timeout   = 3200
    turb_oneram6.tol       = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012 (SA, FUN3D results for finest grid: 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 = [-12.000763, -9.145363, 1.070528, 0.019417] #last 4 columns
    turb_naca0012_sa.su2_exec  = "SU2_CFD"
    turb_naca0012_sa.timeout   = 3200
    turb_naca0012_sa.tol       = 0.00001
    test_list.append(turb_naca0012_sa)
    
    # NACA0012 (SST, FUN3D results for finest grid: 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 = [-15.039675, -7.219913, 1.059622, 0.019138] #last 4 columns
    turb_naca0012_sst.su2_exec  = "SU2_CFD"
    turb_naca0012_sst.timeout   = 3200
    turb_naca0012_sst.tol       = 0.00001
    test_list.append(turb_naca0012_sst)

    # PROPELLER 
    propeller           = TestCase('propeller')
    propeller.cfg_dir   = "rans/propeller"
    propeller.cfg_file  = "propeller.cfg"
    propeller.test_iter = 10
    propeller.test_vals = [-3.380312, -8.129519, 0.000043, 0.056159] #last 4 columns
    propeller.su2_exec  = "SU2_CFD"
    propeller.timeout   = 3200
    propeller.tol       = 0.00001
    test_list.append(propeller)

    #############################
    ### 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 = [-3.590333,-3.151515,0.960192,0.013260] #last 4 columns
    inc_euler_naca0012.su2_exec  = "SU2_CFD"
    inc_euler_naca0012.timeout   = 1600
    inc_euler_naca0012.tol       = 0.00001
    test_list.append(inc_euler_naca0012)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.710052, -11.007500, -0.000001, 0.210445] #last 4 columns
    inc_turb_naca0012.su2_exec  = "SU2_CFD"
    inc_turb_naca0012.timeout   = 1600
    inc_turb_naca0012.tol       = 0.00001
    test_list.append(inc_turb_naca0012)

    #########################
    ###    Transition     ###
    #########################

    # Schubauer-Klebanoff Natural Transition
    schubauer_klebanoff_transition              = TestCase('Schubauer_Klebanoff')
    schubauer_klebanoff_transition.cfg_dir      = "transition/Schubauer_Klebanoff"
    schubauer_klebanoff_transition.cfg_file     = "transitional_BC_model_ConfigFile.cfg"
    schubauer_klebanoff_transition.test_iter    = 250
    schubauer_klebanoff_transition.test_vals    = [-9.474452, -15.630834, 0.000520, 0.001062] #last 4 columns
    schubauer_klebanoff_transition.su2_exec     = "SU2_CFD"
    schubauer_klebanoff_transition.timeout      = 1600
    schubauer_klebanoff_transition.tol          = 0.00001
    test_list.append(schubauer_klebanoff_transition)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012           = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir   = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file  = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-9.787554, -15.192510, 0.300920, 0.019552] #last 4 columns
    contadj_naca0012.su2_exec  = "SU2_CFD"
    contadj_naca0012.timeout   = 1600
    contadj_naca0012.tol       = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6           = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir   = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file  = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 10
    contadj_oneram6.test_vals = [-12.133352, -12.707213, 6.8590e-01, 0.007594] #last 4 columns
    contadj_oneram6.su2_exec  = "SU2_CFD"
    contadj_oneram6.timeout   = 1600
    contadj_oneram6.tol       = 0.00001
    test_list.append(contadj_oneram6)

    # Inviscid WEDGE: tests generalized adjoint
    contadj_wedge             = TestCase('contadj_wedge')
    contadj_wedge.cfg_dir   = "cont_adj_euler/wedge"
    contadj_wedge.cfg_file  = "inv_wedge_ROE.cfg"
    contadj_wedge.test_iter = 10
    contadj_wedge.test_vals = [2.780403, -3.223266, -1448300.000000, -0.000000] #last 4 columns
    contadj_wedge.su2_exec  = "SU2_CFD"
    contadj_wedge.timeout   = 1600
    contadj_wedge.tol       = 0.00001
    test_list.append(contadj_wedge)
    
    # Inviscid fixed CL NACA0012
    contadj_fixedCL_naca0012           = TestCase('contadj_fixedcl_naca0012')
    contadj_fixedCL_naca0012.cfg_dir   = "fixed_cl/naca0012"
    contadj_fixedCL_naca0012.cfg_file  = "inv_NACA0012_ContAdj.cfg"
    contadj_fixedCL_naca0012.test_iter = 500
    contadj_fixedCL_naca0012.test_vals = [-2.896959, -8.484896, 0.250600, 0.000004] #last 4 columns
    contadj_fixedCL_naca0012.su2_exec  = "SU2_CFD"
    contadj_fixedCL_naca0012.timeout   = 1600
    contadj_fixedCL_naca0012.tol       = 0.00001
    test_list.append(contadj_fixedCL_naca0012)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder           = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir   = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file  = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-3.677184, -9.141850, 2.056700, -0.000000] #last 4 columns
    contadj_ns_cylinder.su2_exec  = "SU2_CFD"
    contadj_ns_cylinder.timeout   = 1600
    contadj_ns_cylinder.tol       = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub           = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir   = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [-2.744551, -8.216469, 0.518810, 0.001210] #last 4 columns
    contadj_ns_naca0012_sub.su2_exec  = "SU2_CFD"
    contadj_ns_naca0012_sub.timeout   = 1600
    contadj_ns_naca0012_sub.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_sub)
    
    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans           = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir   = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [-1.041539, -6.578524, 1.772300, 0.012494] #last 4 columns
    contadj_ns_naca0012_trans.su2_exec  = "SU2_CFD"
    contadj_ns_naca0012_trans.timeout   = 1600
    contadj_ns_naca0012_trans.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012           = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir   = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file  = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-0.814757, -5.726517, 19.169000, -0.000000] #last 4 columns
    contadj_rans_naca0012.su2_exec  = "SU2_CFD"
    contadj_rans_naca0012.timeout   = 1600
    contadj_rans_naca0012.tol       = 0.00001
    test_list.append(contadj_rans_naca0012)
    
    # Adjoint turbulent RAE2822
    contadj_rans_rae2822           = TestCase('contadj_rans_rae2822')
    contadj_rans_rae2822.cfg_dir   = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file  = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [-5.377843, -10.882446, -0.212470, 0.005448] #last 4 columns
    contadj_rans_rae2822.su2_exec  = "SU2_CFD"
    contadj_rans_rae2822.timeout   = 1600
    contadj_rans_rae2822.tol       = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012           = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir   = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 5
    contadj_incomp_NACA0012.test_vals = [-11.980272, -12.146779, 1.9399, 0.000000] #last 4 columns
    contadj_incomp_NACA0012.su2_exec  = "SU2_CFD"
    contadj_incomp_NACA0012.timeout   = 1600
    contadj_incomp_NACA0012.tol       = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder           = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-5.718622, -7.027366, 2.932100, 0.000000] #last 4 columns
    contadj_incomp_cylinder.su2_exec  = "SU2_CFD"
    contadj_incomp_cylinder.timeout   = 1600
    contadj_incomp_cylinder.tol       = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### 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.569573, 3.941896, 0.008780, 0.079775] #last 4 columns
    harmonic_balance.su2_exec  = "SU2_CFD"
    harmonic_balance.timeout   = 1600
    harmonic_balance.tol       = 0.00001
    test_list.append(harmonic_balance)

    ######################################
    ### 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.164470, 0.051972, 2.547034] #last 4 columns
    cavity.su2_exec  = "SU2_CFD"
    cavity.timeout   = 1600
    cavity.tol       = 0.00001
    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.709662, -2.274900, 1.418422, 1.734206] #last 4 columns
    spinning_cylinder.su2_exec  = "SU2_CFD"
    spinning_cylinder.timeout   = 1600
    spinning_cylinder.tol       = 0.00001
    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.166406,0.076804,1.398548,2.197047] #last 4 columns
    square_cylinder.su2_exec  = "SU2_CFD"
    square_cylinder.timeout   = 1600
    square_cylinder.tol       = 0.00001
    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.977531, 3.481790, -0.006222, -0.001342] #last 4 columns
    sine_gust.su2_exec  = "SU2_CFD"
    sine_gust.timeout   = 1600
    sine_gust.tol       = 0.00001
    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.077106, 0.036449, -1.684916e-03, -1.131735e-04] #last 4 columns
    aeroelastic.su2_exec  = "SU2_CFD"
    aeroelastic.timeout   = 1600
    aeroelastic.tol       = 0.000001
    aeroelastic.unsteady  = True
    test_list.append(aeroelastic) 

    ######################################
    ### NICFD                          ###
    ######################################

    # ls89_sa
    ls89_sa           = TestCase('ls89_sa')
    ls89_sa.cfg_dir   = "nicf/LS89"
    ls89_sa.cfg_file  = "turb_SA_PR.cfg"
    ls89_sa.test_iter = 100
    ls89_sa.test_vals = [-5.062991, -13.374292, 0.128005, 0.323965] #last 4 columns
    ls89_sa.su2_exec  = "SU2_CFD"
    ls89_sa.timeout   = 1600
    ls89_sa.tol       = 0.00001
    test_list.append(ls89_sa)

#    # ls89_sst
#    ls89_sst           = TestCase('ls89_sst')
#    ls89_sst.cfg_dir   = "nicf/LS89"
#    ls89_sst.cfg_file  = "turb_SST_PR.cfg"
#    ls89_sst.test_iter = 100
#    ls89_sst.test_vals =  [-8.548266, -1.449437, 0.067986, 0.151168] #last 4 columns
#    ls89_sst.su2_exec  = "SU2_CFD"
#    ls89_sst.timeout   = 1600
#    ls89_sst.tol       = 0.00001
#    test_list.append(ls89_sst)

    # 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.055874, 1.117978, -0.000009, 0.000000] #last 4 columns
    edge_VW.su2_exec  = "SU2_CFD"
    edge_VW.timeout   = 1600
    edge_VW.tol       = 0.00001
    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.484387, 0.656352, -0.000037, 0.000000] #last 4 columns
    edge_PPR.su2_exec  = "SU2_CFD"
    edge_PPR.timeout   = 1600
    edge_PPR.tol       = 0.00001
    test_list.append(edge_PPR)
    
    
    ######################################
    ### turboSU2                       ###
    ######################################
    
    # Mini centrifugal turbine blade
    centrifugal_blade           = TestCase('centrifugal_blade')
    centrifugal_blade.cfg_dir   = "turbomachinery/centrifugal_blade"
    centrifugal_blade.cfg_file  = "centrifugal_blade.cfg"
    centrifugal_blade.test_iter = 100
    centrifugal_blade.test_vals = [-9.106943, -0.460429, 1.069070e+01, 3.396010e-01] #last 4 columns
    centrifugal_blade.su2_exec  = "SU2_CFD"
    centrifugal_blade.timeout   = 1600
    centrifugal_blade.tol       = 0.000001
    test_list.append(centrifugal_blade) 
    
    
    # Mini centrifugal turbine stage
    centrifugal_stage           = TestCase('centrifugal_stage')
    centrifugal_stage.cfg_dir   = "turbomachinery/centrifugal_stage"
    centrifugal_stage.cfg_file  = "centrifugal_stage.cfg"
    centrifugal_stage.test_iter = 100
    centrifugal_stage.test_vals = [-10.166628, 1.621134, 22.064950, 0.527107] #last 4 columns
    centrifugal_stage.su2_exec  = "SU2_CFD"
    centrifugal_stage.timeout   = 1600
    centrifugal_stage.tol       = 0.000001
    test_list.append(centrifugal_stage) 

    ######################################
    ### 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 = 50
#    uniform_flow.test_vals = [-0.368836, 5.156090, 0.000000, 0.000000] #last 4 columns
#    uniform_flow.su2_exec  = "SU2_CFD"
#    uniform_flow.timeout   = 1600
#    uniform_flow.tol       = 0.000001
#    uniform_flow.unsteady  = 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_NN.cfg"
    channel_2D.test_iter = 4
    channel_2D.test_vals = [-1.498300, 4.541411, 0.000000, 0.000000] #last 4 columns
    channel_2D.su2_exec  = "SU2_CFD"
    channel_2D.timeout   = 100
    channel_2D.tol       = 0.00001
    channel_2D.unsteady  = 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_NN.cfg"
    channel_3D.test_iter = 1
    channel_3D.test_vals = [-1.899948, 4.032874, 0.000000, 0.000000] #last 4 columns
    channel_3D.su2_exec  = "SU2_CFD"
    channel_3D.timeout   = 1600
    channel_3D.tol       = 0.00001
    channel_3D.unsteady  = 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 = [-3.503708, 3.194241, 0.000000, 0.000000] #last 4 columns
#    pipe.su2_exec  = "SU2_CFD"
#    pipe.timeout   = 1600
#    pipe.tol       = 0.00001
#    pipe.unsteady  = True
#    test_list.append(pipe)

    ##########################
    ### 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 = [-8.498274, -8.230638, -8.123824, 6.4095e+04] #last 4 columns
    statbeam3d.su2_exec  = "SU2_CFD"
    statbeam3d.timeout   = 1600
    statbeam3d.tol       = 0.00001
    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 = [-9.420640, -5.365872, -12.430382, 6.5210e+04] #last 4 columns
    dynbeam2d.su2_exec  = "SU2_CFD"
    dynbeam2d.timeout   = 1600
    dynbeam2d.tol       = 0.00001
    test_list.append(dynbeam2d)

    # FSI, 2d
    fsi2d           = TestCase('fsi2d')
    fsi2d.cfg_dir   = "fea_fsi/WallChannel_2d"
    fsi2d.cfg_file  = "configFSI_2D.cfg"
    fsi2d.test_iter = 4
    fsi2d.test_vals = [2.000000, 0.500000, -7.777916, -1.139835] #last 4 columns
    fsi2d.su2_exec  = "SU2_CFD"
    fsi2d.timeout   = 1600
    fsi2d.tol       = 0.00001
    test_list.append(fsi2d)    
   

    ######################################
    ### RUN TESTS                      ###
    ######################################  

    pass_list = [ test.run_test() for test in test_list ]

    
    ######################################
    ### RUN SU2_GEO TESTS              ###
    ######################################
    
    # NACA0012
    naca0012_geo           = TestCase('naca0012_geo')
    naca0012_geo.cfg_dir   = "optimization_euler/steady_naca0012"
    naca0012_geo.cfg_file  = "inv_NACA0012_adv.cfg"
    naca0012_geo.test_vals = [0.120011, 0.0816925, 0.0, 1.0] #max thickness, area, twist, chord
    naca0012_geo.su2_exec  = "SU2_GEO"
    naca0012_geo.timeout   = 1600
    naca0012_geo.tol       = 0.00001
    pass_list.append(naca0012_geo.run_geo())
    test_list.append(naca0012_geo)

    ######################################
    ### RUN SU2_DEF TESTS              ###
    ######################################
    
    # Inviscid NACA0012 (triangles)
    naca0012_def            = TestCase('naca0012_def')
    naca0012_def.cfg_dir   = "deformation/naca0012"
    naca0012_def.cfg_file  = "def_NACA0012.cfg"
    naca0012_def.test_iter = 400
    naca0012_def.test_vals = [4.30698e-15] #residual
    naca0012_def.su2_exec  = "SU2_DEF"
    naca0012_def.timeout   = 1600
    naca0012_def.tol       = 1e-15
    
    pass_list.append(naca0012_def.run_def())
    test_list.append(naca0012_def)
    
    # RAE2822 (mixed tris + quads)
    rae2822_def            = TestCase('rae2822_def')
    rae2822_def.cfg_dir   = "deformation/rae2822"
    rae2822_def.cfg_file  = "def_RAE2822.cfg"
    rae2822_def.test_iter = 150
    rae2822_def.test_vals = [5.59336e-16] #residual
    rae2822_def.su2_exec  = "SU2_DEF"
    rae2822_def.timeout   = 1600
    rae2822_def.tol       = 1e-16
    
    pass_list.append(rae2822_def.run_def())
    test_list.append(rae2822_def)
    
    # Turb NACA4412 (quads, wall distance)
    naca4412_def            = TestCase('naca4412_def')
    naca4412_def.cfg_dir   = "deformation/naca4412"
    naca4412_def.cfg_file  = "def_NACA4412.cfg"
    naca4412_def.test_iter = 300
    naca4412_def.test_vals = [3.26428e-15] #residual
    naca4412_def.su2_exec  = "SU2_DEF"
    naca4412_def.timeout   = 1600
    naca4412_def.tol       = 1e-15
    
    pass_list.append(naca4412_def.run_def())
    test_list.append(naca4412_def)

    # Brick of tets (inverse volume)
    brick_tets_def            = TestCase('brick_tets_def')
    brick_tets_def.cfg_dir   = "deformation/brick_tets"
    brick_tets_def.cfg_file  = "def_brick_tets.cfg"
    brick_tets_def.test_iter = 50
    brick_tets_def.test_vals = [7.34025e-15] #residual
    brick_tets_def.su2_exec  = "SU2_DEF"
    brick_tets_def.timeout   = 1600
    brick_tets_def.tol       = 1e-15
    
    pass_list.append(brick_tets_def.run_def())
    test_list.append(brick_tets_def)

    # Brick of isotropic hexas (inverse volume)
    brick_hex_def           = TestCase('brick_hex_def')
    brick_hex_def.cfg_dir   = "deformation/brick_hex"
    brick_hex_def.cfg_file  = "def_brick_hex.cfg"
    brick_hex_def.test_iter = 50
    brick_hex_def.test_vals = [1.55154e-15] #residual
    brick_hex_def.su2_exec  = "SU2_DEF"
    brick_hex_def.timeout   = 1600
    brick_hex_def.tol       = 1e-15
    
    pass_list.append(brick_hex_def.run_def())
    test_list.append(brick_hex_def)

    # Brick with a pyramid layer (inverse volume)
    brick_pyra_def           = TestCase('brick_pyra_def')
    brick_pyra_def.cfg_dir   = "deformation/brick_pyra"
    brick_pyra_def.cfg_file  = "def_brick_pyra.cfg"
    brick_pyra_def.test_iter = 400
    brick_pyra_def.test_vals = [3.79432e-15] #residual
    brick_pyra_def.su2_exec  = "SU2_DEF"
    brick_pyra_def.timeout   = 1600
    brick_pyra_def.tol       = 1e-15
    
    pass_list.append(brick_pyra_def.run_def())
    test_list.append(brick_pyra_def)

    # Brick of isotropic prisms (inverse volume)
    brick_prism_def           = TestCase('brick_prism_def')
    brick_prism_def.cfg_dir   = "deformation/brick_prism"
    brick_prism_def.cfg_file  = "def_brick_prism.cfg"
    brick_prism_def.test_iter = 150
    brick_prism_def.test_vals = [9.14366e-15] #residual
    brick_prism_def.su2_exec  = "SU2_DEF"
    brick_prism_def.timeout   = 1600
    brick_prism_def.tol       = 1e-15
    
    pass_list.append(brick_prism_def.run_def())
    test_list.append(brick_prism_def)
    
    # Brick of prisms with high aspect ratio cells near the wall (wall distance)
    brick_prism_rans_def           = TestCase('brick_prism_rans_def')
    brick_prism_rans_def.cfg_dir   = "deformation/brick_prism_rans"
    brick_prism_rans_def.cfg_file  = "def_brick_prism_rans.cfg"
    brick_prism_rans_def.test_iter = 100
    brick_prism_rans_def.test_vals = [1.64462e-15] #residual
    brick_prism_rans_def.su2_exec  = "SU2_DEF"
    brick_prism_rans_def.timeout   = 1600
    brick_prism_rans_def.tol       = 1e-15
    
    pass_list.append(brick_prism_rans_def.run_def())
    test_list.append(brick_prism_rans_def)
    
    # Brick of hexas with high aspect ratio cells near the wall (inverse volume)
    brick_hex_rans_def           = TestCase('brick_hex_rans_def')
    brick_hex_rans_def.cfg_dir   = "deformation/brick_hex_rans"
    brick_hex_rans_def.cfg_file  = "def_brick_hex_rans.cfg"
    brick_hex_rans_def.test_iter = 50
    brick_hex_rans_def.test_vals = [9.26657e-16] #residual
    brick_hex_rans_def.su2_exec  = "SU2_DEF"
    brick_hex_rans_def.timeout   = 1600
    brick_hex_rans_def.tol       = 1e-16
    
    pass_list.append(brick_hex_rans_def.run_def())
    test_list.append(brick_hex_rans_def)

    # Cylindrical FFD test
    cylinder_ffd_def           = TestCase('cylinder_ffd_def')
    cylinder_ffd_def.cfg_dir   = "deformation/cylindrical_ffd"
    cylinder_ffd_def.cfg_file  = "def_cylindrical.cfg"
    cylinder_ffd_def.test_iter = 50
    cylinder_ffd_def.test_vals = [1.30556e-10] #residual
    cylinder_ffd_def.su2_exec  = "SU2_DEF"
    cylinder_ffd_def.timeout   = 1600
    cylinder_ffd_def.tol       = 1e-16

    pass_list.append(cylinder_ffd_def.run_def())
    test_list.append(cylinder_ffd_def)

    # Spherical FFD test
    sphere_ffd_def           = TestCase('sphere_ffd_def')
    sphere_ffd_def.cfg_dir   = "deformation/spherical_ffd"
    sphere_ffd_def.cfg_file  = "def_spherical.cfg"
    sphere_ffd_def.test_iter = 50
    sphere_ffd_def.test_vals = [1.09326e-10] #residual
    sphere_ffd_def.su2_exec  = "SU2_DEF"
    sphere_ffd_def.timeout   = 1600
    sphere_ffd_def.tol       = 1e-16

    pass_list.append(sphere_ffd_def.run_def())
    test_list.append(sphere_ffd_def)
    
    # Spherical FFD test using BSplines
    sphere_ffd_def_bspline           = TestCase('sphere_ffd_def_bspline')
    sphere_ffd_def_bspline.cfg_dir   = "deformation/spherical_ffd"
    sphere_ffd_def_bspline.cfg_file  = "def_spherical_bspline.cfg"
    sphere_ffd_def_bspline.test_iter = 50
    sphere_ffd_def_bspline.test_vals = [6.69927e-11] #residual
    sphere_ffd_def_bspline.su2_exec  = "SU2_DEF"
    sphere_ffd_def_bspline.timeout   = 1600
    sphere_ffd_def_bspline.tol       = 1e-16

    pass_list.append(sphere_ffd_def_bspline.run_def())
    test_list.append(sphere_ffd_def_bspline)
   
    ######################################
    ### RUN PYTHON TESTS               ###
    ###################################### 
    
    # test continuous_adjoint.py
    contadj_euler_py = TestCase('contadj_euler_py')
    contadj_euler_py.cfg_dir = "cont_adj_euler/naca0012"
    contadj_euler_py.cfg_file  = "inv_NACA0012.cfg"
    contadj_euler_py.test_iter = 10
    contadj_euler_py.su2_exec  = "continuous_adjoint.py"
    contadj_euler_py.timeout   = 1600
    contadj_euler_py.reference_file = "of_grad_cd.dat.ref"
    contadj_euler_py.test_file = "of_grad_cd.dat"
    pass_list.append(contadj_euler_py.run_filediff())
    test_list.append(contadj_euler_py)

    # test finite_difference.py
    findiff_euler_py = TestCase('findiff_euler_py')
    findiff_euler_py.cfg_dir = "cont_adj_euler/naca0012"
    findiff_euler_py.cfg_file  = "inv_NACA0012_FD.cfg"
    findiff_euler_py.test_iter = 10
    findiff_euler_py.su2_exec  = "finite_differences.py"
    findiff_euler_py.timeout   = 1600
    findiff_euler_py.reference_file = "of_grad_findiff.dat.ref"
    findiff_euler_py.test_file = "FINDIFF/of_grad_findiff.dat"
    pass_list.append(findiff_euler_py.run_filediff())
    test_list.append(findiff_euler_py)
    
    # test shape_optimization.py
    shape_opt_euler_py           = TestCase('shape_opt_euler_py')
    shape_opt_euler_py.cfg_dir   = "optimization_euler/steady_naca0012"
    shape_opt_euler_py.cfg_file  = "inv_NACA0012_adv.cfg"
    shape_opt_euler_py.test_iter = 1
    shape_opt_euler_py.test_vals = [1, 1, 2.134974E-05, 3.829535E-03] #last 4 columns
    shape_opt_euler_py.su2_exec  = "shape_optimization.py -f"
    shape_opt_euler_py.timeout   = 1600
    shape_opt_euler_py.tol       = 0.00001
    pass_list.append(shape_opt_euler_py.run_opt())
    test_list.append(shape_opt_euler_py)

    # test continuous_adjoint.py, with multiple objectives
    #contadj_multi_py            = TestCase('contadj_multi_py')
    #contadj_multi_py.cfg_dir    = "cont_adj_euler/wedge"
    #contadj_multi_py.cfg_file   = "inv_wedge_ROE_multiobj.cfg"
    #contadj_multi_py.test_iter  = 10
    #contadj_multi_py.su2_exec   = "continuous_adjoint.py"
    #contadj_multi_py.timeout    = 1600
    #contadj_multi_py.reference_file = "of_grad_combo.dat.ref"
    #contadj_multi_py.test_file  = "of_grad_combo.dat"
    #pass_list.append(contadj_multi_py.run_filediff())
    #test_list.append(contadj_multi_py)


    ##########################
    ###   Python wrapper   ###
    ##########################
    
    # NACA0012 
    pywrapper_naca0012           = TestCase('pywrapper_naca0012')
    pywrapper_naca0012.cfg_dir   = "euler/naca0012"
    pywrapper_naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    pywrapper_naca0012.test_iter = 100
    pywrapper_naca0012.test_vals = [-6.191618, -5.592802, 0.334809, 0.022197] #last 4 columns
    pywrapper_naca0012.su2_exec  = "SU2_CFD.py -f"
    pywrapper_naca0012.timeout   = 1600
    pywrapper_naca0012.tol       = 0.00001
    test_list.append(pywrapper_naca0012)
    pass_list.append(pywrapper_naca0012.run_test())

    # NACA0012 (SST, FUN3D results for finest grid: CL=1.0840, CD=0.01253)
    pywrapper_turb_naca0012_sst           = TestCase('pywrapper_turb_naca0012_sst')
    pywrapper_turb_naca0012_sst.cfg_dir   = "rans/naca0012"
    pywrapper_turb_naca0012_sst.cfg_file  = "turb_NACA0012_sst.cfg"
    pywrapper_turb_naca0012_sst.test_iter = 10
    pywrapper_turb_naca0012_sst.test_vals = [-15.039675, -7.219913, 1.059622, 0.019138] #last 4 columns
    pywrapper_turb_naca0012_sst.su2_exec  = "SU2_CFD.py -f"
    pywrapper_turb_naca0012_sst.timeout   = 3200
    pywrapper_turb_naca0012_sst.tol       = 0.00001
    test_list.append(pywrapper_turb_naca0012_sst)
    pass_list.append(pywrapper_turb_naca0012_sst.run_test())

    # Square cylinder
    pywrapper_square_cylinder           = TestCase('pywrapper_square_cylinder')
    pywrapper_square_cylinder.cfg_dir   = "unsteady/square_cylinder"
    pywrapper_square_cylinder.cfg_file  = "turb_square.cfg"
    pywrapper_square_cylinder.test_iter = 3
    pywrapper_square_cylinder.test_vals = [-1.166406,0.076804,1.398548,2.197047] #last 4 columns
    pywrapper_square_cylinder.su2_exec  = "SU2_CFD.py -f"
    pywrapper_square_cylinder.timeout   = 1600
    pywrapper_square_cylinder.tol       = 0.00001
    pywrapper_square_cylinder.unsteady  = True
    test_list.append(pywrapper_square_cylinder)
    pass_list.append(pywrapper_square_cylinder.run_test())

    # Aeroelastic
    pywrapper_aeroelastic         = TestCase('pywrapper_aeroelastic')
    pywrapper_aeroelastic.cfg_dir   = "aeroelastic"
    pywrapper_aeroelastic.cfg_file  = "aeroelastic_NACA64A010.cfg"
    pywrapper_aeroelastic.test_iter = 2
    pywrapper_aeroelastic.test_vals = [0.077106, 0.036449, -1.684916e-03, -1.131735e-04] #last 4 columns
    pywrapper_aeroelastic.su2_exec  = "SU2_CFD.py -f"
    pywrapper_aeroelastic.timeout   = 1600
    pywrapper_aeroelastic.tol       = 0.000001
    pywrapper_aeroelastic.unsteady  = True
    test_list.append(pywrapper_aeroelastic)
    pass_list.append(pywrapper_aeroelastic.run_test())

    # FSI, 2d
    pywrapper_fsi2d           = TestCase('pywrapper_fsi2d')
    pywrapper_fsi2d.cfg_dir   = "fea_fsi/WallChannel_2d"
    pywrapper_fsi2d.cfg_file  = "configFSI_2D.cfg"
    pywrapper_fsi2d.test_iter = 4
    pywrapper_fsi2d.test_vals = [2.000000, 0.500000, -7.777916, -1.139835] #last 4 columns
    pywrapper_fsi2d.su2_exec  = "SU2_CFD.py --nZone 2 --fsi True -f"
    pywrapper_fsi2d.timeout   = 1600
    pywrapper_fsi2d.tol       = 0.00001
    test_list.append(pywrapper_fsi2d)
    pass_list.append(pywrapper_fsi2d.run_test())
    
    # Tests summary
    print '=================================================================='
    print 'Summary of the serial tests'
    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)
Esempio n. 38
0
def main():
    '''This program runs SU^2 and ensures that the output matches specified values. 
       This will be used to do nightly checks to make sure nothing is broken. '''

    workdir = os.getcwd()

    # environment variables for SU2
    os.environ[
        'SU2_HOME'] = '/home/ale11/.cruise/projects/serial_regression/work/SU2'
    os.environ[
        'SU2_RUN'] = '/home/ale11/.cruise/projects/serial_regression/work/SU2/bin'
    os.environ['PATH'] = os.environ['PATH'] + ':' + os.environ['SU2_RUN']

    # sync SU2 repo
    os.chdir(os.environ['SU2_HOME'])
    os.system('git pull')

    # Build SU2_CFD in serial using autoconf
    os.system('./configure --prefix=$SU2_HOME CXXFLAGS="-O3"')
    os.system('make clean')
    os.system('make install')

    os.chdir(os.environ['SU2_RUN'])
    if not os.path.exists("./SU2_CFD"):
        print 'Could not build SU2_CFD'
        sys.exit(1)

    os.chdir(workdir)

    test_list = []

    ##########################
    ### Compressible Euler ###
    ##########################

    # Channel
    channel = TestCase('channel')
    channel.cfg_dir = "euler/channel"
    channel.cfg_file = "inv_channel_RK.cfg"
    channel.test_iter = 100
    channel.test_vals = [-2.489214, 2.821231, 0.008730, 0.053947]
    channel.su2_exec = "SU2_CFD"
    channel.timeout = 1600
    channel.tol = 0.00001
    test_list.append(channel)

    # NACA0012
    naca0012 = TestCase('naca0012')
    naca0012.cfg_dir = "euler/naca0012"
    naca0012.cfg_file = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.203359, -5.582393, 0.334818, 0.022197]
    naca0012.su2_exec = "SU2_CFD"
    naca0012.timeout = 1600
    naca0012.tol = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge
    wedge = TestCase('wedge')
    wedge.cfg_dir = "euler/wedge"
    wedge.cfg_file = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-2.703316, 3.192215, -0.252410, 0.044446]
    wedge.su2_exec = "SU2_CFD"
    wedge.timeout = 1600
    wedge.tol = 0.00001
    test_list.append(wedge)

    # ONERA M6 Wing
    oneram6 = TestCase('oneram6')
    oneram6.cfg_dir = "euler/oneram6"
    oneram6.cfg_file = "inv_ONERAM6_JST.cfg"
    oneram6.test_iter = 10
    oneram6.test_vals = [-4.830417, -4.273125, 0.290066, 0.015809]
    oneram6.su2_exec = "SU2_CFD"
    oneram6.timeout = 9600
    oneram6.tol = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate = TestCase('flatplate')
    flatplate.cfg_dir = "navierstokes/flatplate"
    flatplate.cfg_file = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.227537, 0.267007, -0.167233, 0.012854]
    flatplate.su2_exec = "SU2_CFD"
    flatplate.timeout = 1600
    flatplate.tol = 0.00001
    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.764866, -1.296840, -0.024986, 0.974669]
    cylinder.su2_exec = "SU2_CFD"
    cylinder.timeout = 1600
    cylinder.tol = 0.00001
    test_list.append(cylinder)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.542705, -5.430675, 0.884353,
                            0.024153]  #last 4 columns
    rae2822_sa.su2_exec = "SU2_CFD"
    rae2822_sa.timeout = 1600
    rae2822_sa.tol = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.214015, 4.020029, 0.884881,
                             0.024141]  #last 4 columns
    rae2822_sst.su2_exec = "SU2_CFD"
    rae2822_sst.timeout = 1600
    rae2822_sst.tol = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.068405, -7.340795, -0.187223,
                                0.010395]  #last 4 columns
    turb_flatplate.su2_exec = "SU2_CFD"
    turb_flatplate.timeout = 1600
    turb_flatplate.tol = 0.00001
    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.327517, -6.563378, 0.230436,
                              0.155816]  #last 4 columns
    turb_oneram6.su2_exec = "SU2_CFD"
    turb_oneram6.timeout = 3200
    turb_oneram6.tol = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012
    turb_naca0012 = TestCase('turb_naca0012')
    turb_naca0012.cfg_dir = "rans/naca0012"
    turb_naca0012.cfg_file = "turb_NACA0012.cfg"
    turb_naca0012.test_iter = 20
    turb_naca0012.test_vals = [-2.826334, -7.364207, -0.000025,
                               0.803037]  #last 4 columns
    turb_naca0012.su2_exec = "SU2_CFD"
    turb_naca0012.timeout = 3200
    turb_naca0012.tol = 0.00001
    test_list.append(turb_naca0012)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.709986, -11.007545, 0.000008,
                                   0.210347]  #last 4 columns
    inc_turb_naca0012.su2_exec = "SU2_CFD"
    inc_turb_naca0012.timeout = 1600
    inc_turb_naca0012.tol = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012 = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-12.206764, -16.000000, 0.005483,
                                  0.536870]  #last 4 columns
    contadj_naca0012.su2_exec = "SU2_CFD"
    contadj_naca0012.timeout = 1600
    contadj_naca0012.tol = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6 = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 5
    contadj_oneram6.test_vals = [-6.353629, -6.525887, -0.000023,
                                 0.147720]  #last 4 columns
    contadj_oneram6.su2_exec = "SU2_CFD"
    contadj_oneram6.timeout = 1600
    contadj_oneram6.tol = 0.00001
    test_list.append(contadj_oneram6)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [
        -0.599698, -6.065249, -0.032305, 25.115000
    ]  #last 4 columns
    contadj_ns_cylinder.su2_exec = "SU2_CFD"
    contadj_ns_cylinder.timeout = 1600
    contadj_ns_cylinder.tol = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [
        -4.234330, -9.705736, 0.005161, 0.398940
    ]  #last 4 columns
    contadj_ns_naca0012_sub.su2_exec = "SU2_CFD"
    contadj_ns_naca0012_sub.timeout = 1600
    contadj_ns_naca0012_sub.tol = 0.00001
    test_list.append(contadj_ns_naca0012_sub)

    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [
        -1.810435, -6.920519, 0.014614, 1.020100
    ]  #last 4 columns
    contadj_ns_naca0012_trans.su2_exec = "SU2_CFD"
    contadj_ns_naca0012_trans.timeout = 1600
    contadj_ns_naca0012_trans.tol = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012 = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [
        -4.351102, -8.919996, -1.275200, -2.541400
    ]  #last 4 columns
    contadj_rans_naca0012.su2_exec = "SU2_CFD"
    contadj_rans_naca0012.timeout = 1600
    contadj_rans_naca0012.tol = 0.00001
    test_list.append(contadj_rans_naca0012)

    # Adjoint turbulent RAE2822
    contadj_rans_rae2822 = TestCase('contadj_rans_rae2822')
    contadj_rans_rae2822.cfg_dir = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [
        -2.870304, -8.350308, 4.5270e+00, 3.5527e-01
    ]  #last 4 columns
    contadj_rans_rae2822.su2_exec = "SU2_CFD"
    contadj_rans_rae2822.timeout = 1600
    contadj_rans_rae2822.tol = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012 = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 140
    contadj_incomp_NACA0012.test_vals = [
        -7.551025, -7.377690, 0.010910, 0.000000
    ]  #last 4 columns
    contadj_incomp_NACA0012.su2_exec = "SU2_CFD"
    contadj_incomp_NACA0012.timeout = 1600
    contadj_incomp_NACA0012.tol = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [
        -2.423636, -2.916834, -0.048414, 0.000000
    ]  #last 4 columns
    contadj_incomp_cylinder.su2_exec = "SU2_CFD"
    contadj_incomp_cylinder.timeout = 1600
    contadj_incomp_cylinder.tol = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################
    ramc = TestCase('ramc')
    ramc.cfg_dir = "tne2/ramc"
    ramc.cfg_file = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.638119, 2.854417, -4.439628, 0.000188]
    ramc.su2_exec = "SU2_CFD"
    ramc.timeout = 1600
    ramc.tol = 0.00001
    test_list.append(ramc)

    #    ######################################
    #    ### Spectral Method                ###
    #    ######################################
    #    spectral           = TestCase('spectral')
    #    spectral.cfg_dir   = "spectral_method"
    #    spectral.cfg_file  = "spectral.cfg"
    #    spectral.test_iter = 25
    #    spectral.test_vals = [-1.621870,3.852164,0.007465,0.084358]
    #    spectral.su2_exec  = "SU2_CFD"
    #    spectral.timeout   = 1600
    #    spectral.tol       = 0.00001
    #    test_list.append(spectral)

    ######################################
    ### 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.940515, -0.480469, 0.018068, -3.926360]
    cavity.su2_exec = "SU2_CFD"
    cavity.timeout = 1600
    cavity.tol = 0.00001
    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 = [-6.744370, -1.298814, 8.697757, 0.133608]
    spinning_cylinder.su2_exec = "SU2_CFD"
    spinning_cylinder.timeout = 1600
    spinning_cylinder.tol = 0.00001
    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.542160, 0.048661, 1.398952, 2.196894]
    square_cylinder.su2_exec = "SU2_CFD"
    square_cylinder.timeout = 1600
    square_cylinder.tol = 0.00001
    test_list.append(square_cylinder)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [test.run_test() for test in test_list]

    if all(pass_list):
        sys.exit(0)
    else:
        sys.exit(1)
Esempio n. 39
0
def main():
    '''This program runs SU^2 and ensures that the output matches specified values. 
       This will be used to do nightly checks to make sure nothing is broken. '''

    workdir = os.getcwd()

    # environment variables for SU2
    os.environ['SU2_HOME'] = '/home/ale11/.cruise/projects/serial_regression/work/SU2'
    os.environ['SU2_RUN'] = '/home/ale11/.cruise/projects/serial_regression/work/SU2/bin'
    os.environ['PATH'] = os.environ['PATH'] + ':' + os.environ['SU2_RUN']

    # sync SU2 repo
    os.chdir( os.environ['SU2_HOME'] )
    os.system('git pull')

    # Build SU2_CFD in serial using autoconf
    os.system('./configure --prefix=$SU2_HOME CXXFLAGS="-O3"')
    os.system('make clean')
    os.system('make install')

    os.chdir(os.environ['SU2_RUN'])
    if not os.path.exists("./SU2_CFD"):
        print 'Could not build SU2_CFD'
        sys.exit(1)

    os.chdir(workdir)  


    test_list = []

    ##########################
    ### Compressible Euler ###
    ##########################

    # Channel
    channel           = TestCase('channel')
    channel.cfg_dir   = "euler/channel"
    channel.cfg_file  = "inv_channel_RK.cfg"
    channel.test_iter = 100
    channel.test_vals = [-2.489827,2.821844,0.008730,0.053947]
    channel.su2_exec  = "SU2_CFD"
    channel.timeout   = 1600
    channel.tol       = 0.00001
    test_list.append(channel)

    # NACA0012 
    naca0012           = TestCase('naca0012')
    naca0012.cfg_dir   = "euler/naca0012"
    naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.195996,-5.597033,0.334818,0.022197]
    naca0012.su2_exec  = "SU2_CFD"
    naca0012.timeout   = 1600
    naca0012.tol       = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge 
    wedge           = TestCase('wedge')
    wedge.cfg_dir   = "euler/wedge"
    wedge.cfg_file  = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-2.717009,3.183742,-0.252144,0.044399]
    wedge.su2_exec  = "SU2_CFD"
    wedge.timeout   = 1600
    wedge.tol       = 0.00001
    test_list.append(wedge)

    # ONERA M6 Wing
    oneram6           = TestCase('oneram6')
    oneram6.cfg_dir   = "euler/oneram6"
    oneram6.cfg_file  = "inv_ONERAM6_JST.cfg"
    oneram6.test_iter = 10
    oneram6.test_vals = [-4.819422,-4.284121,0.290066,0.015809]
    oneram6.su2_exec  = "SU2_CFD"
    oneram6.timeout   = 9600
    oneram6.tol       = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate           = TestCase('flatplate')
    flatplate.cfg_dir   = "navierstokes/flatplate"
    flatplate.cfg_file  = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.225114,0.270273,0.020536,0.012860]
    flatplate.su2_exec  = "SU2_CFD"
    flatplate.timeout   = 1600
    flatplate.tol       = 0.00001
    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.781338,-1.335300,-0.025054,0.974312]
    cylinder.su2_exec  = "SU2_CFD"
    cylinder.timeout   = 1600
    cylinder.tol       = 0.00001
    test_list.append(cylinder)

    ##########################
    ### Compressible RANS  ###
    ##########################

    # RAE2822
    rae2822           = TestCase('rae2822')
    rae2822.cfg_dir   = "rans/rae2822"
    rae2822.cfg_file  = "turb_SA_RAE2822.cfg"
    rae2822.test_iter = 100
    rae2822.test_vals = [-3.559272,-5.452676,0.884380,0.024162] #last 4 columns
    rae2822.su2_exec  = "SU2_CFD"
    rae2822.timeout   = 1600
    rae2822.tol       = 0.00001
    test_list.append(rae2822)

    # 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 = 100
    turb_flatplate.test_vals = [-5.074224,-7.332708,0.000505,0.010354] #last 4 columns
    turb_flatplate.su2_exec  = "SU2_CFD"
    turb_flatplate.timeout   = 1600
    turb_flatplate.tol       = 0.00001
    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.343659,-6.584583,0.230390,0.155769]#last 4 columns
    turb_oneram6.su2_exec  = "SU2_CFD"
    turb_oneram6.timeout   = 3200
    turb_oneram6.tol       = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012
    turb_naca0012           = TestCase('turb_naca0012')
    turb_naca0012.cfg_dir   = "rans/naca0012"
    turb_naca0012.cfg_file  = "turb_NACA0012.cfg"
    turb_naca0012.test_iter = 20
    turb_naca0012.test_vals = [-2.824671,-7.364141,-0.000026,0.803047] #last 4 columns
    turb_naca0012.su2_exec  = "SU2_CFD"
    turb_naca0012.timeout   = 3200
    turb_naca0012.tol       = 0.00001
    test_list.append(turb_naca0012)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.709981,-11.007623,0.000008,0.210345] #last 4 columns
    inc_turb_naca0012.su2_exec  = "SU2_CFD"
    inc_turb_naca0012.timeout   = 1600
    inc_turb_naca0012.tol       = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012           = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir   = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file  = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 100
    contadj_naca0012.test_vals = [-4.882472,-10.149505,0.006059,0.519590] #last 4 columns
    contadj_naca0012.su2_exec  = "SU2_CFD"
    contadj_naca0012.timeout   = 1600
    contadj_naca0012.tol       = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid RAM-C (To be validated with finite differences)
    contadj_ram_c           = TestCase('contadj_ram_c')
    contadj_ram_c.cfg_dir   = "cont_adj_euler/ram_c"
    contadj_ram_c.cfg_file  = "inv_RAMC.cfg"
    contadj_ram_c.test_iter = 100
    contadj_ram_c.test_vals = [0.776609,-7.308868,-0.001885,0.080464] #last 4 columns
    contadj_ram_c.su2_exec  = "SU2_CFD"
    contadj_ram_c.timeout   = 1600
    contadj_ram_c.tol       = 0.00001
    test_list.append(contadj_ram_c)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder           = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir   = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file  = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [2.467226,-2.105465,0.555930,93.625000] #last 4 columns
    contadj_ns_cylinder.su2_exec  = "SU2_CFD"
    contadj_ns_cylinder.timeout   = 1600
    contadj_ns_cylinder.tol       = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012
    contadj_ns_naca0012           = TestCase('contadj_ns_naca0012')
    contadj_ns_naca0012.cfg_dir   = "cont_adj_navierstokes/naca0012"
    contadj_ns_naca0012.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012.test_iter = 100
    contadj_ns_naca0012.test_vals = [-0.012901,-5.322715,0.896630,-0.045627] #last 4 columns
    contadj_ns_naca0012.su2_exec  = "SU2_CFD"
    contadj_ns_naca0012.timeout   = 1600
    contadj_ns_naca0012.tol       = 0.00001
    test_list.append(contadj_ns_naca0012)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012 (To be validated with finite differences)
    contadj_rans_naca0012           = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir   = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file  = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-5.356749,-8.622049,18.310000,-0.000000] #last 4 columns
    contadj_rans_naca0012.su2_exec  = "SU2_CFD"
    contadj_rans_naca0012.timeout   = 1600
    contadj_rans_naca0012.tol       = 0.00001
    test_list.append(contadj_rans_naca0012)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012           = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir   = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 140
    contadj_incomp_NACA0012.test_vals = [-7.644867,-7.179288,0.011112,0.000000] #last 4 columns
    contadj_incomp_NACA0012.su2_exec  = "SU2_CFD"
    contadj_incomp_NACA0012.timeout   = 1600
    contadj_incomp_NACA0012.tol       = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder           = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-9.002576,-10.097248,0.048091,0.000000] #last 4 columns
    contadj_incomp_cylinder.su2_exec  = "SU2_CFD"
    contadj_incomp_cylinder.timeout   = 1600
    contadj_incomp_cylinder.tol       = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################
    ramc           = TestCase('ramc')
    ramc.cfg_dir   = "tne2/ramc"
    ramc.cfg_file  = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.638119,2.854417,-4.439634,0.000188]
    ramc.su2_exec  = "SU2_CFD"
    ramc.timeout   = 1600
    ramc.tol       = 0.00001
    test_list.append(ramc)

    ######################################
    ### Spectral Method                ###
    ######################################
    spectral           = TestCase('spectral')
    spectral.cfg_dir   = "spectral_method"
    spectral.cfg_file  = "spectral.cfg"
    spectral.test_iter = 25
    spectral.test_vals = [-1.621870,3.852164,0.007465,0.084358]
    spectral.su2_exec  = "SU2_CFD"
    spectral.timeout   = 1600
    spectral.tol       = 0.00001
    test_list.append(spectral)

    ######################################
    ### 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.957018,-0.518901,0.017833,-3.937129]
    cavity.su2_exec  = "SU2_CFD"
    cavity.timeout   = 1600
    cavity.tol       = 0.00001
    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 = [-6.754859,-1.333184,8.912235,0.163860]
    spinning_cylinder.su2_exec  = "SU2_CFD"
    spinning_cylinder.timeout   = 1600
    spinning_cylinder.tol       = 0.00001
    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.585044,-1.425752,1.490389,2.340439]
    square_cylinder.su2_exec  = "SU2_CFD"
    square_cylinder.timeout   = 1600
    square_cylinder.tol       = 0.00001
    test_list.append(square_cylinder)

    ######################################
    ### RUN TESTS                      ###
    ######################################  

    pass_list = [ test.run_test() for test in test_list ]

    if all(pass_list):
        sys.exit(0)
    else:
        sys.exit(1)
Esempio n. 40
0
def main():
    '''This program runs SU^2 and ensures that the output matches specified values. 
       This will be used to do nightly checks to make sure nothing is broken. '''

    workdir = os.getcwd()

    # environment variables for SU2
    os.environ[
        'SU2_HOME'] = '/home/ale11/.cruise/projects/serial_regression/work/SU2'
    os.environ[
        'SU2_RUN'] = '/home/ale11/.cruise/projects/serial_regression/work/SU2/bin'
    os.environ['PATH'] = os.environ['PATH'] + ':' + os.environ['SU2_RUN']

    # sync SU2 repo
    os.chdir(os.environ['SU2_HOME'])
    os.system('git fetch')
    os.system('git checkout develop')
    os.system('git pull origin develop')

    # Build SU2_CFD in serial using autoconf
    os.system('./configure --prefix=$SU2_HOME CXXFLAGS="-O3"')
    os.system('make clean')
    os.system('make install')

    os.chdir(os.environ['SU2_RUN'])
    if not os.path.exists("./SU2_CFD"):
        print 'Could not build SU2_CFD'
        sys.exit(1)

    os.chdir(workdir)

    test_list = []

    ##########################
    ### Compressible Euler ###
    ##########################

    # Channel
    channel = TestCase('channel')
    channel.cfg_dir = "euler/channel"
    channel.cfg_file = "inv_channel_RK.cfg"
    channel.test_iter = 100
    channel.test_vals = [-3.110240, 2.263506, 0.008686, 0.029098]
    channel.su2_exec = "SU2_CFD"
    channel.timeout = 1600
    channel.tol = 0.00001
    test_list.append(channel)

    # NACA0012
    naca0012 = TestCase('naca0012')
    naca0012.cfg_dir = "euler/naca0012"
    naca0012.cfg_file = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.198537, -5.577721, 0.334810, 0.022197]
    naca0012.su2_exec = "SU2_CFD"
    naca0012.timeout = 1600
    naca0012.tol = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge
    wedge = TestCase('wedge')
    wedge.cfg_dir = "euler/wedge"
    wedge.cfg_file = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.711318, 3.913749, -0.252131, 0.044402]
    wedge.su2_exec = "SU2_CFD"
    wedge.timeout = 1600
    wedge.tol = 0.00001
    test_list.append(wedge)

    # ONERA M6 Wing
    oneram6 = TestCase('oneram6')
    oneram6.cfg_dir = "euler/oneram6"
    oneram6.cfg_file = "inv_ONERAM6_JST.cfg"
    oneram6.test_iter = 10
    oneram6.test_vals = [-4.715342, -4.148920, 0.271678, 0.018869]
    oneram6.su2_exec = "SU2_CFD"
    oneram6.timeout = 9600
    oneram6.tol = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate = TestCase('flatplate')
    flatplate.cfg_dir = "navierstokes/flatplate"
    flatplate.cfg_file = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.228462, 0.265581, -0.166503, 0.013013]
    flatplate.su2_exec = "SU2_CFD"
    flatplate.timeout = 1600
    flatplate.tol = 0.00001
    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.765426, -1.297422, 0.019501, 0.310134]
    cylinder.su2_exec = "SU2_CFD"
    cylinder.timeout = 1600
    cylinder.tol = 0.00001
    test_list.append(cylinder)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.442525, -5.441383, 0.884279,
                            0.024730]  #last 4 columns
    rae2822_sa.su2_exec = "SU2_CFD"
    rae2822_sa.timeout = 1600
    rae2822_sa.tol = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.186943, 4.023140, 0.886788,
                             0.024927]  #last 4 columns
    rae2822_sst.su2_exec = "SU2_CFD"
    rae2822_sst.timeout = 1600
    rae2822_sst.tol = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.067553, -7.354291, -0.187192,
                                0.010831]  #last 4 columns
    turb_flatplate.su2_exec = "SU2_CFD"
    turb_flatplate.timeout = 1600
    turb_flatplate.tol = 0.00001
    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.327516, -6.563376, 0.230437,
                              0.155816]  #last 4 columns
    turb_oneram6.su2_exec = "SU2_CFD"
    turb_oneram6.timeout = 3200
    turb_oneram6.tol = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012
    turb_naca0012 = TestCase('turb_naca0012')
    turb_naca0012.cfg_dir = "rans/naca0012"
    turb_naca0012.cfg_file = "turb_NACA0012.cfg"
    turb_naca0012.test_iter = 20
    turb_naca0012.test_vals = [-2.826358, -7.364211, -0.000020,
                               0.803040]  #last 4 columns
    turb_naca0012.su2_exec = "SU2_CFD"
    turb_naca0012.timeout = 3200
    turb_naca0012.tol = 0.00001
    test_list.append(turb_naca0012)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.710052, -11.007500, -0.000001,
                                   0.210445]  #last 4 columns
    inc_turb_naca0012.su2_exec = "SU2_CFD"
    inc_turb_naca0012.timeout = 1600
    inc_turb_naca0012.tol = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012 = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-12.215877, -17.724135, 0.300920,
                                  0.536870]  #last 4 columns
    contadj_naca0012.su2_exec = "SU2_CFD"
    contadj_naca0012.timeout = 1600
    contadj_naca0012.tol = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6 = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 5
    contadj_oneram6.test_vals = [-6.354670, -6.530109, -0.133220,
                                 0.147720]  #last 4 columns
    contadj_oneram6.su2_exec = "SU2_CFD"
    contadj_oneram6.timeout = 1600
    contadj_oneram6.tol = 0.00001
    test_list.append(contadj_oneram6)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [
        -0.601729, -6.067386, -2.056900, 25.115000
    ]  #last 4 columns
    contadj_ns_cylinder.su2_exec = "SU2_CFD"
    contadj_ns_cylinder.timeout = 1600
    contadj_ns_cylinder.tol = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [
        -4.234330, -9.705736, 0.516750, 0.398940
    ]  #last 4 columns
    contadj_ns_naca0012_sub.su2_exec = "SU2_CFD"
    contadj_ns_naca0012_sub.timeout = 1600
    contadj_ns_naca0012_sub.tol = 0.00001
    test_list.append(contadj_ns_naca0012_sub)

    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [
        -1.810435, -6.920519, 1.756200, 1.020100
    ]  #last 4 columns
    contadj_ns_naca0012_trans.su2_exec = "SU2_CFD"
    contadj_ns_naca0012_trans.timeout = 1600
    contadj_ns_naca0012_trans.tol = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012 = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [
        -4.351102, -8.919996, -72.511000, -2.541400
    ]  #last 4 columns
    contadj_rans_naca0012.su2_exec = "SU2_CFD"
    contadj_rans_naca0012.timeout = 1600
    contadj_rans_naca0012.tol = 0.00001
    test_list.append(contadj_rans_naca0012)

    # Adjoint turbulent RAE2822
    contadj_rans_rae2822 = TestCase('contadj_rans_rae2822')
    contadj_rans_rae2822.cfg_dir = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [
        -2.959224, -8.349094, 354.120000, 0.106450
    ]  #last 4 columns
    contadj_rans_rae2822.su2_exec = "SU2_CFD"
    contadj_rans_rae2822.timeout = 1600
    contadj_rans_rae2822.tol = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012 = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 140
    contadj_incomp_NACA0012.test_vals = [
        -7.326112, -7.153756, 1.892600, 0.000000
    ]  #last 4 columns
    contadj_incomp_NACA0012.su2_exec = "SU2_CFD"
    contadj_incomp_NACA0012.timeout = 1600
    contadj_incomp_NACA0012.tol = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [
        -2.476381, -2.941665, -3.081400, 0.000000
    ]  #last 4 columns
    contadj_incomp_cylinder.su2_exec = "SU2_CFD"
    contadj_incomp_cylinder.timeout = 1600
    contadj_incomp_cylinder.tol = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################
    ramc = TestCase('ramc')
    ramc.cfg_dir = "tne2/ramc"
    ramc.cfg_file = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.638119, 2.854417, -4.439628, 0.000188]
    ramc.su2_exec = "SU2_CFD"
    ramc.timeout = 1600
    ramc.tol = 0.00001
    test_list.append(ramc)

    #    ######################################
    #    ### Spectral Method                ###
    #    ######################################
    #    spectral           = TestCase('spectral')
    #    spectral.cfg_dir   = "spectral_method"
    #    spectral.cfg_file  = "spectral.cfg"
    #    spectral.test_iter = 25
    #    spectral.test_vals = [-1.621870,3.852164,0.007465,0.084358]
    #    spectral.su2_exec  = "SU2_CFD"
    #    spectral.timeout   = 1600
    #    spectral.tol       = 0.00001
    #    test_list.append(spectral)

    ######################################
    ### 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.627883, -0.164418, 0.051983, 2.546202]
    cavity.su2_exec = "SU2_CFD"
    cavity.timeout = 1600
    cavity.tol = 0.00001
    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 = [-6.851254, -1.408408, 9.093772, 0.060754]
    spinning_cylinder.su2_exec = "SU2_CFD"
    spinning_cylinder.timeout = 1600
    spinning_cylinder.tol = 0.00001
    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.542156, 0.048662, 1.398952, 2.196893]
    square_cylinder.su2_exec = "SU2_CFD"
    square_cylinder.timeout = 1600
    square_cylinder.tol = 0.00001
    test_list.append(square_cylinder)

    ######################################
    ### Real_Gas                       ###
    ######################################

    # ls89_sa
    ls89_sa = TestCase('ls89_sa')
    ls89_sa.cfg_dir = "nicf/LS89"
    ls89_sa.cfg_file = "turb_SA_PR.cfg"
    ls89_sa.test_iter = 100
    ls89_sa.test_vals = [-7.042593, -12.006909, 0.067512, 0.149691]
    ls89_sa.su2_exec = "SU2_CFD"
    ls89_sa.timeout = 1600
    ls89_sa.tol = 0.00001
    test_list.append(ls89_sa)

    # ls89_sst
    ls89_sst = TestCase('ls89_sst')
    ls89_sst.cfg_dir = "nicf/LS89"
    ls89_sst.cfg_file = "turb_SST_PR.cfg"
    ls89_sst.test_iter = 100
    ls89_sst.test_vals = [-8.901539, -1.625729, 0.067796, 0.151151]
    ls89_sst.su2_exec = "SU2_CFD"
    ls89_sst.timeout = 1600
    ls89_sst.tol = 0.00001
    test_list.append(ls89_sst)

    # 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.728637, -3.272400, -0.000046, 0.000000]
    edge_VW.su2_exec = "SU2_CFD"
    edge_VW.timeout = 1600
    edge_VW.tol = 0.00001
    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 = [-6.278519, -3.849022, -0.000056, 0.000000]
    edge_PPR.su2_exec = "SU2_CFD"
    edge_PPR.timeout = 1600
    edge_PPR.tol = 0.00001
    test_list.append(edge_PPR)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [test.run_test() for test in test_list]

    if all(pass_list):
        sys.exit(0)
    else:
        sys.exit(1)
Esempio n. 41
0
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 = 100
    channel.test_vals = [-3.110240, 2.263506, 0.008686,
                         0.029098]  #last 4 columns
    channel.su2_exec = "SU2_CFD"
    channel.timeout = 1600
    channel.tol = 0.00001
    test_list.append(channel)

    # NACA0012
    naca0012 = TestCase('naca0012')
    naca0012.cfg_dir = "euler/naca0012"
    naca0012.cfg_file = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.191618, -5.592802, 0.334809,
                          0.022197]  #last 4 columns
    naca0012.su2_exec = "SU2_CFD"
    naca0012.timeout = 1600
    naca0012.tol = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge
    wedge = TestCase('wedge')
    wedge.cfg_dir = "euler/wedge"
    wedge.cfg_file = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.769374, 3.848733, -0.252191,
                       0.044410]  #last 4 columns
    wedge.su2_exec = "SU2_CFD"
    wedge.timeout = 1600
    wedge.tol = 0.00001
    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 = [-13.393130, -12.928941, 0.282557,
                         0.012706]  #last 4 columns
    oneram6.su2_exec = "SU2_CFD"
    oneram6.timeout = 9600
    oneram6.tol = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate = TestCase('flatplate')
    flatplate.cfg_dir = "navierstokes/flatplate"
    flatplate.cfg_file = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.231916, 0.261866, -0.166832,
                           0.012717]  #last 4 columns
    flatplate.su2_exec = "SU2_CFD"
    flatplate.timeout = 1600
    flatplate.tol = 0.00001
    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.765426, -1.297422, 0.019496,
                          0.310082]  #last 4 columns
    cylinder.su2_exec = "SU2_CFD"
    cylinder.timeout = 1600
    cylinder.tol = 0.00001
    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.850123, -1.388088, -0.056090,
                                  108.140177]  #last 4 columns
    cylinder_lowmach.su2_exec = "SU2_CFD"
    cylinder_lowmach.timeout = 1600
    cylinder_lowmach.tol = 0.00001
    test_list.append(cylinder_lowmach)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.442524, -5.441383, 0.884279,
                            0.024730]  #last 4 columns
    rae2822_sa.su2_exec = "SU2_CFD"
    rae2822_sa.timeout = 1600
    rae2822_sa.tol = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.185243, 4.018464, 0.886786,
                             0.024927]  #last 4 columns
    rae2822_sst.su2_exec = "SU2_CFD"
    rae2822_sst.timeout = 1600
    rae2822_sst.tol = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.069447, -7.354601, -0.187187,
                                0.010831]  #last 4 columns
    turb_flatplate.su2_exec = "SU2_CFD"
    turb_flatplate.timeout = 1600
    turb_flatplate.tol = 0.00001
    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.327509, -6.563372, 0.230438,
                              0.155815]  #last 4 columns
    turb_oneram6.su2_exec = "SU2_CFD"
    turb_oneram6.timeout = 3200
    turb_oneram6.tol = 0.00001
    test_list.append(turb_oneram6)

    # NACA0012 (SA, FUN3D results for finest grid: 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 = [-12.000763, -9.145363, 1.070528,
                                  0.019417]  #last 4 columns
    turb_naca0012_sa.su2_exec = "SU2_CFD"
    turb_naca0012_sa.timeout = 3200
    turb_naca0012_sa.tol = 0.00001
    test_list.append(turb_naca0012_sa)

    # NACA0012 (SST, FUN3D results for finest grid: 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 = [-15.039675, -7.219913, 1.059622,
                                   0.019138]  #last 4 columns
    turb_naca0012_sst.su2_exec = "SU2_CFD"
    turb_naca0012_sst.timeout = 3200
    turb_naca0012_sst.tol = 0.00001
    test_list.append(turb_naca0012_sst)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.710052, -11.007500, -0.000001,
                                   0.210445]  #last 4 columns
    inc_turb_naca0012.su2_exec = "SU2_CFD"
    inc_turb_naca0012.timeout = 1600
    inc_turb_naca0012.tol = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012 = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-9.787554, -15.192510, 0.300920,
                                  0.536870]  #last 4 columns
    contadj_naca0012.su2_exec = "SU2_CFD"
    contadj_naca0012.timeout = 1600
    contadj_naca0012.tol = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6 = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 10
    contadj_oneram6.test_vals = [
        -12.133352, -12.707213, 6.8590e-01, 1.4092e-01
    ]  #last 4 columns
    contadj_oneram6.su2_exec = "SU2_CFD"
    contadj_oneram6.timeout = 1600
    contadj_oneram6.tol = 0.00001
    test_list.append(contadj_oneram6)

    # Inviscid WEDGE: tests generalized adjoint
    contadj_wedge = TestCase('contadj_wedge')
    contadj_wedge.cfg_dir = "cont_adj_euler/wedge"
    contadj_wedge.cfg_file = "inv_wedge_ROE.cfg"
    contadj_wedge.test_iter = 10
    contadj_wedge.test_vals = [
        2.780403, -3.223266, -1448300.000000, -0.000004
    ]  #last 4 columns
    contadj_wedge.su2_exec = "SU2_CFD"
    contadj_wedge.timeout = 1600
    contadj_wedge.tol = 0.00001
    test_list.append(contadj_wedge)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-3.677184, -9.141850, 2.056700,
                                     4.497000]  #last 4 columns
    contadj_ns_cylinder.su2_exec = "SU2_CFD"
    contadj_ns_cylinder.timeout = 1600
    contadj_ns_cylinder.tol = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [
        -2.744551, -8.216469, 0.518810, 0.229160
    ]  #last 4 columns
    contadj_ns_naca0012_sub.su2_exec = "SU2_CFD"
    contadj_ns_naca0012_sub.timeout = 1600
    contadj_ns_naca0012_sub.tol = 0.00001
    test_list.append(contadj_ns_naca0012_sub)

    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [
        -1.041539, -6.578524, 1.772300, 0.620880
    ]  #last 4 columns
    contadj_ns_naca0012_trans.su2_exec = "SU2_CFD"
    contadj_ns_naca0012_trans.timeout = 1600
    contadj_ns_naca0012_trans.tol = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012 = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [
        -0.814757, -5.726517, 19.169000, -2.994100
    ]  #last 4 columns
    contadj_rans_naca0012.su2_exec = "SU2_CFD"
    contadj_rans_naca0012.timeout = 1600
    contadj_rans_naca0012.tol = 0.00001
    test_list.append(contadj_rans_naca0012)

    # Adjoint turbulent RAE2822
    contadj_rans_rae2822 = TestCase('contadj_rans_rae2822')
    contadj_rans_rae2822.cfg_dir = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [
        -5.377843, -10.882446, -0.212470, 0.269390
    ]  #last 4 columns
    contadj_rans_rae2822.su2_exec = "SU2_CFD"
    contadj_rans_rae2822.timeout = 1600
    contadj_rans_rae2822.tol = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012 = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 5
    contadj_incomp_NACA0012.test_vals = [
        -11.980272, -12.146779, 1.9399, 0.000000
    ]  #last 4 columns
    contadj_incomp_NACA0012.su2_exec = "SU2_CFD"
    contadj_incomp_NACA0012.timeout = 1600
    contadj_incomp_NACA0012.tol = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [
        -5.718622, -7.027366, 2.932100, 0.000000
    ]  #last 4 columns
    contadj_incomp_cylinder.su2_exec = "SU2_CFD"
    contadj_incomp_cylinder.timeout = 1600
    contadj_incomp_cylinder.tol = 0.00001
    test_list.append(contadj_incomp_cylinder)

    #    ######################################
    #    ### Spectral Method                ###
    #    ######################################
    #    spectral           = TestCase('spectral')
    #    spectral.cfg_dir   = "spectral_method"
    #    spectral.cfg_file  = "spectral.cfg"
    #    spectral.test_iter = 25
    #    spectral.test_vals = [-1.621870,3.852164,0.007465,0.084358]
    #    spectral.su2_exec  = "SU2_CFD"
    #    spectral.timeout   = 1600
    #    spectral.tol       = 0.00001
    #    test_list.append(spectral)

    ######################################
    ### 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.164470, 0.051972,
                        2.547034]  #last 4 columns
    cavity.su2_exec = "SU2_CFD"
    cavity.timeout = 1600
    cavity.tol = 0.00001
    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.709662, -2.274900, 1.418422,
                                   1.734206]  #last 4 columns
    spinning_cylinder.su2_exec = "SU2_CFD"
    spinning_cylinder.timeout = 1600
    spinning_cylinder.tol = 0.00001
    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.166406, 0.076804, 1.398548,
                                 2.197047]  #last 4 columns
    square_cylinder.su2_exec = "SU2_CFD"
    square_cylinder.timeout = 1600
    square_cylinder.tol = 0.00001
    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.977531, 3.481790, -0.006222,
                           -0.001342]  #last 4 columns
    sine_gust.su2_exec = "SU2_CFD"
    sine_gust.timeout = 1600
    sine_gust.tol = 0.00001
    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.077106, 0.036449, -1.684916e-03,
                             -1.131735e-04]  #last 4 columns
    aeroelastic.su2_exec = "SU2_CFD"
    aeroelastic.timeout = 1600
    aeroelastic.tol = 0.000001
    aeroelastic.unsteady = True
    test_list.append(aeroelastic)

    ######################################
    ### NICFD                          ###
    ######################################

    # ls89_sa
    ls89_sa = TestCase('ls89_sa')
    ls89_sa.cfg_dir = "nicf/LS89"
    ls89_sa.cfg_file = "turb_SA_PR.cfg"
    ls89_sa.test_iter = 100
    ls89_sa.test_vals = [-5.062991, -13.374292, 0.128005,
                         0.323965]  #last 4 columns
    ls89_sa.su2_exec = "SU2_CFD"
    ls89_sa.timeout = 1600
    ls89_sa.tol = 0.00001
    test_list.append(ls89_sa)

    #    # ls89_sst
    #    ls89_sst           = TestCase('ls89_sst')
    #    ls89_sst.cfg_dir   = "nicf/LS89"
    #    ls89_sst.cfg_file  = "turb_SST_PR.cfg"
    #    ls89_sst.test_iter = 100
    #    ls89_sst.test_vals =  [-8.548266, -1.449437, 0.067986, 0.151168] #last 4 columns
    #    ls89_sst.su2_exec  = "SU2_CFD"
    #    ls89_sst.timeout   = 1600
    #    ls89_sst.tol       = 0.00001
    #    test_list.append(ls89_sst)

    # 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.055874, 1.117978, -0.000009,
                         0.000000]  #last 4 columns
    edge_VW.su2_exec = "SU2_CFD"
    edge_VW.timeout = 1600
    edge_VW.tol = 0.00001
    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.484387, 0.656352, -0.000037,
                          0.000000]  #last 4 columns
    edge_PPR.su2_exec = "SU2_CFD"
    edge_PPR.timeout = 1600
    edge_PPR.tol = 0.00001
    test_list.append(edge_PPR)

    ######################################
    ### turboSU2                       ###
    ######################################

    # Mini centrifugal turbine blade
    centrifugal_blade = TestCase('centrifugal_blade')
    centrifugal_blade.cfg_dir = "turbomachinery/centrifugal_blade"
    centrifugal_blade.cfg_file = "centrifugal_blade.cfg"
    centrifugal_blade.test_iter = 100
    centrifugal_blade.test_vals = [
        -9.106943, -0.460429, 1.069070e+01, 3.396010e-01
    ]  #last 4 columns
    centrifugal_blade.su2_exec = "SU2_CFD"
    centrifugal_blade.timeout = 1600
    centrifugal_blade.tol = 0.000001
    test_list.append(centrifugal_blade)

    # Mini centrifugal turbine stage
    centrifugal_stage = TestCase('centrifugal_stage')
    centrifugal_stage.cfg_dir = "turbomachinery/centrifugal_stage"
    centrifugal_stage.cfg_file = "centrifugal_stage.cfg"
    centrifugal_stage.test_iter = 100
    centrifugal_stage.test_vals = [
        -10.166364, 1.621172, 2.206476e+01, 5.271075e-01
    ]  #last 4 columns
    centrifugal_stage.su2_exec = "SU2_CFD"
    centrifugal_stage.timeout = 1600
    centrifugal_stage.tol = 0.000001
    test_list.append(centrifugal_stage)

    ##########################
    ### 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 = [-8.498274, -8.230638, -8.123824,
                            6.4095e+04]  #last 4 columns
    statbeam3d.su2_exec = "SU2_CFD"
    statbeam3d.timeout = 1600
    statbeam3d.tol = 0.00001
    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 = [-9.420640, -5.365872, -12.430382,
                           6.5210e+04]  #last 4 columns
    dynbeam2d.su2_exec = "SU2_CFD"
    dynbeam2d.timeout = 1600
    dynbeam2d.tol = 0.00001
    test_list.append(dynbeam2d)

    # FSI, 2d
    fsi2d = TestCase('fsi2d')
    fsi2d.cfg_dir = "fea_fsi/WallChannel_2d"
    fsi2d.cfg_file = "configFSI_2D.cfg"
    fsi2d.test_iter = 4
    fsi2d.test_vals = [2.000000, 0.500000, -7.777916,
                       -1.139835]  #last 4 columns
    fsi2d.su2_exec = "SU2_CFD"
    fsi2d.timeout = 1600
    fsi2d.tol = 0.00001
    test_list.append(fsi2d)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [test.run_test() for test in test_list]

    ######################################
    ### RUN SU2_GEO TESTS              ###
    ######################################

    # NACA0012
    naca0012_geo = TestCase('naca0012_geo')
    naca0012_geo.cfg_dir = "optimization_euler/steady_naca0012"
    naca0012_geo.cfg_file = "inv_NACA0012_adv.cfg"
    naca0012_geo.test_vals = [0.120011, 0.0816925, 0.0,
                              1.0]  #max thickness, area, twist, chord
    naca0012_geo.su2_exec = "SU2_GEO"
    naca0012_geo.timeout = 1600
    naca0012_geo.tol = 0.00001
    pass_list.append(naca0012_geo.run_geo())
    test_list.append(naca0012_geo)

    ######################################
    ### RUN SU2_DEF TESTS              ###
    ######################################

    # Inviscid NACA0012 (triangles)
    naca0012_def = TestCase('naca0012_def')
    naca0012_def.cfg_dir = "deformation/naca0012"
    naca0012_def.cfg_file = "def_NACA0012.cfg"
    naca0012_def.test_iter = 400
    naca0012_def.test_vals = [4.30698e-15]  #residual
    naca0012_def.su2_exec = "SU2_DEF"
    naca0012_def.timeout = 1600
    naca0012_def.tol = 1e-15

    pass_list.append(naca0012_def.run_def())
    test_list.append(naca0012_def)

    # RAE2822 (mixed tris + quads)
    rae2822_def = TestCase('rae2822_def')
    rae2822_def.cfg_dir = "deformation/rae2822"
    rae2822_def.cfg_file = "def_RAE2822.cfg"
    rae2822_def.test_iter = 150
    rae2822_def.test_vals = [5.59336e-16]  #residual
    rae2822_def.su2_exec = "SU2_DEF"
    rae2822_def.timeout = 1600
    rae2822_def.tol = 1e-16

    pass_list.append(rae2822_def.run_def())
    test_list.append(rae2822_def)

    # Turb NACA4412 (quads, wall distance)
    naca4412_def = TestCase('naca4412_def')
    naca4412_def.cfg_dir = "deformation/naca4412"
    naca4412_def.cfg_file = "def_NACA4412.cfg"
    naca4412_def.test_iter = 300
    naca4412_def.test_vals = [3.26428e-15]  #residual
    naca4412_def.su2_exec = "SU2_DEF"
    naca4412_def.timeout = 1600
    naca4412_def.tol = 1e-15

    pass_list.append(naca4412_def.run_def())
    test_list.append(naca4412_def)

    # Brick of tets (inverse volume)
    brick_tets_def = TestCase('brick_tets_def')
    brick_tets_def.cfg_dir = "deformation/brick_tets"
    brick_tets_def.cfg_file = "def_brick_tets.cfg"
    brick_tets_def.test_iter = 50
    brick_tets_def.test_vals = [7.34025e-15]  #residual
    brick_tets_def.su2_exec = "SU2_DEF"
    brick_tets_def.timeout = 1600
    brick_tets_def.tol = 1e-15

    pass_list.append(brick_tets_def.run_def())
    test_list.append(brick_tets_def)

    # Brick of isotropic hexas (inverse volume)
    brick_hex_def = TestCase('brick_hex_def')
    brick_hex_def.cfg_dir = "deformation/brick_hex"
    brick_hex_def.cfg_file = "def_brick_hex.cfg"
    brick_hex_def.test_iter = 50
    brick_hex_def.test_vals = [1.55154e-15]  #residual
    brick_hex_def.su2_exec = "SU2_DEF"
    brick_hex_def.timeout = 1600
    brick_hex_def.tol = 1e-15

    pass_list.append(brick_hex_def.run_def())
    test_list.append(brick_hex_def)

    # Brick with a pyramid layer (inverse volume)
    brick_pyra_def = TestCase('brick_pyra_def')
    brick_pyra_def.cfg_dir = "deformation/brick_pyra"
    brick_pyra_def.cfg_file = "def_brick_pyra.cfg"
    brick_pyra_def.test_iter = 400
    brick_pyra_def.test_vals = [3.79432e-15]  #residual
    brick_pyra_def.su2_exec = "SU2_DEF"
    brick_pyra_def.timeout = 1600
    brick_pyra_def.tol = 1e-15

    pass_list.append(brick_pyra_def.run_def())
    test_list.append(brick_pyra_def)

    # Brick of isotropic prisms (inverse volume)
    brick_prism_def = TestCase('brick_prism_def')
    brick_prism_def.cfg_dir = "deformation/brick_prism"
    brick_prism_def.cfg_file = "def_brick_prism.cfg"
    brick_prism_def.test_iter = 150
    brick_prism_def.test_vals = [9.14366e-15]  #residual
    brick_prism_def.su2_exec = "SU2_DEF"
    brick_prism_def.timeout = 1600
    brick_prism_def.tol = 1e-15

    pass_list.append(brick_prism_def.run_def())
    test_list.append(brick_prism_def)

    # Brick of prisms with high aspect ratio cells near the wall (wall distance)
    brick_prism_rans_def = TestCase('brick_prism_rans_def')
    brick_prism_rans_def.cfg_dir = "deformation/brick_prism_rans"
    brick_prism_rans_def.cfg_file = "def_brick_prism_rans.cfg"
    brick_prism_rans_def.test_iter = 100
    brick_prism_rans_def.test_vals = [1.64462e-15]  #residual
    brick_prism_rans_def.su2_exec = "SU2_DEF"
    brick_prism_rans_def.timeout = 1600
    brick_prism_rans_def.tol = 1e-15

    pass_list.append(brick_prism_rans_def.run_def())
    test_list.append(brick_prism_rans_def)

    # Brick of hexas with high aspect ratio cells near the wall (inverse volume)
    brick_hex_rans_def = TestCase('brick_hex_rans_def')
    brick_hex_rans_def.cfg_dir = "deformation/brick_hex_rans"
    brick_hex_rans_def.cfg_file = "def_brick_hex_rans.cfg"
    brick_hex_rans_def.test_iter = 50
    brick_hex_rans_def.test_vals = [9.26657e-16]  #residual
    brick_hex_rans_def.su2_exec = "SU2_DEF"
    brick_hex_rans_def.timeout = 1600
    brick_hex_rans_def.tol = 1e-16

    pass_list.append(brick_hex_rans_def.run_def())
    test_list.append(brick_hex_rans_def)

    ######################################
    ### RUN PYTHON TESTS               ###
    ######################################

    # test continuous_adjoint.py
    contadj_euler_py = TestCase('contadj_euler_py')
    contadj_euler_py.cfg_dir = "cont_adj_euler/naca0012"
    contadj_euler_py.cfg_file = "inv_NACA0012.cfg"
    contadj_euler_py.test_iter = 10
    contadj_euler_py.su2_exec = "continuous_adjoint.py"
    contadj_euler_py.timeout = 1600
    contadj_euler_py.reference_file = "of_grad_cd.dat.ref"
    contadj_euler_py.test_file = "of_grad_cd.dat"
    pass_list.append(contadj_euler_py.run_filediff())
    test_list.append(contadj_euler_py)

    # test finite_difference.py
    findiff_euler_py = TestCase('findiff_euler_py')
    findiff_euler_py.cfg_dir = "cont_adj_euler/naca0012"
    findiff_euler_py.cfg_file = "inv_NACA0012_FD.cfg"
    findiff_euler_py.test_iter = 10
    findiff_euler_py.su2_exec = "finite_differences.py"
    findiff_euler_py.timeout = 1600
    findiff_euler_py.reference_file = "of_grad_findiff.dat.ref"
    findiff_euler_py.test_file = "FINDIFF/of_grad_findiff.dat"
    pass_list.append(findiff_euler_py.run_filediff())
    test_list.append(findiff_euler_py)

    # test shape_optimization.py
    shape_opt_euler_py = TestCase('shape_opt_euler_py')
    shape_opt_euler_py.cfg_dir = "optimization_euler/steady_naca0012"
    shape_opt_euler_py.cfg_file = "inv_NACA0012_adv.cfg"
    shape_opt_euler_py.test_iter = 1
    shape_opt_euler_py.test_vals = [1, 1, 2.134974E-05,
                                    3.829535E-03]  #last 4 columns
    shape_opt_euler_py.su2_exec = "shape_optimization.py -f"
    shape_opt_euler_py.timeout = 1600
    shape_opt_euler_py.tol = 0.00001
    pass_list.append(shape_opt_euler_py.run_opt())
    test_list.append(shape_opt_euler_py)

    # test continuous_adjoint.py, with multiple objectives
    contadj_multi_py = TestCase('contadj_multi_py')
    contadj_multi_py.cfg_dir = "cont_adj_euler/wedge"
    contadj_multi_py.cfg_file = "inv_wedge_ROE_multiobj.cfg"
    contadj_multi_py.test_iter = 10
    contadj_multi_py.su2_exec = "continuous_adjoint.py"
    contadj_multi_py.timeout = 1600
    contadj_multi_py.reference_file = "of_grad_combo.dat.ref"
    contadj_multi_py.test_file = "of_grad_combo.dat"
    pass_list.append(contadj_multi_py.run_filediff())
    test_list.append(contadj_multi_py)

    ##########################
    ###   Python wrapper   ###
    ##########################

    # NACA0012
    pywrapper_naca0012 = TestCase('pywrapper_naca0012')
    pywrapper_naca0012.cfg_dir = "euler/naca0012"
    pywrapper_naca0012.cfg_file = "inv_NACA0012_Roe.cfg"
    pywrapper_naca0012.test_iter = 100
    pywrapper_naca0012.test_vals = [-6.191618, -5.592802, 0.334809,
                                    0.022197]  #last 4 columns
    pywrapper_naca0012.su2_exec = "pyWrap_SU2_CFD.py -f"
    pywrapper_naca0012.timeout = 1600
    pywrapper_naca0012.tol = 0.00001
    test_list.append(pywrapper_naca0012)
    pass_list.append(pywrapper_naca0012.run_test())

    # NACA0012 (SST, FUN3D results for finest grid: CL=1.0840, CD=0.01253)
    pywrapper_turb_naca0012_sst = TestCase('pywrapper_turb_naca0012_sst')
    pywrapper_turb_naca0012_sst.cfg_dir = "rans/naca0012"
    pywrapper_turb_naca0012_sst.cfg_file = "turb_NACA0012_sst.cfg"
    pywrapper_turb_naca0012_sst.test_iter = 10
    pywrapper_turb_naca0012_sst.test_vals = [
        -15.039675, -7.219913, 1.059622, 0.019138
    ]  #last 4 columns
    pywrapper_turb_naca0012_sst.su2_exec = "pyWrap_SU2_CFD.py -f"
    pywrapper_turb_naca0012_sst.timeout = 3200
    pywrapper_turb_naca0012_sst.tol = 0.00001
    test_list.append(pywrapper_turb_naca0012_sst)
    pass_list.append(pywrapper_turb_naca0012_sst.run_test())

    # Square cylinder
    pywrapper_square_cylinder = TestCase('pywrapper_square_cylinder')
    pywrapper_square_cylinder.cfg_dir = "unsteady/square_cylinder"
    pywrapper_square_cylinder.cfg_file = "turb_square.cfg"
    pywrapper_square_cylinder.test_iter = 3
    pywrapper_square_cylinder.test_vals = [
        -1.166406, 0.076804, 1.398548, 2.197047
    ]  #last 4 columns
    pywrapper_square_cylinder.su2_exec = "pyWrap_SU2_CFD.py -f"
    pywrapper_square_cylinder.timeout = 1600
    pywrapper_square_cylinder.tol = 0.00001
    pywrapper_square_cylinder.unsteady = True
    test_list.append(pywrapper_square_cylinder)
    pass_list.append(pywrapper_square_cylinder.run_test())

    # Aeroelastic
    pywrapper_aeroelastic = TestCase('pywrapper_aeroelastic')
    pywrapper_aeroelastic.cfg_dir = "aeroelastic"
    pywrapper_aeroelastic.cfg_file = "aeroelastic_NACA64A010.cfg"
    pywrapper_aeroelastic.test_iter = 2
    pywrapper_aeroelastic.test_vals = [
        0.077106, 0.036449, -1.684916e-03, -1.131735e-04
    ]  #last 4 columns
    pywrapper_aeroelastic.su2_exec = "pyWrap_SU2_CFD.py -f"
    pywrapper_aeroelastic.timeout = 1600
    pywrapper_aeroelastic.tol = 0.000001
    pywrapper_aeroelastic.unsteady = True
    test_list.append(pywrapper_aeroelastic)
    pass_list.append(pywrapper_aeroelastic.run_test())

    # FSI, 2d
    pywrapper_fsi2d = TestCase('pywrapper_fsi2d')
    pywrapper_fsi2d.cfg_dir = "fea_fsi/WallChannel_2d"
    pywrapper_fsi2d.cfg_file = "configFSI_2D.cfg"
    pywrapper_fsi2d.test_iter = 4
    pywrapper_fsi2d.test_vals = [2.000000, 0.500000, -7.777916,
                                 -1.139835]  #last 4 columns
    pywrapper_fsi2d.su2_exec = "pyWrap_SU2_CFD.py --nZone 2 --fsi True -f"
    pywrapper_fsi2d.timeout = 1600
    pywrapper_fsi2d.tol = 0.00001
    test_list.append(pywrapper_fsi2d)
    pass_list.append(pywrapper_fsi2d.run_test())

    ######################################
    ### RUN EXTERNAL FSI COUPLING TEST ###
    ######################################

    # Pitch-plunge NACA 0012 (external FSI coupling)
    coupled_FSI = TestCase('coupled_FSI')
    coupled_FSI.cfg_dir = "coupled_fsi/2d_aeroelasticity"
    coupled_FSI.cfg_file = "FSICoupler_config.cfg"
    coupled_FSI.test_iter = 1
    coupled_FSI.su2_exec = "fsi_computation.py"
    coupled_FSI.timeout = 1600
    coupled_FSI.reference_file = "StructHistory.dat.ref_serial"
    coupled_FSI.test_file = "StructHistory.dat"
    pass_list.append(coupled_FSI.run_filediff())
    test_list.append(coupled_FSI)

    # Tests summary
    print '=================================================================='
    print 'Summary of the serial tests'
    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)
Esempio n. 42
0
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 = 100
    channel.test_vals = [-2.984481, 2.389875, 0.008865, 0.027854] #last 4 columns
    channel.su2_exec  = "parallel_computation.py -f"
    channel.timeout   = 1600
    channel.tol       = 0.00001
    test_list.append(channel)

    # NACA0012 
    naca0012           = TestCase('naca0012')
    naca0012.cfg_dir   = "euler/naca0012"
    naca0012.cfg_file  = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.237188, -5.641250, 0.334843, 0.022206] #last 4 columns
    naca0012.su2_exec  = "parallel_computation.py -f"
    naca0012.timeout   = 1600
    naca0012.tol       = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge 
    wedge           = TestCase('wedge')
    wedge.cfg_dir   = "euler/wedge"
    wedge.cfg_file  = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.702502, 3.923373, -0.252116, 0.044396] #last 4 columns
    wedge.su2_exec  = "parallel_computation.py -f"
    wedge.timeout   = 1600
    wedge.tol       = 0.00001
    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 = [-13.398374, -12.928436, 0.282557, 0.012706] #last 4 columns
    oneram6.su2_exec  = "parallel_computation.py -f"
    oneram6.timeout   = 3200
    oneram6.tol       = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate           = TestCase('flatplate')
    flatplate.cfg_dir   = "navierstokes/flatplate"
    flatplate.cfg_file  = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.233923, 0.259801, -0.166790, 0.012722] #last 4 columns
    flatplate.su2_exec  = "parallel_computation.py -f"
    flatplate.timeout   = 1600
    flatplate.tol       = 0.00001
    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.757291, -1.289309, -0.125948, 0.625438] #last 4 columns
    cylinder.su2_exec  = "parallel_computation.py -f"
    cylinder.timeout   = 1600
    cylinder.tol       = 0.00001
    test_list.append(cylinder)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.637762, -5.450251, 0.890401, 0.025056] #last 4 columns
    rae2822_sa.su2_exec  = "parallel_computation.py -f"
    rae2822_sa.timeout   = 1600
    rae2822_sa.tol       = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.217020, 4.023774, 0.892665, 0.025209] #last 4 columns
    rae2822_sst.su2_exec  = "parallel_computation.py -f"
    rae2822_sst.timeout   = 1600
    rae2822_sst.tol       = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.073540, -7.354716, -0.187154, 0.011105] #last 4 columns
    turb_flatplate.su2_exec  = "parallel_computation.py -f"
    turb_flatplate.timeout   = 1600
    turb_flatplate.tol       = 0.00001
    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.327509, -6.563372, 0.230438, 0.155815] #last 4 columns
    turb_oneram6.su2_exec  = "parallel_computation.py -f"
    turb_oneram6.timeout   = 3200
    turb_oneram6.tol       = 0.00001
    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 = [-12.000764, -9.145363, 1.070528, 0.019417] #last 4 columns
    turb_naca0012_sa.su2_exec  = "parallel_computation.py -f"
    turb_naca0012_sa.timeout   = 3200
    turb_naca0012_sa.tol       = 0.00001
    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 = [-15.039665, -7.220109, 1.059622, 0.019138] #last 4 columns
    turb_naca0012_sst.su2_exec  = "parallel_computation.py -f"
    turb_naca0012_sst.timeout   = 3200
    turb_naca0012_sst.tol       = 0.00001
    test_list.append(turb_naca0012_sst)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.709508, -11.006161, -0.000017, 0.211696] #last 4 columns
    inc_turb_naca0012.su2_exec  = "parallel_computation.py -f"
    inc_turb_naca0012.timeout   = 1600
    inc_turb_naca0012.tol       = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012           = TestCase('contadj_naca0012')
    contadj_naca0012.cfg_dir   = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file  = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-9.783712, -15.192812, 0.300920, 0.536870] #last 4 columns
    contadj_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_naca0012.timeout   = 1600
    contadj_naca0012.tol       = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6           = TestCase('contadj_oneram6')
    contadj_oneram6.cfg_dir   = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file  = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 10
    contadj_oneram6.test_vals = [-12.132862, -12.704820, 0.685900, 0.140920] #last 4 columns
    contadj_oneram6.su2_exec  = "parallel_computation.py -f"
    contadj_oneram6.timeout   = 1600
    contadj_oneram6.tol       = 0.00001
    test_list.append(contadj_oneram6)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder           = TestCase('contadj_ns_cylinder')
    contadj_ns_cylinder.cfg_dir   = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file  = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-3.658396, -9.117436, -2.056700, 4.497000] #last 4 columns
    contadj_ns_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_ns_cylinder.timeout   = 1600
    contadj_ns_cylinder.tol       = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub           = TestCase('contadj_ns_naca0012_sub')
    contadj_ns_naca0012_sub.cfg_dir   = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [-2.744551, -8.216469, 0.518810, 0.229160] #last 4 columns
    contadj_ns_naca0012_sub.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_sub.timeout   = 1600
    contadj_ns_naca0012_sub.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_sub)
    
    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans           = TestCase('contadj_ns_naca0012_trans')
    contadj_ns_naca0012_trans.cfg_dir   = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file  = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [-1.041539, -6.578524, 1.772300, 0.620880] #last 4 columns
    contadj_ns_naca0012_trans.su2_exec  = "parallel_computation.py -f"
    contadj_ns_naca0012_trans.timeout   = 1600
    contadj_ns_naca0012_trans.tol       = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012           = TestCase('contadj_rans_naca0012')
    contadj_rans_naca0012.cfg_dir   = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file  = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-0.814757, -5.726517, -19.169000, -2.994100] #last 4 columns
    contadj_rans_naca0012.su2_exec  = "parallel_computation.py -f"
    contadj_rans_naca0012.timeout   = 1600
    contadj_rans_naca0012.tol       = 0.00001
    test_list.append(contadj_rans_naca0012)
    
    # Adjoint turbulent RAE2822
    contadj_rans_rae2822           = TestCase('contadj_rans_rae822')
    contadj_rans_rae2822.cfg_dir   = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file  = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [-5.381632, -10.887032, -0.212470, 0.269390] #last 4 columns
    contadj_rans_rae2822.su2_exec  = "parallel_computation.py -f"
    contadj_rans_rae2822.timeout   = 1600
    contadj_rans_rae2822.tol       = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012           = TestCase('contadj_incomp_NACA0012')
    contadj_incomp_NACA0012.cfg_dir   = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 5
    contadj_incomp_NACA0012.test_vals = [-11.968536, -12.133235, 1.939900, 0.000000] #last 4 columns
    contadj_incomp_NACA0012.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_NACA0012.timeout   = 1600
    contadj_incomp_NACA0012.tol       = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder           = TestCase('contadj_incomp_cylinder')
    contadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-5.718776, -7.020714, -2.932100, 0.000000] #last 4 columns
    contadj_incomp_cylinder.su2_exec  = "parallel_computation.py -f"
    contadj_incomp_cylinder.timeout   = 1600
    contadj_incomp_cylinder.tol       = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### Thermochemical Nonequilibrium  ###
    ######################################

    # RAM-C II Sphere-Cone -- 61km Altitude
    ramc           = TestCase('ramc')
    ramc.cfg_dir   = "tne2/ramc"
    ramc.cfg_file  = "ramc61km.cfg"
    ramc.test_iter = 25
    ramc.test_vals = [-4.643029, 2.849441, -4.443852, 0.000313] #last 4 columns
    ramc.su2_exec  = "parallel_computation.py -f"
    ramc.timeout   = 1600
    ramc.tol       = 0.00001
    test_list.append(ramc)

    ######################################
    ### 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.594283, -0.130745, -0.510607, 0.061921] #last 4 columns
    cavity.su2_exec  = "parallel_computation.py -f"
    cavity.timeout   = 1600
    cavity.tol       = 0.00001
    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.637313, -2.194229, 1.212769, 1.605369] #last 4 columns
    spinning_cylinder.su2_exec  = "parallel_computation.py -f"
    spinning_cylinder.timeout   = 1600
    spinning_cylinder.tol       = 0.00001
    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.544602, 0.048576, 1.398951, 2.196894] #last 4 columns
    square_cylinder.su2_exec  = "parallel_computation.py -f"
    square_cylinder.timeout   = 1600
    square_cylinder.tol       = 0.00001
    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.977531, 3.481790, -0.014552, -0.004969] #last 4 columns
    sine_gust.su2_exec  = "parallel_computation.py -f"
    sine_gust.timeout   = 1600
    sine_gust.tol       = 0.00001
    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.077319, 0.036428, -1.685289e-03, -1.129111e-04] #last 4 columns
    aeroelastic.su2_exec  = "parallel_computation.py -f"
    aeroelastic.timeout   = 1600
    aeroelastic.tol       = 0.000001
    aeroelastic.unsteady  = True
    test_list.append(aeroelastic) 

    ######################################
    ### 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 = [-1.446201, 4.751213, -0.000046, 0.000000] #last 4 columns
    edge_VW.su2_exec  = "parallel_computation.py -f"
    edge_VW.timeout   = 1600
    edge_VW.tol       = 0.00001
    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 = [-1.995058, 4.175675, -0.000056, 0.000000] #last 4 columns
    edge_PPR.su2_exec  = "parallel_computation.py -f"
    edge_PPR.timeout   = 1600
    edge_PPR.tol       = 0.00001
    test_list.append(edge_PPR)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [ test.run_test() for test in test_list ]

    # Tests summary
    print '=================================================================='
    print 'Summary of the parallel tests'
    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)
Esempio n. 43
0
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.606839, -9.035212, -0.000000, 0.005688] #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.724711, -4.052467, -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)

    #######################################################
    ### 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 = [-1.751962, 0.485775, 0.182122, -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 = [-1.654903, -0.491416, 0.109157, 0.000011] #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   = "cont_adj_incomp_euler/naca0012"
    discadj_incomp_NACA0012.cfg_file  = "incomp_NACA0012_disc.cfg"
    discadj_incomp_NACA0012.test_iter = 20
    discadj_incomp_NACA0012.test_vals = [-3.391214, -2.560170, 0.000000, 0.000000] #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
    discadj_incomp_cylinder           = TestCase('discadj_incomp_cylinder')
    discadj_incomp_cylinder.cfg_dir   = "cont_adj_incomp_navierstokes/cylinder"
    discadj_incomp_cylinder.cfg_file  = "lam_incomp_cylinder_disc.cfg"
    discadj_incomp_cylinder.test_iter = 20
    discadj_incomp_cylinder.test_vals = [-2.802148, -2.228080, 0.000000, 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
    discadj_incomp_turb_NACA0012           = TestCase('discadj_incomp_turb_NACA0012')
    discadj_incomp_turb_NACA0012.cfg_dir   = "incomp_rans/naca0012"
    discadj_incomp_turb_NACA0012.cfg_file  = "naca0012_disc.cfg"
    discadj_incomp_turb_NACA0012.test_iter = 10
    discadj_incomp_turb_NACA0012.test_vals = [-3.847506, -1.009607, 0.000000, 0.000000] #last 4 columns
    discadj_incomp_turb_NACA0012.su2_exec  = "SU2_CFD_AD"
    discadj_incomp_turb_NACA0012.timeout   = 1600
    discadj_incomp_turb_NACA0012.tol       = 0.00001
    test_list.append(discadj_incomp_turb_NACA0012)

    #######################################################
    ### 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.746904, -1.544886, -0.008345, 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)
    
    ###################################
    ### 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 = 9
    discadj_fea.test_vals = [-6.403771, -6.404196, -3.6413e-04, -8.7087e+00] #last 4 columns
    discadj_fea.su2_exec  = "SU2_CFD_AD"
    discadj_fea.timeout   = 1600
    discadj_fea.tol       = 0.00001
    test_list.append(discadj_fea)    
    
    ###################################
    ### Coupled FSI Adjoint         ###
    ###################################
   
    # Structural model
    discadj_fsi           = TestCase('discadj_fsi')
    discadj_fsi.cfg_dir   = "disc_adj_fsi"
    discadj_fsi.cfg_file  = "configAD_fsi.cfg" 
    discadj_fsi.test_iter = 3000
    discadj_fsi.test_vals = [0.958848,-0.157183,0.658415,1.302076] #last 4 columns
    discadj_fsi.su2_exec  = "SU2_CFD_AD"
    discadj_fsi.timeout   = 1600
    discadj_fsi.tol       = 0.00001
    test_list.append(discadj_fsi)      

    ######################################
    ### 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"
    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 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"
    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 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)

    # 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 = []

    #####################################
    ### 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.606839, -9.035212, -0.000000,
                                  0.005688]  #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.724711, -4.052467, -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)

    #######################################################
    ### 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 = [
        -1.751962, 0.485775, 0.182122, -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 = [
        -1.654903, -0.491416, 0.109157, 0.000011
    ]  #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 = "cont_adj_incomp_euler/naca0012"
    discadj_incomp_NACA0012.cfg_file = "incomp_NACA0012_disc.cfg"
    discadj_incomp_NACA0012.test_iter = 20
    discadj_incomp_NACA0012.test_vals = [
        -2.911277, -2.705448, 0.000000, 0.000000
    ]  #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
    discadj_incomp_cylinder = TestCase('discadj_incomp_cylinder')
    discadj_incomp_cylinder.cfg_dir = "cont_adj_incomp_navierstokes/cylinder"
    discadj_incomp_cylinder.cfg_file = "lam_incomp_cylinder_disc.cfg"
    discadj_incomp_cylinder.test_iter = 20
    discadj_incomp_cylinder.test_vals = [
        -2.731029, -2.243767, 0.000000, 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
    discadj_incomp_turb_NACA0012 = TestCase('discadj_incomp_turb_NACA0012')
    discadj_incomp_turb_NACA0012.cfg_dir = "incomp_rans/naca0012"
    discadj_incomp_turb_NACA0012.cfg_file = "naca0012_disc.cfg"
    discadj_incomp_turb_NACA0012.test_iter = 100
    discadj_incomp_turb_NACA0012.test_vals = [
        -3.645349, -1.625510, 0.000000, 0.000000
    ]  #last 4 columns
    discadj_incomp_turb_NACA0012.su2_exec = "SU2_CFD_AD"
    discadj_incomp_turb_NACA0012.timeout = 1600
    discadj_incomp_turb_NACA0012.tol = 0.00001
    test_list.append(discadj_incomp_turb_NACA0012)

    #######################################################
    ### 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.746904, -1.544886, -0.008345,
                                  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)

    ###################################
    ### 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 = 9
    discadj_fea.test_vals = [-6.403771, -6.404196, -3.6413e-04,
                             -8.7087e+00]  #last 4 columns
    discadj_fea.su2_exec = "SU2_CFD_AD"
    discadj_fea.timeout = 1600
    discadj_fea.tol = 0.00001
    test_list.append(discadj_fea)

    ###################################
    ### Coupled FSI Adjoint         ###
    ###################################

    # Structural model
    discadj_fsi = TestCase('discadj_fsi')
    discadj_fsi.cfg_dir = "disc_adj_fsi"
    discadj_fsi.cfg_file = "configAD_fsi.cfg"
    discadj_fsi.test_iter = 3000
    discadj_fsi.test_vals = [0.958848, -0.157183, 0.658415,
                             1.302076]  #last 4 columns
    discadj_fsi.su2_exec = "SU2_CFD_AD"
    discadj_fsi.timeout = 1600
    discadj_fsi.tol = 0.00001
    test_list.append(discadj_fsi)

    ######################################
    ### 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"
    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 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"
    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 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)

    # 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)
Esempio n. 45
0
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 = 100
    channel.test_vals = [-3.071007, 2.301191, 0.008562, 0.028922]  # last 4 columns
    channel.su2_exec = "parallel_computation.py -f"
    channel.timeout = 1600
    channel.tol = 0.00001
    test_list.append(channel)

    # NACA0012
    naca0012 = TestCase("naca0012")
    naca0012.cfg_dir = "euler/naca0012"
    naca0012.cfg_file = "inv_NACA0012_Roe.cfg"
    naca0012.test_iter = 100
    naca0012.test_vals = [-6.237188, -5.641250, 0.334843, 0.022206]  # last 4 columns
    naca0012.su2_exec = "parallel_computation.py -f"
    naca0012.timeout = 1600
    naca0012.tol = 0.00001
    test_list.append(naca0012)

    # Supersonic wedge
    wedge = TestCase("wedge")
    wedge.cfg_dir = "euler/wedge"
    wedge.cfg_file = "inv_wedge_HLLC.cfg"
    wedge.test_iter = 100
    wedge.test_vals = [-1.690232, 3.924432, -0.252221, 0.044419]  # last 4 columns
    wedge.su2_exec = "parallel_computation.py -f"
    wedge.timeout = 1600
    wedge.tol = 0.00001
    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 = [-13.400678, -12.932056, 0.282557, 0.012706]  # last 4 columns
    oneram6.su2_exec = "parallel_computation.py -f"
    oneram6.timeout = 3200
    oneram6.tol = 0.00001
    test_list.append(oneram6)

    ##########################
    ###  Compressible N-S  ###
    ##########################

    # Laminar flat plate
    flatplate = TestCase("flatplate")
    flatplate.cfg_dir = "navierstokes/flatplate"
    flatplate.cfg_file = "lam_flatplate.cfg"
    flatplate.test_iter = 100
    flatplate.test_vals = [-5.231727, 0.261637, -0.166869, 0.012707]  # last 4 columns
    flatplate.su2_exec = "parallel_computation.py -f"
    flatplate.timeout = 1600
    flatplate.tol = 0.00001
    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.757291, -1.289309, -0.125948, 0.625438]  # last 4 columns
    cylinder.su2_exec = "parallel_computation.py -f"
    cylinder.timeout = 1600
    cylinder.tol = 0.00001
    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.861860, -1.399846, -1.557250, 110.230719]  # last 4 columns
    cylinder_lowmach.su2_exec = "parallel_computation.py -f"
    cylinder_lowmach.timeout = 1600
    cylinder_lowmach.tol = 0.00001
    test_list.append(cylinder_lowmach)

    ##########################
    ### 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 = 100
    rae2822_sa.test_vals = [-3.647743, -5.442583, 0.903159, 0.025800]  # last 4 columns
    rae2822_sa.su2_exec = "parallel_computation.py -f"
    rae2822_sa.timeout = 1600
    rae2822_sa.tol = 0.00001
    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 = 100
    rae2822_sst.test_vals = [-1.198777, 4.013989, 0.904265, 0.025941]  # last 4 columns
    rae2822_sst.su2_exec = "parallel_computation.py -f"
    rae2822_sst.timeout = 1600
    rae2822_sst.tol = 0.00001
    test_list.append(rae2822_sst)

    # 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 = 100
    turb_flatplate.test_vals = [-5.071289, -7.366446, -0.187145, 0.010957]  # last 4 columns
    turb_flatplate.su2_exec = "parallel_computation.py -f"
    turb_flatplate.timeout = 1600
    turb_flatplate.tol = 0.00001
    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.327509, -6.563372, 0.230438, 0.155815]  # last 4 columns
    turb_oneram6.su2_exec = "parallel_computation.py -f"
    turb_oneram6.timeout = 3200
    turb_oneram6.tol = 0.00001
    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 = [-12.000764, -9.145363, 1.070528, 0.019417]  # last 4 columns
    turb_naca0012_sa.su2_exec = "parallel_computation.py -f"
    turb_naca0012_sa.timeout = 3200
    turb_naca0012_sa.tol = 0.00001
    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 = [-15.039645, -7.220177, 1.059622, 0.019138]  # last 4 columns
    turb_naca0012_sst.su2_exec = "parallel_computation.py -f"
    turb_naca0012_sst.timeout = 3200
    turb_naca0012_sst.tol = 0.00001
    test_list.append(turb_naca0012_sst)

    ############################
    ### Incompressible RANS  ###
    ############################

    # NACA0012
    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.710048, -11.007498, 0.000002, 0.210441]  # last 4 columns
    inc_turb_naca0012.su2_exec = "parallel_computation.py -f"
    inc_turb_naca0012.timeout = 1600
    inc_turb_naca0012.tol = 0.00001
    test_list.append(inc_turb_naca0012)

    #####################################
    ### Cont. adj. compressible Euler ###
    #####################################

    # Inviscid NACA0012
    contadj_naca0012 = TestCase("contadj_naca0012")
    contadj_naca0012.cfg_dir = "cont_adj_euler/naca0012"
    contadj_naca0012.cfg_file = "inv_NACA0012.cfg"
    contadj_naca0012.test_iter = 5
    contadj_naca0012.test_vals = [-9.783712, -15.192812, 0.300920, 0.536870]  # last 4 columns
    contadj_naca0012.su2_exec = "parallel_computation.py -f"
    contadj_naca0012.timeout = 1600
    contadj_naca0012.tol = 0.00001
    test_list.append(contadj_naca0012)

    # Inviscid ONERA M6
    contadj_oneram6 = TestCase("contadj_oneram6")
    contadj_oneram6.cfg_dir = "cont_adj_euler/oneram6"
    contadj_oneram6.cfg_file = "inv_ONERAM6.cfg"
    contadj_oneram6.test_iter = 10
    contadj_oneram6.test_vals = [-12.131587, -12.703243, 0.685900, 0.140920]  # last 4 columns
    contadj_oneram6.su2_exec = "parallel_computation.py -f"
    contadj_oneram6.timeout = 1600
    contadj_oneram6.tol = 0.00001
    test_list.append(contadj_oneram6)

    # Inviscid WEDGE: generalized adjoint and custom DV
    contadj_wedge = TestCase("contadj_wedge")
    contadj_wedge.cfg_dir = "cont_adj_euler/wedge"
    contadj_wedge.cfg_file = "inv_wedge_ROE.cfg"
    contadj_wedge.test_iter = 10
    contadj_wedge.test_vals = [-7.364977, -13.301134, 0.000266, 0.000000]  # last 4 columns
    contadj_wedge.su2_exec = "parallel_computation.py -f"
    contadj_wedge.timeout = 1600
    contadj_wedge.tol = 0.00001
    test_list.append(contadj_wedge)

    ###################################
    ### Cont. adj. compressible N-S ###
    ###################################

    # Adjoint laminar cylinder
    contadj_ns_cylinder = TestCase("contadj_ns_cylinder")
    contadj_ns_cylinder.cfg_dir = "cont_adj_navierstokes/cylinder"
    contadj_ns_cylinder.cfg_file = "lam_cylinder.cfg"
    contadj_ns_cylinder.test_iter = 100
    contadj_ns_cylinder.test_vals = [-3.659040, -9.117773, 2.056700, 4.497000]  # last 4 columns
    contadj_ns_cylinder.su2_exec = "parallel_computation.py -f"
    contadj_ns_cylinder.timeout = 1600
    contadj_ns_cylinder.tol = 0.00001
    test_list.append(contadj_ns_cylinder)

    # Adjoint laminar naca0012 subsonic
    contadj_ns_naca0012_sub = TestCase("contadj_ns_naca0012_sub")
    contadj_ns_naca0012_sub.cfg_dir = "cont_adj_navierstokes/naca0012_sub"
    contadj_ns_naca0012_sub.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_sub.test_iter = 100
    contadj_ns_naca0012_sub.test_vals = [-2.744551, -8.216469, 0.518810, 0.229160]  # last 4 columns
    contadj_ns_naca0012_sub.su2_exec = "parallel_computation.py -f"
    contadj_ns_naca0012_sub.timeout = 1600
    contadj_ns_naca0012_sub.tol = 0.00001
    test_list.append(contadj_ns_naca0012_sub)

    # Adjoint laminar naca0012 transonic
    contadj_ns_naca0012_trans = TestCase("contadj_ns_naca0012_trans")
    contadj_ns_naca0012_trans.cfg_dir = "cont_adj_navierstokes/naca0012_trans"
    contadj_ns_naca0012_trans.cfg_file = "lam_NACA0012.cfg"
    contadj_ns_naca0012_trans.test_iter = 100
    contadj_ns_naca0012_trans.test_vals = [-1.041539, -6.578524, 1.772300, 0.620880]  # last 4 columns
    contadj_ns_naca0012_trans.su2_exec = "parallel_computation.py -f"
    contadj_ns_naca0012_trans.timeout = 1600
    contadj_ns_naca0012_trans.tol = 0.00001
    test_list.append(contadj_ns_naca0012_trans)

    #######################################################
    ### Cont. adj. compressible RANS (frozen viscosity) ###
    #######################################################

    # Adjoint turbulent NACA0012
    contadj_rans_naca0012 = TestCase("contadj_rans_naca0012")
    contadj_rans_naca0012.cfg_dir = "cont_adj_rans/naca0012"
    contadj_rans_naca0012.cfg_file = "turb_nasa.cfg"
    contadj_rans_naca0012.test_iter = 100
    contadj_rans_naca0012.test_vals = [-0.814757, -5.726517, 19.169000, -2.994100]  # last 4 columns
    contadj_rans_naca0012.su2_exec = "parallel_computation.py -f"
    contadj_rans_naca0012.timeout = 1600
    contadj_rans_naca0012.tol = 0.00001
    test_list.append(contadj_rans_naca0012)

    # Adjoint turbulent RAE2822
    contadj_rans_rae2822 = TestCase("contadj_rans_rae822")
    contadj_rans_rae2822.cfg_dir = "cont_adj_rans/rae2822"
    contadj_rans_rae2822.cfg_file = "turb_SA_RAE2822.cfg"
    contadj_rans_rae2822.test_iter = 100
    contadj_rans_rae2822.test_vals = [-5.380929, -10.886092, -0.212470, 0.269390]  # last 4 columns
    contadj_rans_rae2822.su2_exec = "parallel_computation.py -f"
    contadj_rans_rae2822.timeout = 1600
    contadj_rans_rae2822.tol = 0.00001
    test_list.append(contadj_rans_rae2822)

    #######################################
    ### Cont. adj. incompressible Euler ###
    #######################################

    # Adjoint Incompressible Inviscid NACA0012
    contadj_incomp_NACA0012 = TestCase("contadj_incomp_NACA0012")
    contadj_incomp_NACA0012.cfg_dir = "cont_adj_incomp_euler/naca0012"
    contadj_incomp_NACA0012.cfg_file = "incomp_NACA0012.cfg"
    contadj_incomp_NACA0012.test_iter = 5
    contadj_incomp_NACA0012.test_vals = [-11.968536, -12.133235, 1.939900, 0.000000]  # last 4 columns
    contadj_incomp_NACA0012.su2_exec = "parallel_computation.py -f"
    contadj_incomp_NACA0012.timeout = 1600
    contadj_incomp_NACA0012.tol = 0.00001
    test_list.append(contadj_incomp_NACA0012)

    #####################################
    ### Cont. adj. incompressible N-S ###
    #####################################

    # Adjoint Incompressible Viscous Cylinder
    contadj_incomp_cylinder = TestCase("contadj_incomp_cylinder")
    contadj_incomp_cylinder.cfg_dir = "cont_adj_incomp_navierstokes/cylinder"
    contadj_incomp_cylinder.cfg_file = "lam_incomp_cylinder.cfg"
    contadj_incomp_cylinder.test_iter = 25
    contadj_incomp_cylinder.test_vals = [-5.718840, -7.012324, 2.932100, 0.000000]  # last 4 columns
    contadj_incomp_cylinder.su2_exec = "parallel_computation.py -f"
    contadj_incomp_cylinder.timeout = 1600
    contadj_incomp_cylinder.tol = 0.00001
    test_list.append(contadj_incomp_cylinder)

    ######################################
    ### 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.597018, -0.133158, 0.169034, 0.821371]  # last 4 columns
    cavity.su2_exec = "parallel_computation.py -f"
    cavity.timeout = 1600
    cavity.tol = 0.00001
    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.648320, -2.202753, 1.236836, 1.609040]  # last 4 columns
    spinning_cylinder.su2_exec = "parallel_computation.py -f"
    spinning_cylinder.timeout = 1600
    spinning_cylinder.tol = 0.00001
    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.166422, 0.076751, 1.398549, 2.197047]  # last 4 columns
    square_cylinder.su2_exec = "parallel_computation.py -f"
    square_cylinder.timeout = 1600
    square_cylinder.tol = 0.00001
    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.977531, 3.481790, -0.014552, -0.004969]  # last 4 columns
    sine_gust.su2_exec = "parallel_computation.py -f"
    sine_gust.timeout = 1600
    sine_gust.tol = 0.00001
    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.077169, 0.036452, -0.001685, -0.000113]  # last 4 columns
    aeroelastic.su2_exec = "parallel_computation.py -f"
    aeroelastic.timeout = 1600
    aeroelastic.tol = 0.000001
    aeroelastic.unsteady = True
    test_list.append(aeroelastic)

    ######################################
    ### 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.058481, 1.115321, -0.000009, 0.000000]  # last 4 columns
    edge_VW.su2_exec = "parallel_computation.py -f"
    edge_VW.timeout = 1600
    edge_VW.tol = 0.00001
    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.486409, 0.654417, -0.000037, 0.000000]  # last 4 columns
    edge_PPR.su2_exec = "parallel_computation.py -f"
    edge_PPR.timeout = 1600
    edge_PPR.tol = 0.00001
    test_list.append(edge_PPR)

    ##########################
    ### 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 = [-8.520066, -8.069308, -8.062384, 64095.000000]  # last 4 columns
    statbeam3d.su2_exec = "parallel_computation_fsi.py -f"
    statbeam3d.timeout = 1600
    statbeam3d.tol = 0.00001
    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 = [-9.420641, -5.365871, -12.430382, 6.5210e04]  # last 4 columns
    dynbeam2d.su2_exec = "parallel_computation_fsi.py -f"
    dynbeam2d.timeout = 1600
    dynbeam2d.tol = 0.00001
    test_list.append(dynbeam2d)

    # FSI, 2d
    fsi2d = TestCase("fsi2d")
    fsi2d.cfg_dir = "fea_fsi/WallChannel_2d"
    fsi2d.cfg_file = "configFSI_2D.cfg"
    fsi2d.test_iter = 4
    fsi2d.test_vals = [2.000000, 0.500000, -7.777910, -1.139830]  # last 4 columns
    fsi2d.su2_exec = "parallel_computation_fsi.py -f"
    fsi2d.timeout = 1600
    fsi2d.tol = 0.00001
    test_list.append(fsi2d)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [test.run_test() for test in test_list]

    ######################################
    ### RUN SU2_DEF TESTS              ###
    ######################################

    # Inviscid NACA0012 (triangles)
    naca0012_def = TestCase("naca0012_def")
    naca0012_def.cfg_dir = "deformation/naca0012"
    naca0012_def.cfg_file = "def_NACA0012.cfg"
    naca0012_def.test_iter = 250
    naca0012_def.test_vals = [5.44754e-15]  # residual
    naca0012_def.su2_exec = "mpirun -n 2 SU2_DEF"
    naca0012_def.timeout = 1600
    naca0012_def.tol = 1e-15

    pass_list.append(naca0012_def.run_def())
    test_list.append(naca0012_def)

    # RAE2822 (mixed tris + quads)
    rae2822_def = TestCase("rae2822_def")
    rae2822_def.cfg_dir = "deformation/rae2822"
    rae2822_def.cfg_file = "def_RAE2822.cfg"
    rae2822_def.test_iter = 150
    rae2822_def.test_vals = [1.47076e-15]  # residual
    rae2822_def.su2_exec = "mpirun -n 2 SU2_DEF"
    rae2822_def.timeout = 1600
    rae2822_def.tol = 1e-16

    pass_list.append(rae2822_def.run_def())
    test_list.append(rae2822_def)

    # Turb NACA4412 (quads, wall distance)
    naca4412_def = TestCase("naca4412_def")
    naca4412_def.cfg_dir = "deformation/naca4412"
    naca4412_def.cfg_file = "def_NACA4412.cfg"
    naca4412_def.test_iter = 300
    naca4412_def.test_vals = [4.46129e-15]  # residual
    naca4412_def.su2_exec = "mpirun -n 2 SU2_DEF"
    naca4412_def.timeout = 1600
    naca4412_def.tol = 1e-15

    pass_list.append(naca4412_def.run_def())
    test_list.append(naca4412_def)

    # Brick of tets (inverse volume)
    brick_tets_def = TestCase("brick_tets_def")
    brick_tets_def.cfg_dir = "deformation/brick_tets"
    brick_tets_def.cfg_file = "def_brick_tets.cfg"
    brick_tets_def.test_iter = 1000
    brick_tets_def.test_vals = [9.35558e-16]  # residual
    brick_tets_def.su2_exec = "mpirun -n 2 SU2_DEF"
    brick_tets_def.timeout = 1600
    brick_tets_def.tol = 1e-15

    pass_list.append(brick_tets_def.run_def())
    test_list.append(brick_tets_def)

    # Brick of isotropic hexas (inverse volume)
    brick_hex_def = TestCase("brick_hex_def")
    brick_hex_def.cfg_dir = "deformation/brick_hex"
    brick_hex_def.cfg_file = "def_brick_hex.cfg"
    brick_hex_def.test_iter = 1000
    brick_hex_def.test_vals = [1.46423e-15]  # residual
    brick_hex_def.su2_exec = "mpirun -n 2 SU2_DEF"
    brick_hex_def.timeout = 1600
    brick_hex_def.tol = 1e-15

    pass_list.append(brick_hex_def.run_def())
    test_list.append(brick_hex_def)

    # Brick with a pyramid layer (inverse volume)
    brick_pyra_def = TestCase("brick_pyra_def")
    brick_pyra_def.cfg_dir = "deformation/brick_pyra"
    brick_pyra_def.cfg_file = "def_brick_pyra.cfg"
    brick_pyra_def.test_iter = 100
    brick_pyra_def.test_vals = [5.97202e-15]  # residual
    brick_pyra_def.su2_exec = "mpirun -n 2 SU2_DEF"
    brick_pyra_def.timeout = 1600
    brick_pyra_def.tol = 1e-15

    pass_list.append(brick_pyra_def.run_def())
    test_list.append(brick_pyra_def)

    # Brick of isotropic prisms (inverse volume)
    brick_prism_def = TestCase("brick_prism_def")
    brick_prism_def.cfg_dir = "deformation/brick_prism"
    brick_prism_def.cfg_file = "def_brick_prism.cfg"
    brick_prism_def.test_iter = 100
    brick_prism_def.test_vals = [2.80867e-14]  # residual
    brick_prism_def.su2_exec = "mpirun -n 2 SU2_DEF"
    brick_prism_def.timeout = 1600
    brick_prism_def.tol = 1e-15

    pass_list.append(brick_prism_def.run_def())
    test_list.append(brick_prism_def)

    # Brick of prisms with high aspect ratio cells near the wall (wall distance)
    brick_prism_rans_def = TestCase("brick_prism_rans_def")
    brick_prism_rans_def.cfg_dir = "deformation/brick_prism_rans"
    brick_prism_rans_def.cfg_file = "def_brick_prism_rans.cfg"
    brick_prism_rans_def.test_iter = 50
    brick_prism_rans_def.test_vals = [3.5265e-15]  # residual
    brick_prism_rans_def.su2_exec = "mpirun -n 2 SU2_DEF"
    brick_prism_rans_def.timeout = 1600
    brick_prism_rans_def.tol = 1e-15

    pass_list.append(brick_prism_rans_def.run_def())
    test_list.append(brick_prism_rans_def)

    # Brick of hexas with high aspect ratio cells near the wall (inverse volume)
    brick_hex_rans_def = TestCase("brick_hex_rans_def")
    brick_hex_rans_def.cfg_dir = "deformation/brick_hex_rans"
    brick_hex_rans_def.cfg_file = "def_brick_hex_rans.cfg"
    brick_hex_rans_def.test_iter = 600
    brick_hex_rans_def.test_vals = [2.75292e-14]  # residual
    brick_hex_rans_def.su2_exec = "mpirun -n 2 SU2_DEF"
    brick_hex_rans_def.timeout = 1600
    brick_hex_rans_def.tol = 1e-16

    pass_list.append(brick_hex_rans_def.run_def())
    test_list.append(brick_hex_rans_def)

    # Tests summary
    print "=================================================================="
    print "Summary of the parallel tests"
    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)
Esempio n. 46
0
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]
    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.730673, -3.832084, -0.000000, 0.000000]
    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.087876, -3.481506, 0.068878, 0.000000]
    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.230632, 0.696530, 0.177890, -0.000016, 5, -3.007652, 5, -7.666352
    ]
    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.221793, -0.491367, 0.182000, -0.000018
    ]
    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.092007, -2.652751, 0.000000
    ]
    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.705921, -2.837904, 0.000000
    ]
    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.845995, -1.031097, 0.000000
    ]
    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.414026, -8.420194, 0.000000
    ]
    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.746907, -1.544882, -0.008321, 0.000014]
    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.004402]
    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.698167, -1.607051, -0.002159, 0.000028
    ]
    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.219713, -1.645717, -0.007513, 0.000013
    ]
    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.938806, -1.995540]
    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 = [1.774569, 1.928023, -0.000364, -8.690300]
    test_list.append(discadj_fea)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    for test in test_list:
        test.su2_exec = "SU2_CFD_AD -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 AD 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)
Esempio n. 47
0
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.606963, -9.034619, -3.3385e-07, 1.8777e-01
    ]  #last 4 columns
    discadj_naca0012.su2_exec = "parallel_computation.py -f"
    discadj_naca0012.timeout = 1600
    discadj_naca0012.tol = 0.00001
    test_list.append(discadj_naca0012)

    ####################################
    ### 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 = [
        -1.751829, 0.485848, 0.182890, -0.383520
    ]  #last 4 columns
    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 = [
        -1.653638, -0.502899, 1.3126e-01, -4.7494e-01
    ]  #last 4 columns
    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)

    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [test.run_test() for test in test_list]

    # Tests summary
    print '=================================================================='
    print 'Summary of the parallel tests'
    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)
Esempio n. 48
0
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)
Esempio n. 49
0
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.606963, -9.034619, -0.000000,
                                  0.005688]  #last 4 columns
    discadj_naca0012.su2_exec = "parallel_computation.py -f"
    discadj_naca0012.timeout = 1600
    discadj_naca0012.tol = 0.00001
    test_list.append(discadj_naca0012)

    ####################################
    ### 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 = [
        -1.751997, 0.485368, 0.182890, -0.000018
    ]  #last 4 columns
    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 = [
        -1.655243, -0.507187, 0.129010, -0.000013
    ]  #last 4 columns
    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)

    #######################################################
    ### 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 = 10
    discadj_cylinder.test_vals = [3.522085, -1.787791, -0.012031,
                                  0.000017]  #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)
    ######################################
    ### RUN TESTS                      ###
    ######################################

    pass_list = [test.run_test() for test in test_list]

    # Tests summary
    print '=================================================================='
    print 'Summary of the parallel tests'
    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)
Esempio n. 50
0
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.606841, -9.035214, -0.000000,
                                  0.005688]  #last 4 columns
    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.720476, -4.039256, 0.000000,
                                    0.000000]  #last 4 columns
    discadj_cylinder3D.su2_exec = "parallel_computation.py -f"
    discadj_cylinder3D.timeout = 1600
    discadj_cylinder3D.tol = 0.00001
    test_list.append(discadj_cylinder3D)

    ####################################
    ### 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 = [
        -1.751965, 0.485796, 0.182895, -0.000018
    ]  #last 4 columns
    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 = [
        -1.654193, -0.499281, 0.145545, -0.000018
    ]  #last 4 columns
    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 = "cont_adj_incomp_euler/naca0012"
    discadj_incomp_NACA0012.cfg_file = "incomp_NACA0012_disc.cfg"
    discadj_incomp_NACA0012.test_iter = 20
    discadj_incomp_NACA0012.test_vals = [
        -2.917789, -2.714752, 0.000000, 0.000000
    ]  #last 4 columns
    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
    discadj_incomp_cylinder = TestCase('discadj_incomp_cylinder')
    discadj_incomp_cylinder.cfg_dir = "cont_adj_incomp_navierstokes/cylinder"
    discadj_incomp_cylinder.cfg_file = "lam_incomp_cylinder_disc.cfg"
    discadj_incomp_cylinder.test_iter = 20
    discadj_incomp_cylinder.test_vals = [
        -2.727423, -2.272530, 0.000000, 0.000000
    ]  #last 4 columns
    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
    discadj_incomp_turb_NACA0012 = TestCase('discadj_incomp_turb_NACA0012')
    discadj_incomp_turb_NACA0012.cfg_dir = "incomp_rans/naca0012"
    discadj_incomp_turb_NACA0012.cfg_file = "naca0012_disc.cfg"
    discadj_incomp_turb_NACA0012.test_iter = 100
    discadj_incomp_turb_NACA0012.test_vals = [
        -3.645810, -1.625922, 0.000000, 0.000000
    ]  #last 4 columns
    discadj_incomp_turb_NACA0012.su2_exec = "parallel_computation.py -f"
    discadj_incomp_turb_NACA0012.timeout = 1600
    discadj_incomp_turb_NACA0012.tol = 0.00001
    test_list.append(discadj_incomp_turb_NACA0012)

    #######################################################
    ### 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.746900, -1.544893, -8.3447e-03, 1.3808e-05
    ]  #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)

    #######################################################
    ### 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 = [
        -2.001081, -2.115303, -0.450996, -15.778175
    ]  #last 4 columns
    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          ###
    ###################################

    # Turbulent Cylinder
    discadj_fea = TestCase('discadj_fea')
    discadj_fea.cfg_dir = "disc_adj_fea"
    discadj_fea.cfg_file = "configAD_fem.cfg"
    discadj_fea.test_iter = 9
    discadj_fea.test_vals = [-4.872191, -5.131614, -3.6413e-04,
                             -8.7087e+00]  #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)

    ###################################
    ### Coupled FSI Adjoint         ###
    ###################################

    # Structural model
    discadj_fsi = TestCase('discadj_fsi')
    discadj_fsi.cfg_dir = "disc_adj_fsi"
    discadj_fsi.cfg_file = "configAD_fsi.cfg"
    discadj_fsi.test_iter = 3000
    discadj_fsi.test_vals = [0.958848, -0.157183, 0.658415,
                             1.302076]  #last 4 columns
    discadj_fsi.su2_exec = "parallel_computation.py -f"
    discadj_fsi.timeout = 1600
    discadj_fsi.tol = 0.00001
    test_list.append(discadj_fsi)

    ######################################
    ### 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)
Esempio n. 51
0
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.606841, -9.035214, -0.000000, 0.005688] #last 4 columns
    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.719306, -4.038129, 0.000000, 0.000000] #last 4 columns
    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    = [2.229071, 1.716910, 4.7258e+04, 0.0000e+00] #last 4 columns
    discadj_arina2k.su2_exec     = "parallel_computation.py -f"
    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 = [-1.751966, 0.485717, 0.183154, -0.000018] #last 4 columns
    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 = [-1.654042, -0.500718, 0.154704, -0.000022] #last 4 columns
    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 = [-3.595580, -2.549720, 0.000000, 0.000000] #last 4 columns
    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 = [-2.104640, -2.004547, 0.0000e+00, 0.0000e+00] #last 4 columns
    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 = [-3.846036, -1.031071, 0.000000, 0.000000] #last 4 columns
    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.845805, -2.416675, 0.000000, 0.000000] #last 4 columns
    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.746900, -1.544893, -8.3447e-03, 1.3808e-05] #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 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.698165, -1.607052, -2.2503e-03, 2.7212e-05] #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)

    #######################################################
    ### 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 = [-2.001082, -2.115018, -0.450986, -15.778292] #last 4 columns
    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 = 9
    discadj_fea.test_vals = [-4.751576, -4.692029, -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 = [3.162960, 0.923834, -223.148728, -3562.233908] #last 4 columns
    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         ###
    ###################################
   
    # Structural model
    discadj_fsi           = TestCase('discadj_fsi')
    discadj_fsi.cfg_dir   = "disc_adj_fsi"
    discadj_fsi.cfg_file  = "configAD_fsi.cfg" 
    discadj_fsi.test_iter = 3000
    discadj_fsi.test_vals = [0.958848,-0.157183,0.658415,1.302076] #last 4 columns
    discadj_fsi.su2_exec  = "parallel_computation.py -f"
    discadj_fsi.timeout   = 1600
    discadj_fsi.tol       = 0.00001
    test_list.append(discadj_fsi)

    ######################################
    ### 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"
    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)

    ###################################
    ### Coupled FSI Adjoint         ###
    ###################################

    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 = 0
    discadj_fsi2.su2_exec  = "parallel_computation.py"
    discadj_fsi2.timeout   = 1600
    discadj_fsi2.reference_file = "grad_young.opt.ref"
    discadj_fsi2.test_file = "grad_young.opt"
    pass_list.append(discadj_fsi2.run_filediff())
    test_list.append(discadj_fsi2)

    # 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)