Difference between revisions of "TCNEQ Version"

From PHASTA Wiki
Jump to: navigation, search
(Simulation Inputs)
(Boundary Conditions)
 
(22 intermediate revisions by 2 users not shown)
Line 9: Line 9:
  
 
== Pre-Processing ==
 
== Pre-Processing ==
In this section, details of the meshing and model attributes are provided. For simulation cases where the gas is modeled as a single species, the ''scalar'' quantities for boundary and initial conditions are not required. Currently, capability exists to simulate a gas with number of species (''nsp'') ≤ 5. When 2 ≤ ''nsp'' ≤ 5, the ''scalar'' quantities are used to govern the composition of the gas.  
+
In this section, details of the meshing and model attributes are provided. Currently, capability exists to simulate a gas with number of species (''nsp'') ≤ 5.
  
 
=== Meshing ===
 
=== Meshing ===
Line 21: Line 21:
 
Below are the recognized boundary conditions that can be applied for the current version:
 
Below are the recognized boundary conditions that can be applied for the current version:
 
* comp1/comp2/comp3 - Specification of one/two/three components of velocity, [m/s]
 
* comp1/comp2/comp3 - Specification of one/two/three components of velocity, [m/s]
* temperature - Specification of translational-rotational temperature, [K]. By default, vibrational temperature is held in equilibrium with this value and nonequilibrium is controlled through simulation inputs.  
+
* temperature - Specification of translational-rotational temperature, [K]. By default, vibrational temperature is held in equilibrium with this value and nonequilibrium is controlled through simulation inputs (see input.config in source code)
 
* surfID - When value is set to 702, the boundary is treated as a slip wall. If using this option, include a boundary layer mesh along the surface to ensure the wall normal direction is accurately computed.
 
* surfID - When value is set to 702, the boundary is treated as a slip wall. If using this option, include a boundary layer mesh along the surface to ensure the wall normal direction is accurately computed.
* scalar_1 - Mole fraction of species 2 of the gas
+
* scalar_1 - Turbulent eddy viscosity, [Pa-s]
* scalar_2 - Mole fraction of species 3 of the gas
 
* scalar_3 - Mole fraction of species 4 of the gas
 
* scalar_4 - Mole fraction of species 5 of the gas
 
 
* pressure - Specification of static pressure over a surface, [Pa]
 
* pressure - Specification of static pressure over a surface, [Pa]
** Used to compute mole fraction of species 1 of the gas with Dalton's Law of partial pressures and subtracting the summation of the other mole fractions from a value of 1
+
** Used to compute mole fractions of each species of the gas with Dalton's Law of partial pressures in conjunction with reference mole fractions specified in solver.inp
 +
 
 
* heat flux - set to zero for adiabatic wall boundary condition
 
* heat flux - set to zero for adiabatic wall boundary condition
  
Line 35: Line 33:
 
* initial velocity - Components and magnitude of flow velocity, [m/s]
 
* initial velocity - Components and magnitude of flow velocity, [m/s]
 
** If a supersonic outlet condition is used, set such that flow is initialized Mach > 1
 
** If a supersonic outlet condition is used, set such that flow is initialized Mach > 1
* initial temperature - Value used to set translational-rotational temperature, [K]
+
* initial temperature - Value used to set translational-rotational temperature (related to initial vibrational temperature, see input.config in source code), [K]
* initial scalar_1 - Initial value of species 2 mole fraction
+
* initial scalar_1 - Initial value of turbulent eddy viscosity, [Pa-s]
* initial scalar_2 - Initial value of species 3 mole fraction
 
* initial scalar_3 - Initial value of species 4 mole fraction
 
* initial scalar_4 - Initial value of species 5 mole fraction
 
 
* initial pressure - Static pressure of the gas, [Pa]
 
