input.cntl

Cart3D


#
#    +--------------------------------------------------------+
#    |       Input control & steering file for flowCart       |
#    |           3D Cut-Cell Cartesian Flow Solver            |
#    +--------------------------------------------------------+
#   
#      NOTE:  o Start Comments in this file with the "#" character
#             o Blocks can come in any order
#             o info within blocks can come in any order
#
#             o  EMACS USERS: emacs will syntactically highlight
#                this file for you following shell-script-mode rules.
#                to get it to do this automatically, add the following
#                line to your .emacs file.
#                (setq auto-mode-alist
#                   (append'(("\\.cntl$" . shell-script-mode) ) auto-mode-alist))
#
#
# --------------------------------------------------------------

$__Case_Information:      # ...Specify Free Stream Quantities

Mach     0.54  #  (double)
alpha    3.06  #  (double) - angle of attack
beta     0.0   #  (double) - sideslip Angle
gamma    1.4   #  (double) - ratio of specific heats (optional, default = 1.4)

               #...Optional include buoyancy

               #   set Froude number and gravity vector

               #   Froude = (Vref*Vref)/(gref*Lref)
               #          = 9.1328 for std atm@30km w/ Lref = 1km

               # Froude 
(double) (double) (double) (double)
Froude 9.1328  0. 0. -1.
#
  Fr gx gy gz  # with |g| = 1.0

 
$__File_Name_Information:


MeshInfo           Mesh.c3d.Info # Mesh information file (usually Mesh.c3d.Info)
MeshFile           Mesh.mg.c3d   # Mesh file

$__Solver_Control_Information:

#   Runge-Kutta Stage Coefficients
#
#   stageCoef  GradEval  NOTE: GradEval = 0 = no new evaluation at this stage,
#    --------  -------         GradEval = 1 = Yes, re-evaluate at this stage
RK    0.0695        1  #
RK    0.1602       0  #
RK    0.2898       0  # ->to run 1ST ORDER, set GradEval to "0" in all stages
RK    0.5060       0  # ->for "ROBUST MODE" set GradEval to "1" in all stages
RK    1.0          0  #
                        #  You can use any Runge-Kutta scheme you like

CFL           1.4 # CFL number typically between 0.9 and 1.4, 1.2 good default
Limiter       1   # (int) default is 1, organized in order of increasing
                  #       dissipation.
                  #         Limiter: 0 = no Limiter
                  #                  1 = Barth-Jespersen
                  #                  2 = van Leer
                  #                  3 = sin limiter
                  #                  4 = van Albada
                  #                  5 = MinMod
                  #
FluxFun       0   # (int) - Flux Function:   0 = van Leer
                  #                          1 = van Leer-Hanel
                  #                          2 = Colella 1998
                  #                          3 = HLLC (alpha test)
                               
Precon        0   # (int) - Preconditioning: 0 = scalar timestep

wallBCtype    0   # Cut-Cell Boundary Condition type   0 = Agglomerated Normals
                  #                                    1 = SubCell Resolution
nMGlev        3    # (int) - Number of MultiGrid levels (1 = single grid)
MG_cycleType  2   # (int) - MultiGrid cycletype: 1 = "V-cycle", 2 = "W-cycle"
                  # 'sawtooth' cycle is: V-cycle with nPre = 1, nPost = 0
MG_nPre       1   # (int) - nunber of pre-smoothing  passes in multigrid
MG_nPost      1   # (int) - number of post-smoothing passes in multigrid

                  #...Unsteady Run options (all are Optional)
                  #   only active if "-nSteps %d" found on cmd line
TD_method     1   # {0,1} = {Bkwrd Euler "BE1", 2ndOrd Bkwrd "BDF2"} <default=1>
TD_dt_phys    0.1 # Non-dimensional physical time step  t*= L_ref/a_infd



$__Boundary_Conditions:  
                        # BC types: 0 = FAR FIELD (Riemann)
                        #           1 = SYMMETRY
                        #           2 = INFLOW  (specify all)
                        #           3 = OUTFLOW (simple extrap)
                        #          18 = SBC_ATMOSPHERE_TOP (Riemann)
Dir_Lo_Hi     0   0 0   # (int) {0,1,2} direction  (int) Low BC   (int) Hi BC
Dir_Lo_Hi     1   0 0   # (int) {0,1,2} direction  (int) Low BC   (int) Hi BC
Dir_Lo_Hi     2   1 0   # (int) {0,1,2} direction  (int) Low BC   (int) Hi BC

                     #   1. Generic INLET/EXHAUST BC specification ( 2004)
                     #      Specify conditions upstream of a "power face" (jet)
                     #      or downstream of a "inlet" (sink)
                    
#      Use CompIDs to identify surfBC faces on the geometry,
                    
