######################################################################### # General Control Parameter # ######################################################################### // maxSimuStep: The max simulation step, don't care simulation is restart or not. // intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved. // intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved. // intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. // intervalStepRes: The step intervals for residual 'res.dat' saved. int maxSimuStep = 400; int intervalStepFlow = 100; int intervalStepPlot = 100; int intervalStepForce = 10; int intervalStepRes = 10; // ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. // 0 -- no precondition process. (default, mach > 0.3) // 1 -- carry out precondition process. (mach number <= 0.3) int ifLowSpeedPrecon = 0; // ----------------- Periodic Parameters -------------------------------- // Notice:Periodic boundary only support translation or rotation along the X axis! // periodicType: Which symmetry plane is used in the mesh. // 0 -- without Periodic Boundary. // 1 -- Translational periodicity. // 2 -- Rotational periodicity. int periodicType = 1; double translationLength[] = [0.0,0.0,0.5]; double rotationAngle = 0; ######################################################################### # Inflow Parameter # ######################################################################### // refMachNumber: Mach number. // attackd: Angle of attack. // angleSlide: Angle of sideslip. // inflowParaType: The type of inflow parameters. // 0 -- the nondimensional conditions. // 1 -- the flight conditions. // 2 -- the experiment conditions. // 3 -- the subsonic boundary conditions. // refReNumber: Reynolds number, which is based unit length, unit of 1/m. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition. // refDimensionalPressure: Dimensional reference pressure, or the total pressure only for the experiment condition. // height: Fly height, unit of km. // gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter.Common dimensions like: // 1 dm = 0.1 m. // 1 cm = 0.01 m. // 1 mm = 0.001m. // 1 inch = 0.0254m. // 1 foot = 12 inches = 0.3048m. // 1 yard = 3 feet = 0.9144m. // forceReferenceLength, forceReferenceLengthSpanWise, forceReferenceArea: Reference length, SpanWise length and area, independent of grid unit. // TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent of grid unit. double refMachNumber = 0.4; double attackd = 9.29; double angleSlide = 0.00; int inflowParaType = 0; double refReNumber = 50000.0; double refDimensionalTemperature = 288.15; //int inflowParaType = 1; //double height = 0.001; double gridScaleFactor = 1.0; double forceReferenceLengthSpanWise = 1.0; // unit of meter. double forceReferenceLength = 1.0; // unit of meter. double forceReferenceArea = 1.0; // unit of meter^2. double TorqueRefX = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter. ######################################################################### # Physical models # ######################################################################### // viscousType : Viscous model. // 0 -- Euler. // 1 -- Lamilar. // 3 -- 1eq turbulent. // 4 -- 2eq turbulent. // viscousName: Laminar or tubulent model. // -- "1eq-sa", when viscousType = 3. // -- "2eq-kw-menter-sst", when viscousType = 4. // DESType: Type of DES. // 0 -- RANS.(default) // 1 -- DES. // 2 -- DDES. // 3 -- IDDES. //int viscousType = 0; //string viscousName = "Euler"; int viscousType = 1; string viscousName = "laminar"; //int viscousType = 3; //string viscousName = "1eq-sa"; //int viscousType = 4; //string viscousName = "2eq-kw-menter-sst"; int DESType = 0; int roeEntropyFixMethod = 3; double roeEntropyScale = 1.0; ######################################################################### # Spatial Discretisation # ######################################################################### #******************************************************************* # Struct Solver * #******************************************************************* // str_limiter_name: Limiter of struct grid. // -- "3rdsmooth", "smooth". // -- "nolim", no limiter. string inviscidSchemeName = "roe"; string str_limiter_name = "3rdsmooth"; #******************************************************************* # UnStruct Solver * #******************************************************************* // uns_limiter_name: Limiter of Unstruct grid. // -- "vencat". // -- "1st", meaning accuracy of first-order. // -- "nolim", no limiter. // venkatCoeff: Coefficient of vencat limiter, when uns_limiter_name = 'vencat'. // The smaller the value, the more robust it is. string uns_limiter_name = "vencat"; double venkatCoeff = 50.0; ######################################################################### # Temporal Discretisation # ######################################################################### // iunsteady: Steady or unsteady. // 0 -- steady. // 1 -- unsteay. // CFLEnd: The CFL number, [0.1, 100]. // The bigger the value, the convergence faster but lower robustness. // nLUSGSSweeps: Number of Sub-iteration of LU-SGS. // 1 -- is recommended for structured solver. // 1-3 -- is recommended for unstructured solver. int iunsteady = 1; double physicalTimeStep = 0.002; int ifStaticsFlowField = 1; int ifStaticsReynoldsStress = 1; int startStatisticStep = 30010; double statisticalTimePeriod = -1.0; int statisticMethod = 0; int min_sub_iter = 20; int max_sub_iter = 20; double CFLStart = 10.0; double CFLEnd = 10.0; int CFLVaryStep = 1; int nLUSGSSweeps = 4; double LUSGSTolerance = 1.0e-20; //----------------------------------------------------------------------- # LES Parameter # //----------------------------------------------------------------------- // iLES: Create LESSolver or not. // >= 1 - Create LESSolver; // < 1 - not. // amplitudeofDisturb: Amplitude of adding disturb. // disturbstep: Unsteady time step or steady iteration of adding random disturb. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter. // = 0 - in only first sub-iter; // != 0 - in every sub-iter. // ipraddisturb: Add density and pressure disturb or not. // ibodyforce: Add body force in source flux of NS equations or not. // = 0 - not; // != 0 - Add body force. // bodyforce: Body force in source flux of NS equations or not. // utau: friction velocity, using in DNSDisturb. // sgsmodel: subgrid scale model. // = "smagorinsky"; // = "dsm"; // = "wale". // deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); // = 2 - pow(deltai * deltaj *deltak, 1/3); // = 3 - Devloped by Scotti. // wallDampingFunctionType: = 0 - no wall function; // = 1 - van Driest; // = 2 - developed by Dr. Deng Xiaobing; // = 3 - developed by Piomelli. // turbViscousCutType: turbulent viscosity cut type. // = 0 - mu_total = mut + mul; // = 1 - mu_total = max(mut-mul,0)+ mul; // = 2 - mu_total = max(mut ,0)+ mul. // smagConstant: constant of smagorinsky model. // waleConstant: constant of wale model. // filterDirection[3]: filter variables in i, j, k direction or not. // averageDirection[3]: average variables in i, j, k direction or not. // isotropicConstant: constant of isotropic part of SGS stress. int iLES = 1; string sgsmodel = "sigma"; int deltaFunctionType = 2; int wallDampingFunctionType = 0; int turbViscousCutType = 2; double smagConstant = 0.11; double isotropicConstant = 0.0; double waleConstant = 0.6; double sigmaConstant = 1.35; int filterDirection[] = [1, 1, 0]; int averageDirection[] = [1, 1, 0]; double testFilterScale = 2.0; int averageWidth = 1; int monitorNegativeConstant = 0; ######################################################################### # High Order Struct Solver # ######################################################################### // ifvfd: // 0 -- NSSolverStruct using Finite Volume Method. // 1 -- NSSolverStruct using Finite Differ Method. // SolverStructOrder: Spatial discretisation order of NS equations with struct grid. // <= 2 -- finite volume method. // >= 3 -- finite difference order. (to be completed) // 0 -- default. // str_highorder_interpolation_epsilon: Epsilon in weighted interpolation, bigger epsilon, better convergence, // smaller epsilon, robuster for shock-detecting. // str_highorder_interpolation_type: // -- "classical", "test". // str_highorder_flux_name: // -- "roe", "steger". // structhighordergradient: // -- "conservation", "chain_rule". int ifvfd = 1; string str_highorder_solver = "WCNS"; int SolverStructOrder = 0; double str_highorder_interpolation_epsilon = 1.0e-4; string str_highorder_interpolation_type = "test"; string str_highorder_flux_name = "roe"; string structhighordergradient = "conservation"; ######################################################################### # Multi-Grid parameters # ######################################################################### // nMGLevel: The number of Multi-Grid level. // = 1 -- single-level. // > 1 -- multi-level. // flowInitStep: Flow initialization step, 0 - 500 is suggested. // Multi-Grid : Number of steps computing on coarse grid, during flow initialization. // Single-Grid: Number of steps computing using first-order with vanleer, during flow initialization. int nMGLevel = 1; int flowInitStep = 0; ######################################################################### # File In or Out # ######################################################################### // gridfile: The partitioned Grid file path, using relative path, // which is relative to the working directory. // IMPORTANT WARNING: The file index should be ignored, // e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts, // Please use 'rae2822_hybrid2d__4.fts' here! // plotFieldType: If dump out the whole field results to tecplot or not, 0 / 1. string gridfile = "./grid/naca0012_str_26m_yup__400.fts"; int plotFieldType = 1; // ----------------- Advanced Parameters, DO NOT care it ---------------- // nVisualVariables: Number of variables want to be dumped for tecplot visualization. // visualVariables: Variable types dumped, listed as following: // -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6), // -- viscosityLaminar(7), viscosityTurbulent(8), // -- vorticity_x(9), vorticity_y(10), vorticity_z(11), vorticityMagnitude(12), // -- strain_rate(13), Q_criteria(14), Cp(15), timeStep(16), volume(17), // -- modeledTKE(18), modeleddissipationrate(19), SSTF1(20), SSTF2(21). // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Variables order must from small to big. int nVisualVariables = 9; int visualVariables[] = [0, 1, 2, 3, 4, 5, 8, 12, 14]; // limitVariables: Limit model (It is useful only if limitVector is 0). // 0 -- limit only for pressure and denstiny, then get the min value. // 1 -- limit for every variables, then get the min value. // limitVector: // 0 -- Each variable use the same limiter coefficient. // 1 -- Each variable use the respective limiter coefficients. // reconmeth: // 0 -- When reconstruct face value, Q+, Q- use respective limiter coefficients. // 1 -- Q+, Q- use the min limiter coefficients of left and right cell. int reconmeth = 1; int limitVariables = 0; int limitVector = 0; double eddyViscosityLimit = 1.0e5; double MUSCLCoefXk = 0.8;