* initial pressure - Static pressure of the gas, [Pa]
** For multi-species flows, this value is used in combination with the initial scalar values to compute the mole fraction of species 1
+
** For multi-species flows, this value is used in combination with solver.inp values to compute the mole fraction of each species
  
 
== Simulation Inputs ==
 
== Simulation Inputs ==
  
 +
Below is an example of the input script for the current version of the code. Capability is included for handling multi-species flows up to number of species (''nsp'') equal to 5.
  
Example of solver.inp file:
+
=== Example of solver.inp file: ===
  
  <nowiki># PHASTA_HYP Version 1 Input File
+
  <nowiki>
  
 
#SOLUTION CONTROL  
 
#SOLUTION CONTROL  
 
#{                 
 
#{                 
 
     Equation of State: Compressible
 
     Equation of State: Compressible
     Number of Timesteps: 100 
+
     Number of Timesteps: 1000
     Time Step Size: 3.2339656949004e-08
+
     Time Step Size: 1e-8
 +
    Turbulence Model: No-Model # RANS-SA
  
    Limit Density: 0 0.01 0.1        # solution limiting on variables [switch min max]
+
#      Limit instructions : switch min max -- change switch from zero to activate
    Limit u1: 0 0. 2.8e3
+
Limit Temperature : 0 0 0 # also limits vibrational temperature
    Limit u2: 0 0 0
+
Limit u1 : 0 0 0
    Limit u3: 0 0 0
+
Limit u2 : 0 0 0  
    Limit Temperature: 0 230 3500    # also limits vibrational temperature
+
Limit u3 : 0 -1 1
 +
Limit rho1 : 0 1e-20 0  
 +
Limit rho2 : 0 1e-20 0
 +
Limit rho3 : 0 1e-20 0
 +
Limit rho4 : 0 1e-20 0
 +
        Limit rho5 : 0 1e-20 0
 +
        Limit Scalar 1 : 0 0 0
 
#}
 
#}
  
 
#OUTPUT CONTROL
 
#OUTPUT CONTROL
 
#{
 
#{
     Number of Timesteps between Restarts: 250 
+
     Number of Timesteps between Restarts: 100 
 
     Print Error Indicators: True                  # shock error stored in column 6, DC factor \nu stored in column 10
 
     Print Error Indicators: True                  # shock error stored in column 6, DC factor \nu stored in column 10
 
     Error Indicator Threshold: 0.01                # err > thresh*err_max is flagged as 1 (i.e. identified for refinement)
 
     Error Indicator Threshold: 0.01                # err > thresh*err_max is flagged as 1 (i.e. identified for refinement)
Line 71: Line 74:
 
     Number of Error Smoothing Iterations: 0        # ierrsmooth
 
     Number of Error Smoothing Iterations: 0        # ierrsmooth
 
     Load and set 3D IC: False                      # load the flowfield from a file as the initial condition
 
     Load and set 3D IC: False                      # load the flowfield from a file as the initial condition
     Position Tolerance on IC Load: 1e-7            # sets the tolerance for matching points for loading the initial condition
+
     Position Tolerance on IC Load: 1e-7            # sets the tolerance for matching node locations while loading the initial condition
 
#}
 
#}
  
Line 77: Line 80:
 
#MATERIAL CONTROL
 
#MATERIAL CONTROL
 
#{
 
#{
     Viscosity: 1.95508431704028e-5     #<<<<< this is required to run (value used if nsp.eq.99)
+
     Viscous Control: Viscous  #None 
     Thermal Conductivity: 26.6843390135759e-3
+
     Shear Law: Wilke's Mixing Rule  # ishear=1  => matflag(2,n)
     Viscous Control: None   #Viscous  #None
+
     Bulk Viscosity Law: Constant Bulk Viscosity # ibulk=0 => matflag(3,n)
 
+
     Conductivity Law: Wilke's Mixing Rule   # icond=1 => matflag(4,n)
 
#}
 
#}
 
 
 
  
 
#REACTING FLOW
 