#      use any number of SurfBCs
                    
#      see AIAA Paper 2004-4837
                    
#             (int)  (float) (float) (float) (float) (float)
SurfBC 2  2.0 3.0 0. 0. 5.0      # compID   Rho    Xvel     Yvel    Zvel   Press
SurfBC  3  1.0 0.3 0. 0. 0.714285 # compID   Rho    Xvel     Yvel    Zvel   Press
#
#                    2. Inlet boundary conditions
( see AIAA Paper 2018-0334)
#                                               (int) (float)
InletPressRatioBC  3   1.27  # InletPressRatioBC %d     %f  #  compID  P/P_inf
InletVelocityBC    4   0.73  # InletVelocityBC   %d     %f  #  compID  Vnorm/c_inf
#
#                    3. Nozzle boundary conditions (, see AIAA Paper 2018-0334)
#                                     (int)(float)(float)
PowerStagBC 5   1.4  1.1  # PowerStagBC %d   %f     %f # compID Pt/Ptinf Tt/Ttinf
PowerStagBC 6   1.6  1.3  # PowerStagBC
%d   %f     %f # compID Pt/Ptinf Tt/Ttinf
PowerMFRBC  7   0.5  1.2  # PowerMFRBC 
%d   %f     %f # compID  MFR     Tt/Ttinf



$__Convergence_History_reporting:
iForce     1   # (int) - Report force & mom. information every iSkip cycles.
iHist      1   # (int) - Update 'history.dat' every iHist cycles.
nOrders    8   # (int) - Num of orders of Magnitude reduction in residual.

#
#                    ...PointSensors for convergence monitoring: these allow
#                       "live" sampling of data at any number of specific locations
#                       output while case is running in
"./pointSensor_<Name>.dat"
# pointSensor Name(%s) Xlocation(%g) Ylocation(%g) Zlocation(%g)
pointSensor pt0  0.644  0.0717  0.965 # point sensor name x y z for convrgnce monitor
pointSensor pt1  1.1    0.0717  0.965 # point sensor name x y z for convrgnce monitor
    
$__Partition_Information:  
nPart   1      # (int) - Number of SubDomains to partition into:
type    1      # (int) - Type of partitioning: 1 = SpaceFillingCurve

$__Post_Processing:
#                 Extract "slices" (Pretty printed cutting planes)
#                                      ...general format
#Xslices  (float) (float) ...(float)     -- any number of locations
#Yslices  (float) (float) ...(float)     -- any number of locations
#Zslices  (float) (float) ...(float)     -- any number of locations
#                         ...Example
Zslices 0.0001 .30 .65  .97 1.19 1.34 1.4  # Choose cut-plane locations

#                              ...Point and Line Sensors (output at end
#                                 of run in "./lineSensor_<Name>.dat"
#                                     or in "./pointSensors.dat"
#                             NOTE: You can put in any number of line sensors
#lineSensor Name(%s) Xorig(%g) Yorig(%g) Zorig(%g)   Xdest(%g) Ydest(%g) Zdest(%g)
#lineSensor (Name) (float) (float) (float)  
(float) (float) (float) 
lineSensor LINE1   0.  1.023  0.2331  3.1 1.023  0.2331
lineSensor LINE2   0.  1.023  0.5     3.1 1.023  0.5
#
#
                             ...Equivalent Area line sensor

#eaSensor Name(%s) Xorig Yorig Zorig        Xdest  Ydest  Zdest    Radius
#eaSensor (Name) (float) (float) (float)  
(float) (float) (float) (float)
eaSensor   EA1     0.  1.023  0.5          3.1  1.023  0.5       3.0
#
#pointSensor Name(%s) Xlocation(%g) Ylocation(%g) Zlocation(%g)
pointSensor point1   -2.1  2.3  4.0


#                           ...live steering this section is optional
#                              if it exists it will get re-parsed every
#                              iCLfreq iterations
$__Steering_Information:

#                          ...Target Lift Coef. Steering
#TargetCL  (CL target value) (CL tolerance)  (iCLStart iter) (iCLfrequency)
#          
   (float)           (float)         (int)            (int)
TargetCL  0.2  0.01  60 5   # <- TargetCL TargetValue tolerance iCLstart iCLfreq
# NominalAlphaStep  %f  # (OPTIONAL) choose Initial alpha step, also max step size
NominalAlphaStep 0.2    # (float) Degrees for delta Alpha, OPTIONAL, default <0.2>

#
#              
           ...MassFlow Steering (see AIAA Paper 2018-0334)
#                             May be used on compIDs with "InletVelocityBC"
#TargetMFR (Comp) (MFR target value)
  (tolerance)  (start)   (freq.)
 #          (int)      (float)          (float)     (int)     (int)