#REACTING FLOW
 
#{
 
#{
 
     Number of species: 1              # nsp
 
     Number of species: 1              # nsp
#.......currently only allowing 1<=nsp<=5.
+
     Species IDs: 1 2 3 4 5             # ispecIDs
#.........and make sure scalars passed from simmodeler are in correct slots
+
                                         # IDs numbered in order: N2=1,O2=2,NO=3,N=4,O=5
#
+
     Inflow Concentrations: 0.78997 0.21 1e-5 1e-5 1e-5 # concinf
     Species IDs: 1            # specIDs, length of array must equal
+
     Allow reactions: False            # ichem = 1 if True. right now can only be used for nsp=5
                                         #   nsp (IDs numbered in order:
+
     Temperature threshold: 2000        # Tth--below which, reactions ignored. 2000 K is from Chalot 1990
                                        #            N2,O2,NO,N,O
+
     Equilibrium Tolerance: 1e-5       # chemtol (max species production rate for reactions to equilibrium in IC's/BC's)
                                        #  ID:99 for Air molecule
 
     Ref Entropy Conditions: 1e3 230 230 0   #[P0,T0,T0vib,S0]
 
    Ref Entropy Species: 1 2          # uses IDs above (NOT ACTIVE YET)
 
    Ref Entropy Mole Frac: 1 0 0 0 0
 
     Allow reactions: False            # ichem = 1 if True
 
    Chemical heat release: False      # iqtot = 1 if True
 
    Limit on reaction step: 0.00001    # rlim (limits change in species cs per step)
 
Tolerance to global time: 1.0  #0.01    # ttol
 
     Temperature threshold: 500        # Tth (below which, reactions ignored)
 
     Reaction solver MIN steps: 5       # nstepmin
 
    Reaction solver MAX steps: 100    # nstepmax
 
 
     Two Temperature coefficient: 0.5  # qta (Tvib**qta*T**(1-qta))
 
     Two Temperature coefficient: 0.5  # qta (Tvib**qta*T**(1-qta))
     Exclude vib energy: True          # ivib0 = 1 if True
+
     Vibrational Temperature BC: 1      # TvibBC. must be a positive number. at any BC with T set:
     Exclude vib source: True          # ivibS0 = 1 if True
+
                                        # if greater than 5, then Tvib = TvibBC
    Tvib BC Ratio: 1.0 # at any BC with T set, Tvib = tvibBC * T
+
                                        # else, then Tvib = TvibBC*T
     Vibrational Temperature IC: -1   # set negative value to force Tvib = T
+
     Vibrational Temperature IC: -1     # TvibIC (if negative, Tvib = T initially. if positive, value here is used)
 +
    Restart from primitive file: 0    # 1 if restarting from file from primitive code
 
#}
 
#}
 
 
  
 
#LINEAR SOLVER
 
#LINEAR SOLVER
 
#
 
#
     Solver Type: GMRES sparse      <<< default, but why does it have to be set?
+
     Solver Type: GMRES sparse       
     Number of GMRES Sweeps per Solve: 1     # replaces nGMRES
+
     Number of GMRES Sweeps per Solve: 1                       # replaces nGMRES
 
     Minimum Number of Iterations per Nonlinear Iteration: 10  # minIters
 
     Minimum Number of Iterations per Nonlinear Iteration: 10  # minIters
     Number of Krylov Vectors per GMRES Sweep: 100 # replaces Kspace     
+
     Number of Krylov Vectors per GMRES Sweep: 100       # replaces Kspace     
     Tolerance on Momentum Equations: 0.01       # epstol(1), affects etol for Hessenberg problem
+
     Tolerance on Momentum Equations: 0.01                     # epstol(1), affects etol for Hessenberg problem
 
 
 
#}
 
#}
  
 
#DISCRETIZATION CONTROL
 
#DISCRETIZATION CONTROL
 
#{
 
#{
     Weak Form: SUPG # alternate is Galerkin only for compressible
+
     Weak Form: SUPG             # alternate is Galerkin only for compressible
 
     Time Integration Rule: First Order      # 1st Order sets rinf(1) -1
 
     Time Integration Rule: First Order      # 1st Order sets rinf(1) -1
#    Time Integration Rule: Second Order    # Second Order sets rinf next
 
#    Time Integration Rho Infinity: 0.5    # rinf(1) Only used for 2nd order
 
#    Tau Matrix: Diagonal-Franca-Entropy              #itau=4
 
 
     Tau Matrix: Matrix-Ent-Adv
 
     Tau Matrix: Matrix-Ent-Adv
#    Tau Matrix: Diagonal-Shakib-Entropy
 
 
     Include Viscous Correction in Stabilization: False    # if p=1 idiff=1
 
     Include Viscous Correction in Stabilization: False    # if p=1 idiff=1
 
                                                           # if p=2 idiff=2   
 
                                                           # if p=2 idiff=2   
 
     Tau Time Constant: 1.0
 
     Tau Time Constant: 1.0
     Tau C Scale Factor: 1.0                   # taucfct  best value depends
+
     Tau C Scale Factor: 1.0                 # taucfct  best value depends
     Number of Elements Per Block: 64       #ibksiz
+
     Number of Elements Per Block: 64       #ibksiz
  
 
#}
 
#}
 
  
 
#DISCONTINUITY CAPTURING
 
#DISCONTINUITY CAPTURING
 
#{
 
#{
     Discontinuity Capturing: DC-quadratic    # Current Options: DC-mallet, DC-minimum, DC-quadratic, DC-yzbeta
+
     Shock Sensor : False # i_ss_on = 1 if True
    Multiplier for DC factor: 1     # scales DC variable in e3DC
+
     Shock Sensor Value Full Off : 0.05 # % change of temperature across element above which we ramp mu until
     Discontinuity Capturing Scheme: 1 #0: discontinuous, 1: continuous (L2 projection)
+
     Shock Sensor Value Full On : 0.2    # percent change after which we hold  at scale factor * mu
     Include Source Term in DC: 0           # 1: sets idcSRC to 1
+
     Shock Sensor Scale Factor : 100.0     # scale factor on mu or other sensor
     Write DCqpt: 0
+
     Wall Distance to Shield Shock Sensor : -1     # The above won't be applied within this wall distance (-1 ignores this condition)
#----Parameters for YZBeta DC operator ----
 
     Beta Value: 1                       # 1: smoother , 2: sharper, 12: compromise between 1 and 2
 
    YZB Farfield Conditions: 1e5 2119 10 10 300 # [Pressure, X-Vel, Y-Vel, Z-Vel, Temperature]
 
    YZB Farfield Mole Frac: 1 0 0 0 0  # mole fractions at reference condition
 
                                        # [xN2,xO2,xNO,xN,xO]
 
                                        # must sum to 1, must be length 5
 
    Include Umod Term: 1                # 0: no, 1: yes
 
    Mach Adjustment Bm Value: 1        # 0: off,1: smoother shock, 2: sharper shock
 
    Mach Adjustment Bj Value: 6        # 0: off,1: smoother shock, 2: sharper shock
 
    Include Time Term in Z: 1          # 0: no, 1: yes
 
#------------------------------------------
 
 
 
 
 
#}
 
#}
 
 
 
 
  
 
#STEP SEQUENCE  
 
#STEP SEQUENCE  
 
#{
 
#{
       Step Construction  : 0 1 0 1
+
       Step Construction  : 0 1 0 1 # laminar
 +
      # Step Construction  : 0 1 0 1 10 11 10 11 # turbulent
 
#}</nowiki>
 
#}</nowiki>
  
 +
== Post-Processing ==
  
 +