TargetMFR    4         0.90             0.0001       150       20

#                          ...Mach Number Steering
#                             May be used on compIDs with "InletVelocityBC"
#TargetMach (Comp) (Mach target) (tolerance)  (start) (freq.)
#           (int)    (float)      (float)      (int)   (int)
TargetMach   4        0.45         0.001        450     10



$__Force_Moment_Processing:
#                           GMP enabled force reporting
#                           requested loads will be logged to
#                           "CompName.dat" during run, and final loads
#                           will be output in 'loadsCC.dat' at termination
#           NOTES:
#            o This section uses components defined in Config.xml

#
# ... Axis definitions (with respect to body axis directions (Xb,Yb,Zb)
#                       w/ usual stability and control orientation)
#

Model_X_axis  -Xb    # <<-- model's X axis is in the (-X) stability axis direction
Model_Y_axis  -Zb    #      see this example for more info
Model_Z_axis  -Yb

#                    ...Reference Area and Length Specifications
#                       Component names and numbers refer to those in Config.xml
#                       "all" and "entire" are special Component names
#                       "entire" = the whole geometry
#                       "all"    = each individual named component
# Reference_Area (float)  compNumberList or compNameList
Reference_Area    1.0  all

# Reference_Length (float) compNumberList or compNameList
Reference_Length  1.  all

# ... Force and Moment Info (logged to 'CompName.dat'
#                with final summary in 'loadsCC.dat' )
#
# Force  compNumber or compName
Force    entire  # compNumber and compNames defined in Config.xml
Force    wing

#                  ...Compute moment of aero loads about arbitrary point
# Moment_Point Xctr(%f) Yctr(%f) Zctr(%f) CompName or CompNumber
Moment_Point 0.25 0. 0. entire
Moment_Point 1.25 0. 0. wing

#                  ..."Moment_Line" is useful for extracting hinge-moments
# Moment_Line X0(%f) Y0(%f) Z0(%f) X1(%f) Y1(%f) Z1(%f) CompName or CompNumber
Moment_Line  0.25 0. 0.    0.25 0. 1.  entire
Moment_Line  0.5  0. 0.    0.7  0. 1.  entire


$__Design_Info:  # OPTIONAL
#                   ...this section pertains to adjoint-based mesh adaptation,
#                      error-estimation and aerodynamic shape optimization.
#                      Listed below are just a subset of the available objective
#                      functions. See complete 
documentation on functionals here. #                      For complete details please see the full documentation
#                      distributed with these modules
#                      in:  $CART3D/doc/adjoint/index.html
#
#
# Objective Function: SUM of functionals (J)
# J = 0 -> W(P-T)^N
# J = 1 -> W(1-P/T)^N
#
# Bound: denotes the active boundary for functionals 0 and 1
# Bound = 0 -> J = (1-P/T)^2
# Bound = 1 -> J = (1-P/T)^2 iff P>T else Obj=0
# Bound =-1 -> J = (1-P/T)^2 iff P<T else Obj=0
#
# 1. Force Coefficients -- objective functions on force coefs:
#    Reference Frame = 0 Aerodynamic Frame
#                    = 1 Aircraft (Body) Frame
#
#    Force Codes: CD=0 Cy=1 CL=2 in Aerodynamic Frame
#    Force Codes: CA=0 CY=1 CN=2 in Aircraft (Body) Frame
#    Format:
#        Name    Force  Frame   J     N   Target Weight Bound GMP_Comp
#      (String) (0,1,2) (0,1) (0,1) (int) (dble) (dble)  (0)  (name)
----------------------------------------------------------------------

optForce  CD       0      0     0     1     0.     1.     0    entire
optForce  CL       2      0     0     1     0.     0.5    0    entire

#           (multiple entries get weighted and summed)
 

# 2. Field Sensor objectives
#            Name      J      N    Target   Weight   Bound
#          (String) (0,1,2) (int) (double) (double) (-1,0,1)
# --------------------------------------------------------
optSensor   LINE1      0      2      0.0      1.0      0

optSensor   point1     0      2      0.0      0.5      0
optSensor   EA1        0      2      0.0      1.0      0
#           (multiple entries get weighted and summed)


# 3. Mass Flow Rate Objective

#    can be used for any GMP_comp w/ surface boundary condition defined
#    in $__Boundary_Conditions section.
#
#            Name     J     N    Target  Weight Bound
GMP_Comp
#           (String) (0,1) (int) (dble)  (dble)  (0)  (name)
# ------------------------------------------------------------
optMassFlow  inlet    0     1      0.    1.0     0  fanFace
optMassFlow  exhaust  0     1      0.    1.0     0  turbineExit



last update December, 2024.