An example of the ''flow.pht'' file is provided to demonstrate the ordering of the variables that can be viewed in Paraview. Note that both the ''evisc'' and ''dwal'' fields would require turbulence modeling to be turned on for the example below to work. This is controlled through the solver.inp options.
  
== Post-Processing ==
+
=== Example of flow.pht file ===
  
 
  <nowiki><?xml version="1.0" ?>
 
  <nowiki><?xml version="1.0" ?>
<PhastaMetaFile number_of_pieces="24">
+
<PhastaMetaFile number_of_pieces="40">
   <GeometryFileNamePattern pattern="24-procs_case/geombc.dat.%d"  
+
   <GeometryFileNamePattern pattern="ent_from_NAS/geombc.dat.%d"  
 
                             has_piece_entry="1"
 
                             has_piece_entry="1"
 
                             has_time_entry="0"/>
 
                             has_time_entry="0"/>
   <FieldFileNamePattern pattern="24-procs_case/restart.%d.%d"
+
   <FieldFileNamePattern pattern="ent_from_NAS/restart.%d.%d"
 
                         has_piece_entry="1"
 
                         has_piece_entry="1"
 
                         has_time_entry="1"/>
 
                         has_time_entry="1"/>
   <TimeSteps number_of_steps="1"  
+
   <TimeSteps number_of_steps="9"
 
      auto_generate_indices="1"
 
      auto_generate_indices="1"
               start_index="2010"
+
               start_index="65800"
      increment_index_by="50"
+
      increment_index_by="1000"
 
               start_value="0"
 
               start_value="0"
 
               increment_value_by="1">
 
               increment_value_by="1">
 
   </TimeSteps>
 
   </TimeSteps>
   <Fields number_of_fields="7">
+
   <Fields number_of_fields="10">
 
     <Field phasta_field_tag="solution"
 
     <Field phasta_field_tag="solution"
             paraview_field_tag="rho"
+
             paraview_field_tag="rho_1"
 
             start_index_in_phasta_array="0"
 
             start_index_in_phasta_array="0"
 +
            number_of_components="1"
 +
            data_dependency="0"
 +
            data_type="double"/>
 +
    <Field phasta_field_tag="solution"
 +
            paraview_field_tag="rho_2"
 +
            start_index_in_phasta_array="1"
 +
            number_of_components="1"
 +
            data_dependency="0"
 +
            data_type="double"/>
 +
    <Field phasta_field_tag="solution"
 +
            paraview_field_tag="rho_3"
 +
            start_index_in_phasta_array="2"
 +
            number_of_components="1"
 +
            data_dependency="0"
 +
            data_type="double"/>
 +
    <Field phasta_field_tag="solution"
 +
            paraview_field_tag="rho_4"
 +
            start_index_in_phasta_array="3"
 +
            number_of_components="1"
 +
            data_dependency="0"
 +
            data_type="double"/>
 +
    <Field phasta_field_tag="solution"
 +
            paraview_field_tag="rho_5"
 +
            start_index_in_phasta_array="4"
 
             number_of_components="1"
 
             number_of_components="1"
 
             data_dependency="0"
 
             data_dependency="0"
Line 202: Line 194:
 
     <Field phasta_field_tag="solution"
 
     <Field phasta_field_tag="solution"
 
             paraview_field_tag="velocity"
 
             paraview_field_tag="velocity"
             start_index_in_phasta_array="1"
+
             start_index_in_phasta_array="5"
 
             number_of_components="3"
 
             number_of_components="3"
 
             data_dependency="0"
 
             data_dependency="0"
Line 208: Line 200:
 
     <Field phasta_field_tag="solution"
 
     <Field phasta_field_tag="solution"
 
             paraview_field_tag="temp_vib"
 
             paraview_field_tag="temp_vib"
             start_index_in_phasta_array="4"
+
             start_index_in_phasta_array="8"
 
             number_of_components="1"
 
             number_of_components="1"
 
             data_dependency="0"
 
             data_dependency="0"
 
             data_type="double"/>
 
             data_type="double"/>
 
     <Field phasta_field_tag="solution"
 
     <Field phasta_field_tag="solution"
             paraview_field_tag="temperature"
+
             paraview_field_tag="temp"
             start_index_in_phasta_array="5"
+
             start_index_in_phasta_array="9"
 +
            number_of_components="1"
 +
            data_dependency="0"
 +
    data_type="double"/>
 +
    <Field phasta_field_tag="solution"
 +
            paraview_field_tag="evisc"
 +
            start_index_in_phasta_array="10"
 
             number_of_components="1"
 
             number_of_components="1"
 
             data_dependency="0"
 
             data_dependency="0"
 
             data_type="double"/>
 
             data_type="double"/>
     <Field phasta_field_tag="errors"
+
     <Field phasta_field_tag="dwal"
             paraview_field_tag="nu"
+
             paraview_field_tag="dwal"
             start_index_in_phasta_array="9"
+
             start_index_in_phasta_array="0"
 
             number_of_components="1"
 
             number_of_components="1"
 
             data_dependency="0"
 
             data_dependency="0"

Latest revision as of 10:07, 6 September 2024

Background

The following information relates to the use of the thermochemical nonequilibrium (TCNEQ) version of PHASTA written in terms of entropy variables. The reader is referred to the following for additional information.

  • F. Chalot, T.J.R. Hughes, and F. Shakib, "Symmetrization of Conservation Laws with Entropy for High-Temperature Hypersonic Computations," Computing Systems in Engineering, 1(2-4):495–521, 1990.
  • J. Pointer, "Influence of Interpolation Variables and Discontinuity Capturing Operators on Inviscid Hypersonic Flow Simulations Using a Stabilized Continuous Galerkin Solver," Ph.D. dissertation, University of Colorado, Boulder, CO, 2022.


Pre-Processing

In this section, details of the meshing and model attributes are provided. Currently, capability exists to simulate a gas with number of species (nsp) ≤ 5.

Meshing

Within the Simmodeler utility, the mesh can either be created or loaded from an existing .cas file. Below are steps for loading a mesh from a .cas file:

  1. Launch Simmodeler (for this example, SimModeler7.0-190604 is used)
  2. File > Import Discrete Data > (select .cas file to import) > (keep defaults and click OK) > (select YES to keep volume mesh)
  3. Save .sms and .smd files
  4. Attributes can now be assigned to the model as normal

Boundary Conditions

Below are the recognized boundary conditions that can be applied for the current version:

  • comp1/comp2/comp3 - Specification of one/two/three components of velocity, [m/s]
  • temperature - Specification of translational-rotational temperature, [K]. By default, vibrational temperature is held in equilibrium with this value and nonequilibrium is controlled through simulation inputs (see input.config in source code)
  • surfID - When value is set to 702, the boundary is treated as a slip wall. If using this option, include a boundary layer mesh along the surface to ensure the wall normal direction is accurately computed.
  • scalar_1 - Turbulent eddy viscosity, [Pa-s]
  • pressure - Specification of static pressure over a surface, [Pa]
    • Used to compute mole fractions of each species of the gas with Dalton's Law of partial pressures in conjunction with reference mole fractions specified in solver.inp
  • heat flux - set to zero for adiabatic wall boundary condition

Initial Conditions

Below are the required initial conditions for the current version:

  • initial velocity - Components and magnitude of flow velocity, [m/s]
    • If a supersonic outlet condition is used, set such that flow is initialized Mach > 1
  • initial temperature - Value used to set translational-rotational temperature (related to initial vibrational temperature, see input.config in source code), [K]
  • initial scalar_1 - Initial value of turbulent eddy viscosity, [Pa-s]
  • initial pressure - Static pressure of the gas, [Pa]
    • For multi-species flows, this value is used in combination with solver.inp values to compute the mole fraction of each species

Simulation Inputs

Below is an example of the input script for the current version of the code. Capability is included for handling multi-species flows up to number of species (nsp) equal to 5.

Example of solver.inp file:


#SOLUTION CONTROL 
#{                
     Equation of State: Compressible
     Number of Timesteps: 1000
     Time Step Size: 1e-8
     Turbulence Model: No-Model # RANS-SA

#       Limit instructions : switch min max -- change switch from zero to activate
	Limit Temperature : 0 0 0 # also limits vibrational temperature
	Limit u1 : 0 0 0 
	Limit u2 : 0 0 0 
	Limit u3 : 0 -1 1
	Limit rho1 : 0 1e-20 0 
	Limit rho2 : 0 1e-20 0 
	Limit rho3 : 0 1e-20 0 
	Limit rho4 : 0 1e-20 0 
        Limit rho5 : 0 1e-20 0 
        Limit Scalar 1 : 0 0 0 
#}

#OUTPUT CONTROL
#{
     Number of Timesteps between Restarts: 100  
     Print Error Indicators: True                   # shock error stored in column 6, DC factor \nu stored in column 10
     Error Indicator Threshold: 0.01                # err > thresh*err_max is flagged as 1 (i.e. identified for refinement)
                                                    #   --> smaller values = narrower flagged region along shock
     Number of Error Smoothing Iterations: 0        # ierrsmooth
     Load and set 3D IC: False                      # load the flowfield from a file as the initial condition
     Position Tolerance on IC Load: 1e-7            # sets the tolerance for matching node locations while loading the initial condition
#}


#MATERIAL CONTROL
#{
     Viscous Control: Viscous   #None   
     Shear Law: Wilke's Mixing Rule  # ishear=1  => matflag(2,n)
     Bulk Viscosity Law: Constant Bulk Viscosity # ibulk=0 => matflag(3,n)
     Conductivity Law: Wilke's Mixing Rule    # icond=1 => matflag(4,n)
#}

#REACTING FLOW
#{
     Number of species: 1               # nsp
     Species IDs: 1 2 3 4 5             # ispecIDs
                                        # IDs numbered in order: N2=1,O2=2,NO=3,N=4,O=5
     Inflow Concentrations: 0.78997 0.21 1e-5 1e-5 1e-5 # concinf
     Allow reactions: False             # ichem = 1 if True. right now can only be used for nsp=5
     Temperature threshold: 2000        # Tth--below which, reactions ignored. 2000 K is from Chalot 1990
     Equilibrium Tolerance: 1e-5        # chemtol (max species production rate for reactions to equilibrium in IC's/BC's)
     Two Temperature coefficient: 0.5   # qta (Tvib**qta*T**(1-qta))
     Vibrational Temperature BC: 1      # TvibBC. must be a positive number. at any BC with T set:
                                        # if greater than 5, then Tvib = TvibBC
                                        # else, then Tvib = TvibBC*T
     Vibrational Temperature IC: -1     # TvibIC (if negative, Tvib = T initially. if positive, value here is used)
     Restart from primitive file: 0     # 1 if restarting from file from primitive code
#}

#LINEAR SOLVER
#
     Solver Type: GMRES sparse      
     Number of GMRES Sweeps per Solve: 1                       # replaces nGMRES
     Minimum Number of Iterations per Nonlinear Iteration: 10  # minIters
     Number of Krylov Vectors per GMRES Sweep: 100	       # replaces Kspace    
     Tolerance on Momentum Equations: 0.01                     # epstol(1), affects etol for Hessenberg problem
#}

#DISCRETIZATION CONTROL
#{
     Weak Form: SUPG 		             # alternate is Galerkin only for compressible
     Time Integration Rule: First Order      # 1st Order sets rinf(1) -1
     Tau Matrix: Matrix-Ent-Adv
     Include Viscous Correction in Stabilization: False    # if p=1 idiff=1
                                                           # if p=2 idiff=2  
     Tau Time Constant: 1.0
     Tau C Scale Factor: 1.0                 # taucfct  best value depends
     Number of Elements Per Block: 64        #ibksiz

#}

#DISCONTINUITY CAPTURING
#{
     Shock Sensor : False # i_ss_on = 1 if True
     Shock Sensor Value Full Off : 0.05  # % change of temperature across element above which we ramp mu until
     Shock Sensor Value Full On : 0.2    # percent change after which we hold  at scale factor * mu
     Shock Sensor Scale Factor : 100.0     # scale factor on mu or other sensor
     Wall Distance to Shield Shock Sensor : -1     # The above won't be applied within this wall distance (-1 ignores this condition)
#}

#STEP SEQUENCE 
#{
       Step Construction  : 0 1 0 1 # laminar
       # Step Construction  : 0 1 0 1 10 11 10 11 # turbulent
#}

Post-Processing

An example of the flow.pht file is provided to demonstrate the ordering of the variables that can be viewed in Paraview. Note that both the evisc and dwal fields would require turbulence modeling to be turned on for the example below to work. This is controlled through the solver.inp options.

Example of flow.pht file

<?xml version="1.0" ?>
<PhastaMetaFile number_of_pieces="40">
   <GeometryFileNamePattern pattern="ent_from_NAS/geombc.dat.%d" 
                            has_piece_entry="1"
                            has_time_entry="0"/>
   <FieldFileNamePattern pattern="ent_from_NAS/restart.%d.%d"
                         has_piece_entry="1"
                         has_time_entry="1"/>
   <TimeSteps number_of_steps="9"
	      auto_generate_indices="1"
              start_index="65800"
	      increment_index_by="1000"
              start_value="0"
              increment_value_by="1">
   </TimeSteps>
   <Fields number_of_fields="10">
     <Field phasta_field_tag="solution"
            paraview_field_tag="rho_1"
            start_index_in_phasta_array="0"
            number_of_components="1"
            data_dependency="0"
            data_type="double"/>
    <Field phasta_field_tag="solution"
            paraview_field_tag="rho_2"
            start_index_in_phasta_array="1"
            number_of_components="1"
            data_dependency="0"
            data_type="double"/>
     <Field phasta_field_tag="solution"
            paraview_field_tag="rho_3"
            start_index_in_phasta_array="2"
            number_of_components="1"
            data_dependency="0"
            data_type="double"/>
     <Field phasta_field_tag="solution"
            paraview_field_tag="rho_4"
            start_index_in_phasta_array="3"
            number_of_components="1"
            data_dependency="0"
            data_type="double"/>
     <Field phasta_field_tag="solution"
            paraview_field_tag="rho_5"
            start_index_in_phasta_array="4"
            number_of_components="1"
            data_dependency="0"
            data_type="double"/>
     <Field phasta_field_tag="solution"
            paraview_field_tag="velocity"
            start_index_in_phasta_array="5"
            number_of_components="3"
            data_dependency="0"
            data_type="double"/>
     <Field phasta_field_tag="solution"
            paraview_field_tag="temp_vib"
            start_index_in_phasta_array="8"
            number_of_components="1"
            data_dependency="0"
            data_type="double"/>
     <Field phasta_field_tag="solution"
            paraview_field_tag="temp"
            start_index_in_phasta_array="9"
            number_of_components="1"
            data_dependency="0"
	    data_type="double"/>
     <Field phasta_field_tag="solution"
            paraview_field_tag="evisc"
            start_index_in_phasta_array="10"
            number_of_components="1"
            data_dependency="0"
            data_type="double"/>
     <Field phasta_field_tag="dwal"
            paraview_field_tag="dwal"
            start_index_in_phasta_array="0"
            number_of_components="1"
            data_dependency="0"
            data_type="double"/>
  </Fields>
</PhastaMetaFile>