B系列非结构参数,网格及文档更新;新增B19TrapWing算例

This commit is contained in:
hechao 2023-06-15 18:18:40 +08:00
parent cf2e9e39fd
commit e8c3ddafe4
44 changed files with 12074 additions and 8931 deletions

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows + // Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center + // China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 + // (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
########################################################################### ###########################################################################
# Default parameters for Grid conversion # # Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0; int multiblock = 0;
int iadapt = 0; int iadapt = 0;
int SymmetryFaceVector = 1; int SymmetryFaceVector = 1;
int gridReorder = 0; int gridReorder = 0;
int faceReorderMethod = 0; int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
int axisup = 1; // 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition".
// 0 -- Interface. (default) // 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver. // 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Grid data type # # Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1; int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas"; string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = ""; string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------ // ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction. which only support one direction.
// rotationAngle: The relative angle between two periodic face. // rotationAngle: The relative angle between two periodic face.
which is recorded in degrees. which is recorded in degrees.
int periodicType = 0; int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0]; double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0; double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid. // 2 -- refine structured grid.
// maxproc: The number of partition zones that want to be divided into. // maxproc: The number of partition zones that want to be divided into.
// numberOfMultifile: The number of partition grid files that want to be dumped out. // numberOfMultifile: The number of partition grid files that want to be dumped out.
int pgridtype = 0; int pgridtype = 0;
int maxproc = 4; int maxproc = 4;
int numberOfMultifile = 1; int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1]; int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy: // parallelStrategy:
//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. // 0 -- each zone is assigned to the one that defined in grid partition procedure.
//! -# 1 : random assigned for each zone or by some else ways. // 1 -- random assigned for each zone or by some else ways.
int parallelStrategy = 1; int parallelStrategy = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance. // 1 -- perfect balance.
// maxproc -- perfect imbalance. // maxproc -- perfect imbalance.
// 1.05 -- recommended. // 1.05 -- recommended.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int npartmethod = 1; int npartmethod = 1;
int parallelPartitionMethod = 2; int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. // intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual file 'res.dat' saved. // intervalStepRes: The step intervals for residual file 'res.dat' saved.
// 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 maxSimuStep = 20000; int maxSimuStep = 20000;
int intervalStepFlow = 1000; int intervalStepFlow = 1000;
int intervalStepPlot = 1000; int intervalStepPlot = 1000;
int intervalStepSample = 1000; int intervalStepSample = 1000;
int intervalStepForce = 100; int intervalStepForce = 100;
int intervalStepRes = 10; int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible: // compressible:
// 0 -- incompressible flow. // 0 -- incompressible flow.
// 1 -- compressible flow. (default) // 1 -- compressible flow. (default)
int compressible = 1; int compressible = 1;
// 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)
// Kprec: The coefficient K for the cut-off velocity.
// 1.0~3.0 is suggested. (default, 3.0)
// preconFarfieldBCMethod: The precondition method for farfield boundary condition.
// 0 -- precondition far-field boundary based on riemann invariants.
// 1 -- Turkel's simplified far-field boundary condition.
int ifLowSpeedPrecon = 0;
double Kprec = 3.0;
int preconFarfieldBCMethod = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# CFD Control Parameter # # CFD Control Parameter #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions. // 0 -- the nondimensional conditions.
// 1 -- the flight conditions. // 1 -- the flight conditions.
// 2 -- the experiment conditions. // 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions. // 3 -- the subsonic boundary conditions. (Useless!)
// 4 -- the condition that the velocity, temperature and density are given. // 4 -- the condition that the velocity, temperature and density are given.
// 5 -- the condition that the velocity, temperature and pressure are given. // 5 -- the condition that the velocity, temperature and pressure are given.
//flowInitMethod: Flow field initialization method.
// 0 -- The entire flow field is initialized according to Infinite velocity.
// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m. // 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. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// freestream_vibration_temperature: Dimensional freestream vibration temperature. // freestream_vibration_temperature: Dimensional freestream vibration temperature.
@ -303,11 +314,11 @@ int compressible = 1;
// condition is radiation equilibrium temperature, and 0.8 is the default value. // condition is radiation equilibrium temperature, and 0.8 is the default value.
// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol.
// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on.
int directionMethod = 0; int directionMethod = 0;
double refMachNumber = 0.73; double refMachNumber = 0.73;
double attackd = 2.79; double attackd = 2.79;
double angleSlide = 0.00; double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0; int inflowParaType = 0;
double refReNumber = 6.5e6; double refReNumber = 6.5e6;
@ -321,14 +332,6 @@ double freestream_vibration_temperature = 300.00;
//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). //double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2).
//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). //double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)).
//int inflowParaType = 3;
//int nsubsonicInlet = 1;
//int nsubsonicOutlet = 1;
//string inLetFileName = "./bin/subsonicInlet.hypara";
//string outLetFileName = "./bin/subsonicOutlet.hypara";
//double refDimensionalTemperature = 288.144;
//double refDimensionalPressure = 1.01313E05;
// The velocity, temperature and density are fixed. // The velocity, temperature and density are fixed.
//int inflowParaType = 4; //int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0; //double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed. // The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6; //int inflowParaType = 6;
//double refDimensionalTemperature = 293; //double refDimensionalTemperature = 293.0;
//double refDimensionalPressure = 8886.06; //double refDimensionalPressure = 8886.06;
// The velocity, temperature and pressure are read from file.
//int inflowParaType = 7;
//string weatherDataFilePath = "./WRFData/";
//double longitude = 110.95
//double latitude = 19.61;
double wallTemperature = -1.0; double wallTemperature = -1.0;
double radiationCoef = 0.8; double radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter. double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol. double refMolecularWeight = 28.9644; // unit of g/mol.
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Spatial Discretisation # # Spatial Discretisation #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
#******************************************************************* #************************************************************************
# Struct Solver * # Struct Solver *
#******************************************************************* #************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid. // inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid. // Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f". // -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe". // -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid. // isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default) // 0 -- NO. (default)
// 1 -- Yes. // 1 -- Yes.
// str_limiter_name: Limiter of struct grid. // str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". // -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter. // -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version. // -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" // -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe"; string inviscidSchemeName = "roe";
int isWennScheme = 0; int isWennScheme = 0;
string str_limiter_name = "vanalbada"; string str_limiter_name = "vanalbada";
#******************************************************************* #************************************************************************
# UnStruct Solver or Common * # UnStruct Solver or Common *
#******************************************************************* #************************************************************************
// viscousType: Viscous model. // viscousType: Viscous model.
// 0 -- Euler. // 0 -- Euler.
// 1 -- Lamilar. // 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES. // 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. // uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// Using this when solve Unstructered grid or hybrid. // Using this when solve Unstructered grid or hybrid.
// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle". // -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle",
// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+".
// uns_limiter_name: Limiter of Unstruct grid. // uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod". // -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st". // -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter. // -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term. // uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2". // -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used. // 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// It is used to scale the default Roe entropy fix coefficients. // It is used to scale the default Roe entropy fix coefficients.
// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 // AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0.
//int viscousType = 0; //int viscousType = 0;
//string viscousName = "Euler"; //string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0; double AusmpwPlusLimiter = 1.0;
//----------------------------------------------------------------------- #************************************************************************
# Temporal Discretisation # # Temporal Discretisation *
//----------------------------------------------------------------------- #************************************************************************
// iunsteady: Steady or unsteady. // iunsteady: Steady or unsteady.
// 0 -- steady. // 0 -- steady.
// 1 -- unsteay. // 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration. // 6 -- Jacobian iteration.
// 7 -- Line LU-SGS. // 7 -- Line LU-SGS.
// 8 -- Matrix LU-SGS. // 8 -- Matrix LU-SGS.
// 9 -- GMRES.
// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. // iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation.
// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. // Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method.
// CFLStart: Started cfl number. // CFLStart: Started cfl number.
// CFLEnd: End cfl number. // CFLEnd: End cfl number.
// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. // CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd.
// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration.
// OriginalTscheme : Used for LUSGS and GMres hybrid computing.
// useLUSGSprecond: Initialize flow field for GMRES.
// 0 --Initialize by first order Jacobian matrix.
// 1 --Initialize by LUSGS.
// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field.
// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) // ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. // swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. // nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function. // 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step. // RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step. // lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0; int iunsteady = 0;
double physicalTimeStep = 0.01; double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001; double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000; int startStatisticStep = 800000;
double statisticalTimePeriod = -1.0; double statisticalTimePeriod = -1.0;
int statisticMethod = 0; int statisticMethod = 0;
int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2.
int methodOfDualTime = 3; int methodOfDualTime = 3;
int min_sub_iter = 50; int min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01; double CFLStart = 0.01;
double CFLEnd = 10.0; double CFLEnd = 10.0;
int CFLVaryStep = 500; int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2; double pMaxForCFL = 0.2;
double pMinForCFL = 0.1; double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2; double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01; double visl_min = 0.01;
double turbCFLScale = 1.0; double turbCFLScale = 1.0;
double csrv = 2.0; double csrv = 1.0;
double timemax = 1.0e10; double timemax = 1.0e10;
double dtsave = -1.0; double dtsave = -1.0;
int maxale = 10; int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4; //int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
#************************************************************************
//----------------------------------------------------------------------- # File In or Out *
# File In or Out # #************************************************************************
//-----------------------------------------------------------------------
// numberOfGridGroups: The number of grid groups. // numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path, // gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory. // which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance. // nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance. // 0 -- Compute wall distance.
// 1 -- Not compute. // 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. // protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. // wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1; int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts"; string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = ""; string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat"; string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat"; string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat"; string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat"; string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat"; string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt"; string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat"; string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.dat"; string protectionFile1 = "results/flow1.dat";
string wall_heatfluxfile = "results/wall_heatflux.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat";
string protectionTurbFile0 = "results/turb0.dat";
string protectionTurbFile1 = "results/turb1.dat";
string protectionTransitionFile0 = "results/transition0.dat";
string protectionTransitionFile1 = "results/transition1.dat";
int nDumpSurfaceInfo = 0; int nDumpSurfaceInfo = 0;
string wall_varfile = ""; string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat"; string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat"; string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt"; string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile. // visualfileType: The file type of visualfile.
// 0 -- Tecplot binary. // 0 -- Tecplot binary.
// 1 -- Tecplot ASCII. // 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1; int visualfileType = 1;
// samplefileMode: The dump mode of sample file. // samplefileMode: The dump mode of sample file.
@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0];
// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36),
// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40),
// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), // -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81) // -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- specific heat ratio(gama, 56) // -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big. // Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition---------------- //-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall. // nVisualWallVariables: The number of visual variables on wall.
// visualWallVariables : dumped variable types, listed as following: // visualWallVariables : dumped variable types, listed as following:
// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), // -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4),
// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), // -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8),
// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), // -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11),
// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) // -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15),
// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) // -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19),
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) // -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8; int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
@ -739,7 +761,9 @@ int dumpStandardModel = 0;
// 1 -- Real cell where the probe is located. // 1 -- Real cell where the probe is located.
// nProbeVariables: Number of variables want to be dumped for probes monitered. // nProbeVariables: Number of variables want to be dumped for probes monitered.
// probeVariables : Variable types dumped, listed as following: // probeVariables : Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). // -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9),
// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12).
// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!!
// probeVariables order must from small to big. // probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0; int searchCellsMethod = 0;
int nProbeVariables = 7; int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0; int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter # #************************************************************************
//----------------------------------------------------------------------- # Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence. // turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source. // kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original. // 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type // transitionType: transition model type
// 0 -- none. // 0 -- none.
// 2 -- gama-re-theta. // 2 -- gama-re-theta.
// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition // turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition.
// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not // freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not.
int turbInterval = 1; int turbInterval = 1;
int turbOrderStruct = 2; int turbOrderStruct = 2;
int kindOfTurbSource = 0; int kindOfTurbSource = 0;
int mod_turb_res = 0; int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3; double freeStreamViscosity = 1.0e-3;
double muoo = 3.0; double muoo = 3.0;
double kwoo = 5.0; double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0; int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0; double freeDecayXLocation = 0.0;
int compressibleCorrection = 0; int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1; int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max. // maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10; double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0; int monitor_vistmax = 0;
//----------------------------------------------------------------------- #************************************************************************
# LES Parameter # # LES Parameter *
//----------------------------------------------------------------------- #************************************************************************
// iLES: Create LESSolver or not. // iLES: Create LESSolver or not.
// = 1 - Create LESSolver; // = 1 -- Create LESSolver;
// != 1 - not. // != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb. // amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random 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. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter; // = 0 -- in only first sub-iter;
// != 0 - in every sub-iter. // != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not. // ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not. // ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not; // = 0 -- not;
// != 0 - Add body force. // != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not. // bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb. // utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model. // sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom"; // = "dsmCom";
// = "wale"; // = "wale";
// = "sigma". // = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); // deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3); // = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti. // = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function; // wallDampingFunctionType: = 0 -- no wall function;
// = 1 - van Driest; // = 1 -- van Driest;
// = 2 - developed by Dr. Deng Xiaobing; // = 2 -- developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli. // = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type. // turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul; // = 0 -- mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul; // = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 - mu_total = max(mut ,0)+ mul. // = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model. // smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model. // waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not. // filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average 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. // isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0; int iLES = 0;
string sgsmodel = "smagorinsky"; string sgsmodel = "smagorinsky";
int deltaFunctionType = 2; int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1; int averageWidth = 1;
int monitorNegativeConstant = 0; int monitorNegativeConstant = 0;
//----------------------------------------------------------------------- #************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas # # Other Parameters for Hypersonic Non-equilibrium Gas *
//----------------------------------------------------------------------- #************************************************************************
// dg_high_order: // dg_high_order:
// 0 -- generic order accuracy. // 0 -- generic order accuracy.
// 1 -- high order accuracy. // 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes. // 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files. // 1 -- gas model is imported from library files.
// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver,
// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver.
// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps.
// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual.
// nm: Equation number of the physics, but is out of commision now. // nm: Equation number of the physics, but is out of commision now.
// 4 -- for 2D. // 4 -- for 2D.
// 5 -- for 3D. // 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas. // 0 -- perfect gas.
// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component.
// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. // nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. // nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. // nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSlipBCModel: The computational model of slip boundary conditions. // nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip. // 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions. // 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions. // 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model. // 1 -- One-temperature model.
// 2 -- Two-temperature model. // 2 -- Two-temperature model.
// 3 -- Three-temperature model. // 3 -- Three-temperature model.
// isUseNoneqCond:
// 0 -- compute the source terms without any conditions.
// 1 -- compute the source terms using the non-equilibrium condition.
// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value.
// nIdealState: whether take all gas species as ideal gas for gas-mixture process. // nIdealState: whether take all gas species as ideal gas for gas-mixture process.
// 0 -- No. // 0 -- No.
// 1 -- Yes. // 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method. // 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the polynomial fitting method. // 1 -- the energy term is computed using the polynomial fitting method.
// 2 -- the energy term is computed using the piecewise polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method.
@ -946,14 +965,13 @@ int monitorNegativeConstant = 0;
// 1.0 -- proposed by Maxwell. // 1.0 -- proposed by Maxwell.
// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. // sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall.
// 1.146 -- proposed for an additional "fictitious" velocity slip. // 1.146 -- proposed for an additional "fictitious" velocity slip.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. // chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. // spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. // staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions. // nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 0 -- not freeze, the chemical reaction sources will be calculated. // 0 -- not freeze, the chemical reaction sources will be calculated.
// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te // 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.
// veTemperatureMin: The minimum of Tv and Te.
// maxViscous: the maximum of Viscous. // maxViscous: the maximum of Viscous.
// trTemperatureMin: the minimum value of trTemperature. // trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature. // veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species // nSpeciesLimit: limitter of gas species
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction // nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0. // 0 -- method 0.
// 1 -- method 1. // 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid // nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef // nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource // nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource // nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori.) // 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New) // 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature. // nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs // 0 -- not used.
// 0 -- not used // 1 -- used.
// 1 -- used // nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// nDiagonalModified: Modified on Diagonal // 1 -- new.
// 0 -- not used // nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 1 -- Ori. // 0 -- not used.
// 2 -- new // 1 -- new.
// nGradPrimtiveMethod: // nGradPrimtiveMethod:
// 0 -- Ori. // 0 -- Ori.
// 1 -- new // 1 -- new.
// nAblation: // nAblation:
// 0 -- The wall ablation is not computed. // 0 -- The wall ablation is not computed.
// 1 -- The wall ablation is computed. // 1 -- The wall ablation is computed.
@ -1017,8 +1033,8 @@ int monitorNegativeConstant = 0;
// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. // "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. // "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting. // "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©. // for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©. // for unstruct solver mixing multi-species<65><73>O2 NO CO CO2 H2 N2 Air CH4<48><34>.
// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // For self-definition model, the gasfile is used to indicate the file path of the new gas model.
// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma.
// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation.
// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation.
// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation.
// useHyflowSetting : Setting for HyFLOW GUI.
// 0 -- PHengLEI
// 1 -- HyFLOW
// nProtectData: Use the continuation file data protection mechanism. // nProtectData: Use the continuation file data protection mechanism.
// 0 -- no // 0 -- no.
// 1 -- yes // 1 -- yes.
// nTvChange: Judge whether the Tv equals Ttr.
// 0 -- yes.
// 1 -- no.
// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions.
// nFraction: the initial fractions type of species.
// 0 -- mass fraction.
// 1 -- mole fraction.
int dg_high_order = 0; int dg_high_order = 0;
int iapplication = 0; int iapplication = 0;
int isAdaptiveSolver = 0; int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1; double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0; double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0; double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0; int nDebug = 0;
int nSpeciesLimit = 1; int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5; int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1; int veTemperatureMinModified = 1;
int nDiagonalModified = 0; int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1; int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1; int nInviscidFluxModify = 1;
int nQlLimitMethod = 2; int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1; int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0; int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0; int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0; int nAblation = 0;
int isInjection = 0; int isInjection = 0;
int nViscosityModel = 0; int nViscosityModel = 0;
int nMarsModel = 0; int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5"; string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; //string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2"; string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2"; //string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0"; //string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0; int nContinueModel = 0;
int nChemicalFlowStep = 0; int nChemicalFlowStep = 0;
int ifStartFromPerfectGasResults = 0; int ifStartFromPerfectGasResults = 0;
int isUseNoneqCond = 0;
double frozenCondition = 0.01;
int nLeakageMonitor = 0;
double totalLeakageVolume = 1000.0;
double monitorThresholdValue = 0.05;
double sprayFactor = 0.0;
######################################################################### #########################################################################
// Multi-Grid parameters. // Multi-Grid parameters.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order. // 1 -- zero order.
// 2 -- first-order. (default) // 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit. // mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1; int nMGLevel = 1;
int MGCoarsestIteration = 1; int MGCoarsestIteration = 1;
int MGPreIteration = 1; int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat"; string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
######################################################################### #************************************************************************
# High Order Struct Solver # # High Order Struct Solver *
######################################################################### #************************************************************************
// isFVMOrFDM: // isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method. // 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method. // 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not. // codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-overlapping grid. // 0 -- NON-overlapping grid.
// 1 -- Overlapping grid. // 1 -- Overlapping grid.
// oversetInterpolationMethod: the method of overset interpolation while field simulation // oversetInterpolationMethod: the method of overset interpolation while field simulation.
// 0 -- set the acceptor cell value by donor cell value. // 0 -- set the acceptor cell value by donor cell value.
// 1 -- set the acceptor cell value by distance weight of donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value.
// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated.
// 0 -- no.
// 1 -- yes.
// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in
// the current overset grid(only for three dimension).
// 0 -- no.
// 1 -- yes.
// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid.
// 0 -- no.
// 1 -- yes.
// walldistMainZone: The initial value of background grid which does not exist wall boundary condition.
// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell.
// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region.
// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary.
// 0 -- one layer.
// 1 -- two layers.
// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region.
// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure.
// 0 -- no.
// 1 -- yes.
int codeOfOversetGrid = 0; int codeOfOversetGrid = 0;
int oversetInterpolationMethod = 0; int oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0; int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0; int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0; int outTecplotOverset = 0;
int outPutOversetVisualization = 0; int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2; int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------ // ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0; double referenceVelocity = 1.0;
double referenceDensity = 1.0; double referenceDensity = 1.0;
int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
int strategyForGCLSource = 0; //0-present; 1-Ahn; int strategyForGCLSource = 0; // 0-present; 1-Ahn.
//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton // 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton.
int methodForKineticEquation = 0; int methodForKineticEquation = 0;
double relaxParameterOfKinetic = 1.0; double relaxParameterOfKinetic = 1.0;
######################################################################### #************************************************************************
# motive information # # motive information *
######################################################################### #************************************************************************
int numberOfMovingBodies = 1; int numberOfMovingBodies = 1;
############################## body0 ############################## ############################## body0 ##############################
//mass of parts // mass of parts.
double mass_0 = 1.0; double mass_0 = 1.0;
//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz // gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_0 = 0.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz.
double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
//initial six DOF position information of parts. xc yc zc // initial six DOF position information of parts. xc yc zc.
double massCenter_0[] = 0.0, 0.0, 0.0; double massCenter_0[] = 0.0, 0.0, 0.0;
//initial six DOF position information of parts. angleX angleY angleZ // if reset mass center while restart.
int resetMassCenter_0 = 0;
// position offset of parts. dx dy dz.
double massCenterDxyz_0[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_0[] = 0.0, 0.0, 0.0; double attitudeAngle_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. vc vy vz // initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_0[] = 0.0, 0.0, 0.0; double massCenterVelocity_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. omigX omigY omigZ // initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_0[] = 0.0, 0.0, 0.0; double angularVelocity_0[] = 0.0, 0.0, 0.0;
// the object that the parts belong to. // the object that the parts belong to.
int fartherIndex_0 = -1; int fartherIndex_0 = -1;
//the assembly position of the parts. xc yc zc angleX angleY angleZ // the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
// the move pattern of the parts. // the move pattern of the parts.
// -1 given motion partten. // -1 given motion partten.
@ -1349,23 +1403,24 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0
int RBDMethod_0 = 0; int RBDMethod_0 = 0;
double amplitude_0 = 0.0; double amplitude_0 = 0.0;
double reduceFrequency_0 = 0.0; double reduceFrequency_0 = 0.0;
//direction of rotation // direction of rotation.
// 1 -- clockwise from the point of view along the positive x axis. // 1 -- clockwise from the point of view along the positive x axis.
// -1 -- anticlockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1; int direction_0 = -1;
double rotateFrequency_0 = 0.0; double rotateFrequency_0 = 0.0;
//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; //string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter";
//additional force (system axis) fX fY fZ // dimensional physical time for additional force(s).
double addedForceTime_0[] = 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_0[] = 0.0, 0.0, 0.0; double addedForce_0[] = 0.0, 0.0, 0.0;
//additional moment of Force (system axis) mX mY mZ // additional moment(inertia system) mX mY mZ.
double addedMoment_0[] = 0.0, 0.0, 0.0; double addedMoment_0[] = 0.0, 0.0, 0.0;
// the deformation method of the parts. // the deformation method of the parts.
int morphing_0 = 0; int morphing_0 = 0;
// post indentify // post indentify.
int integralOrder = 4; int integralOrder = 4;
// ---------------- ATP read -------------------------------------------- // ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0; //@int inflowParaType = 0;
//@double refReNumber = 6.5e6; //@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0; //@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0; //@double refDimensionalDensity = 0;
//@string weatherDataFilePath = "./WRFData/";
######################################################################### //@double longitude = 110.95
# Old Parameter # //@double latitude = 19.61;
######################################################################### #************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0; int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
######################################################################### //double partialCFL[] = [0.0];
# Incompressible Parameter # //double partialSpeedCoef[] = [0.0];
######################################################################### //double partialSpeed[] = [0.0];
//double partialAttackd[] = [0.0];
//double partialSlide[] = [0.0];
//double partialPressure[] = [0.0];
//double partialTemperature[] = [0.0];
//double partialMassFractions[] = [0.0];
#************************************************************************
# Incompressible Parameter *
#************************************************************************
int isSolveEnergyEquation = 0; int isSolveEnergyEquation = 0;
int isSolveTurbEquation = 0; int isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0; int isSolveSpeciesEquation = 0;

View File

@ -4,9 +4,12 @@
// gridtype: Grid type for generation, conversion, reconstruction, merging. // gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid. // 0 -- Unstructured grid.
// 1 -- Structured grid. // 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process. // from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE. // -1 -- MULTI_TYPE.
// 1 -- PHengLEI, *.fts. // 1 -- PHengLEI, *.fts.
@ -18,7 +21,9 @@
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. // 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
// 8 -- GMSH, *.msh. // 8 -- GMSH, *.msh.
int gridtype = 0; int gridtype = 0;
int axisup = 1; int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
int from_gtype = 5; int from_gtype = 5;
######################################################################### #########################################################################

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows + // Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center + // China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 + // (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
########################################################################### ###########################################################################
# Default parameters for Grid conversion # # Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0; int multiblock = 0;
int iadapt = 0; int iadapt = 0;
int SymmetryFaceVector = 1; int SymmetryFaceVector = 1;
int gridReorder = 0; int gridReorder = 0;
int faceReorderMethod = 0; int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
int axisup = 1; // 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition".
// 0 -- Interface. (default) // 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver. // 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Grid data type # # Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1; int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas"; string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = ""; string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------ // ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction. which only support one direction.
// rotationAngle: The relative angle between two periodic face. // rotationAngle: The relative angle between two periodic face.
which is recorded in degrees. which is recorded in degrees.
int periodicType = 0; int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0]; double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0; double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid. // 2 -- refine structured grid.
// maxproc: The number of partition zones that want to be divided into. // maxproc: The number of partition zones that want to be divided into.
// numberOfMultifile: The number of partition grid files that want to be dumped out. // numberOfMultifile: The number of partition grid files that want to be dumped out.
int pgridtype = 0; int pgridtype = 0;
int maxproc = 4; int maxproc = 4;
int numberOfMultifile = 1; int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1]; int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy: // parallelStrategy:
//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. // 0 -- each zone is assigned to the one that defined in grid partition procedure.
//! -# 1 : random assigned for each zone or by some else ways. // 1 -- random assigned for each zone or by some else ways.
int parallelStrategy = 1; int parallelStrategy = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance. // 1 -- perfect balance.
// maxproc -- perfect imbalance. // maxproc -- perfect imbalance.
// 1.05 -- recommended. // 1.05 -- recommended.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int npartmethod = 1; int npartmethod = 1;
int parallelPartitionMethod = 2; int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. // intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual file 'res.dat' saved. // intervalStepRes: The step intervals for residual file 'res.dat' saved.
// 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 maxSimuStep = 20000; int maxSimuStep = 20000;
int intervalStepFlow = 1000; int intervalStepFlow = 1000;
int intervalStepPlot = 1000; int intervalStepPlot = 1000;
int intervalStepSample = 1000; int intervalStepSample = 1000;
int intervalStepForce = 100; int intervalStepForce = 100;
int intervalStepRes = 10; int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible: // compressible:
// 0 -- incompressible flow. // 0 -- incompressible flow.
// 1 -- compressible flow. (default) // 1 -- compressible flow. (default)
int compressible = 1; int compressible = 1;
// 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)
// Kprec: The coefficient K for the cut-off velocity.
// 1.0~3.0 is suggested. (default, 3.0)
// preconFarfieldBCMethod: The precondition method for farfield boundary condition.
// 0 -- precondition far-field boundary based on riemann invariants.
// 1 -- Turkel's simplified far-field boundary condition.
int ifLowSpeedPrecon = 0;
double Kprec = 3.0;
int preconFarfieldBCMethod = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# CFD Control Parameter # # CFD Control Parameter #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions. // 0 -- the nondimensional conditions.
// 1 -- the flight conditions. // 1 -- the flight conditions.
// 2 -- the experiment conditions. // 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions. // 3 -- the subsonic boundary conditions. (Useless!)
// 4 -- the condition that the velocity, temperature and density are given. // 4 -- the condition that the velocity, temperature and density are given.
// 5 -- the condition that the velocity, temperature and pressure are given. // 5 -- the condition that the velocity, temperature and pressure are given.
//flowInitMethod: Flow field initialization method.
// 0 -- The entire flow field is initialized according to Infinite velocity.
// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m. // 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. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// freestream_vibration_temperature: Dimensional freestream vibration temperature. // freestream_vibration_temperature: Dimensional freestream vibration temperature.
@ -303,11 +314,11 @@ int compressible = 1;
// condition is radiation equilibrium temperature, and 0.8 is the default value. // condition is radiation equilibrium temperature, and 0.8 is the default value.
// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol.
// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on.
int directionMethod = 0; int directionMethod = 0;
double refMachNumber = 0.73; double refMachNumber = 0.73;
double attackd = 2.79; double attackd = 2.79;
double angleSlide = 0.00; double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0; int inflowParaType = 0;
double refReNumber = 6.5e6; double refReNumber = 6.5e6;
@ -321,14 +332,6 @@ double freestream_vibration_temperature = 300.00;
//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). //double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2).
//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). //double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)).
//int inflowParaType = 3;
//int nsubsonicInlet = 1;
//int nsubsonicOutlet = 1;
//string inLetFileName = "./bin/subsonicInlet.hypara";
//string outLetFileName = "./bin/subsonicOutlet.hypara";
//double refDimensionalTemperature = 288.144;
//double refDimensionalPressure = 1.01313E05;
// The velocity, temperature and density are fixed. // The velocity, temperature and density are fixed.
//int inflowParaType = 4; //int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0; //double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed. // The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6; //int inflowParaType = 6;
//double refDimensionalTemperature = 293; //double refDimensionalTemperature = 293.0;
//double refDimensionalPressure = 8886.06; //double refDimensionalPressure = 8886.06;
// The velocity, temperature and pressure are read from file.
//int inflowParaType = 7;
//string weatherDataFilePath = "./WRFData/";
//double longitude = 110.95
//double latitude = 19.61;
double wallTemperature = -1.0; double wallTemperature = -1.0;
double radiationCoef = 0.8; double radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter. double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol. double refMolecularWeight = 28.9644; // unit of g/mol.
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Spatial Discretisation # # Spatial Discretisation #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
#******************************************************************* #************************************************************************
# Struct Solver * # Struct Solver *
#******************************************************************* #************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid. // inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid. // Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f". // -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe". // -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid. // isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default) // 0 -- NO. (default)
// 1 -- Yes. // 1 -- Yes.
// str_limiter_name: Limiter of struct grid. // str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". // -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter. // -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version. // -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" // -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe"; string inviscidSchemeName = "roe";
int isWennScheme = 0; int isWennScheme = 0;
string str_limiter_name = "vanalbada"; string str_limiter_name = "vanalbada";
#******************************************************************* #************************************************************************
# UnStruct Solver or Common * # UnStruct Solver or Common *
#******************************************************************* #************************************************************************
// viscousType: Viscous model. // viscousType: Viscous model.
// 0 -- Euler. // 0 -- Euler.
// 1 -- Lamilar. // 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES. // 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. // uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// Using this when solve Unstructered grid or hybrid. // Using this when solve Unstructered grid or hybrid.
// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle". // -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle",
// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+".
// uns_limiter_name: Limiter of Unstruct grid. // uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod". // -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st". // -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter. // -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term. // uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2". // -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used. // 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// It is used to scale the default Roe entropy fix coefficients. // It is used to scale the default Roe entropy fix coefficients.
// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 // AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0.
//int viscousType = 0; //int viscousType = 0;
//string viscousName = "Euler"; //string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0; double AusmpwPlusLimiter = 1.0;
//----------------------------------------------------------------------- #************************************************************************
# Temporal Discretisation # # Temporal Discretisation *
//----------------------------------------------------------------------- #************************************************************************
// iunsteady: Steady or unsteady. // iunsteady: Steady or unsteady.
// 0 -- steady. // 0 -- steady.
// 1 -- unsteay. // 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration. // 6 -- Jacobian iteration.
// 7 -- Line LU-SGS. // 7 -- Line LU-SGS.
// 8 -- Matrix LU-SGS. // 8 -- Matrix LU-SGS.
// 9 -- GMRES.
// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. // iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation.
// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. // Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method.
// CFLStart: Started cfl number. // CFLStart: Started cfl number.
// CFLEnd: End cfl number. // CFLEnd: End cfl number.
// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. // CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd.
// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration.
// OriginalTscheme : Used for LUSGS and GMres hybrid computing.
// useLUSGSprecond: Initialize flow field for GMRES.
// 0 --Initialize by first order Jacobian matrix.
// 1 --Initialize by LUSGS.
// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field.
// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) // ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. // swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. // nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function. // 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step. // RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step. // lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0; int iunsteady = 0;
double physicalTimeStep = 0.01; double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001; double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000; int startStatisticStep = 800000;
double statisticalTimePeriod = -1.0; double statisticalTimePeriod = -1.0;
int statisticMethod = 0; int statisticMethod = 0;
int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2.
int methodOfDualTime = 3; int methodOfDualTime = 3;
int min_sub_iter = 50; int min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01; double CFLStart = 0.01;
double CFLEnd = 10.0; double CFLEnd = 10.0;
int CFLVaryStep = 500; int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2; double pMaxForCFL = 0.2;
double pMinForCFL = 0.1; double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2; double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01; double visl_min = 0.01;
double turbCFLScale = 1.0; double turbCFLScale = 1.0;
double csrv = 2.0; double csrv = 1.0;
double timemax = 1.0e10; double timemax = 1.0e10;
double dtsave = -1.0; double dtsave = -1.0;
int maxale = 10; int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4; //int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
#************************************************************************
//----------------------------------------------------------------------- # File In or Out *
# File In or Out # #************************************************************************
//-----------------------------------------------------------------------
// numberOfGridGroups: The number of grid groups. // numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path, // gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory. // which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance. // nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance. // 0 -- Compute wall distance.
// 1 -- Not compute. // 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. // protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. // wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1; int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts"; string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = ""; string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat"; string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat"; string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat"; string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat"; string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat"; string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt"; string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat"; string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.dat"; string protectionFile1 = "results/flow1.dat";
string wall_heatfluxfile = "results/wall_heatflux.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat";
string protectionTurbFile0 = "results/turb0.dat";
string protectionTurbFile1 = "results/turb1.dat";
string protectionTransitionFile0 = "results/transition0.dat";
string protectionTransitionFile1 = "results/transition1.dat";
int nDumpSurfaceInfo = 0; int nDumpSurfaceInfo = 0;
string wall_varfile = ""; string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat"; string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat"; string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt"; string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile. // visualfileType: The file type of visualfile.
// 0 -- Tecplot binary. // 0 -- Tecplot binary.
// 1 -- Tecplot ASCII. // 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1; int visualfileType = 1;
// samplefileMode: The dump mode of sample file. // samplefileMode: The dump mode of sample file.
@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0];
// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36),
// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40),
// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), // -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81) // -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- specific heat ratio(gama, 56) // -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big. // Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition---------------- //-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall. // nVisualWallVariables: The number of visual variables on wall.
// visualWallVariables : dumped variable types, listed as following: // visualWallVariables : dumped variable types, listed as following:
// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), // -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4),
// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), // -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8),
// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), // -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11),
// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) // -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15),
// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) // -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19),
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) // -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8; int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
@ -739,7 +761,9 @@ int dumpStandardModel = 0;
// 1 -- Real cell where the probe is located. // 1 -- Real cell where the probe is located.
// nProbeVariables: Number of variables want to be dumped for probes monitered. // nProbeVariables: Number of variables want to be dumped for probes monitered.
// probeVariables : Variable types dumped, listed as following: // probeVariables : Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). // -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9),
// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12).
// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!!
// probeVariables order must from small to big. // probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0; int searchCellsMethod = 0;
int nProbeVariables = 7; int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0; int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter # #************************************************************************
//----------------------------------------------------------------------- # Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence. // turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source. // kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original. // 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type // transitionType: transition model type
// 0 -- none. // 0 -- none.
// 2 -- gama-re-theta. // 2 -- gama-re-theta.
// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition // turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition.
// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not // freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not.
int turbInterval = 1; int turbInterval = 1;
int turbOrderStruct = 2; int turbOrderStruct = 2;
int kindOfTurbSource = 0; int kindOfTurbSource = 0;
int mod_turb_res = 0; int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3; double freeStreamViscosity = 1.0e-3;
double muoo = 3.0; double muoo = 3.0;
double kwoo = 5.0; double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0; int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0; double freeDecayXLocation = 0.0;
int compressibleCorrection = 0; int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1; int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max. // maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10; double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0; int monitor_vistmax = 0;
//----------------------------------------------------------------------- #************************************************************************
# LES Parameter # # LES Parameter *
//----------------------------------------------------------------------- #************************************************************************
// iLES: Create LESSolver or not. // iLES: Create LESSolver or not.
// = 1 - Create LESSolver; // = 1 -- Create LESSolver;
// != 1 - not. // != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb. // amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random 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. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter; // = 0 -- in only first sub-iter;
// != 0 - in every sub-iter. // != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not. // ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not. // ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not; // = 0 -- not;
// != 0 - Add body force. // != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not. // bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb. // utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model. // sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom"; // = "dsmCom";
// = "wale"; // = "wale";
// = "sigma". // = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); // deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3); // = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti. // = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function; // wallDampingFunctionType: = 0 -- no wall function;
// = 1 - van Driest; // = 1 -- van Driest;
// = 2 - developed by Dr. Deng Xiaobing; // = 2 -- developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli. // = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type. // turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul; // = 0 -- mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul; // = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 - mu_total = max(mut ,0)+ mul. // = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model. // smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model. // waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not. // filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average 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. // isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0; int iLES = 0;
string sgsmodel = "smagorinsky"; string sgsmodel = "smagorinsky";
int deltaFunctionType = 2; int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1; int averageWidth = 1;
int monitorNegativeConstant = 0; int monitorNegativeConstant = 0;
//----------------------------------------------------------------------- #************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas # # Other Parameters for Hypersonic Non-equilibrium Gas *
//----------------------------------------------------------------------- #************************************************************************
// dg_high_order: // dg_high_order:
// 0 -- generic order accuracy. // 0 -- generic order accuracy.
// 1 -- high order accuracy. // 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes. // 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files. // 1 -- gas model is imported from library files.
// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver,
// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver.
// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps.
// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual.
// nm: Equation number of the physics, but is out of commision now. // nm: Equation number of the physics, but is out of commision now.
// 4 -- for 2D. // 4 -- for 2D.
// 5 -- for 3D. // 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas. // 0 -- perfect gas.
// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component.
// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. // nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. // nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. // nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSlipBCModel: The computational model of slip boundary conditions. // nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip. // 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions. // 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions. // 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model. // 1 -- One-temperature model.
// 2 -- Two-temperature model. // 2 -- Two-temperature model.
// 3 -- Three-temperature model. // 3 -- Three-temperature model.
// isUseNoneqCond:
// 0 -- compute the source terms without any conditions.
// 1 -- compute the source terms using the non-equilibrium condition.
// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value.
// nIdealState: whether take all gas species as ideal gas for gas-mixture process. // nIdealState: whether take all gas species as ideal gas for gas-mixture process.
// 0 -- No. // 0 -- No.
// 1 -- Yes. // 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method. // 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the polynomial fitting method. // 1 -- the energy term is computed using the polynomial fitting method.
// 2 -- the energy term is computed using the piecewise polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method.
@ -946,14 +965,13 @@ int monitorNegativeConstant = 0;
// 1.0 -- proposed by Maxwell. // 1.0 -- proposed by Maxwell.
// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. // sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall.
// 1.146 -- proposed for an additional "fictitious" velocity slip. // 1.146 -- proposed for an additional "fictitious" velocity slip.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. // chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. // spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. // staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions. // nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 0 -- not freeze, the chemical reaction sources will be calculated. // 0 -- not freeze, the chemical reaction sources will be calculated.
// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te // 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.
// veTemperatureMin: The minimum of Tv and Te.
// maxViscous: the maximum of Viscous. // maxViscous: the maximum of Viscous.
// trTemperatureMin: the minimum value of trTemperature. // trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature. // veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species // nSpeciesLimit: limitter of gas species
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction // nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0. // 0 -- method 0.
// 1 -- method 1. // 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid // nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef // nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource // nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource // nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori.) // 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New) // 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature. // nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs // 0 -- not used.
// 0 -- not used // 1 -- used.
// 1 -- used // nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// nDiagonalModified: Modified on Diagonal // 1 -- new.
// 0 -- not used // nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 1 -- Ori. // 0 -- not used.
// 2 -- new // 1 -- new.
// nGradPrimtiveMethod: // nGradPrimtiveMethod:
// 0 -- Ori. // 0 -- Ori.
// 1 -- new // 1 -- new.
// nAblation: // nAblation:
// 0 -- The wall ablation is not computed. // 0 -- The wall ablation is not computed.
// 1 -- The wall ablation is computed. // 1 -- The wall ablation is computed.
@ -1017,8 +1033,8 @@ int monitorNegativeConstant = 0;
// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. // "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. // "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting. // "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©. // for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©. // for unstruct solver mixing multi-species<65><73>O2 NO CO CO2 H2 N2 Air CH4<48><34>.
// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // For self-definition model, the gasfile is used to indicate the file path of the new gas model.
// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma.
// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation.
// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation.
// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation.
// useHyflowSetting : Setting for HyFLOW GUI.
// 0 -- PHengLEI
// 1 -- HyFLOW
// nProtectData: Use the continuation file data protection mechanism. // nProtectData: Use the continuation file data protection mechanism.
// 0 -- no // 0 -- no.
// 1 -- yes // 1 -- yes.
// nTvChange: Judge whether the Tv equals Ttr.
// 0 -- yes.
// 1 -- no.
// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions.
// nFraction: the initial fractions type of species.
// 0 -- mass fraction.
// 1 -- mole fraction.
int dg_high_order = 0; int dg_high_order = 0;
int iapplication = 0; int iapplication = 0;
int isAdaptiveSolver = 0; int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1; double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0; double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0; double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0; int nDebug = 0;
int nSpeciesLimit = 1; int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5; int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1; int veTemperatureMinModified = 1;
int nDiagonalModified = 0; int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1; int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1; int nInviscidFluxModify = 1;
int nQlLimitMethod = 2; int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1; int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0; int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0; int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0; int nAblation = 0;
int isInjection = 0; int isInjection = 0;
int nViscosityModel = 0; int nViscosityModel = 0;
int nMarsModel = 0; int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5"; string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; //string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2"; string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2"; //string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0"; //string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0; int nContinueModel = 0;
int nChemicalFlowStep = 0; int nChemicalFlowStep = 0;
int ifStartFromPerfectGasResults = 0; int ifStartFromPerfectGasResults = 0;
int isUseNoneqCond = 0;
double frozenCondition = 0.01;
int nLeakageMonitor = 0;
double totalLeakageVolume = 1000.0;
double monitorThresholdValue = 0.05;
double sprayFactor = 0.0;
######################################################################### #########################################################################
// Multi-Grid parameters. // Multi-Grid parameters.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order. // 1 -- zero order.
// 2 -- first-order. (default) // 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit. // mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1; int nMGLevel = 1;
int MGCoarsestIteration = 1; int MGCoarsestIteration = 1;
int MGPreIteration = 1; int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat"; string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
######################################################################### #************************************************************************
# High Order Struct Solver # # High Order Struct Solver *
######################################################################### #************************************************************************
// isFVMOrFDM: // isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method. // 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method. // 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not. // codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-overlapping grid. // 0 -- NON-overlapping grid.
// 1 -- Overlapping grid. // 1 -- Overlapping grid.
// oversetInterpolationMethod: the method of overset interpolation while field simulation // oversetInterpolationMethod: the method of overset interpolation while field simulation.
// 0 -- set the acceptor cell value by donor cell value. // 0 -- set the acceptor cell value by donor cell value.
// 1 -- set the acceptor cell value by distance weight of donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value.
// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated.
// 0 -- no.
// 1 -- yes.
// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in
// the current overset grid(only for three dimension).
// 0 -- no.
// 1 -- yes.
// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid.
// 0 -- no.
// 1 -- yes.
// walldistMainZone: The initial value of background grid which does not exist wall boundary condition.
// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell.
// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region.
// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary.
// 0 -- one layer.
// 1 -- two layers.
// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region.
// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure.
// 0 -- no.
// 1 -- yes.
int codeOfOversetGrid = 0; int codeOfOversetGrid = 0;
int oversetInterpolationMethod = 0; int oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0; int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0; int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0; int outTecplotOverset = 0;
int outPutOversetVisualization = 0; int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2; int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------ // ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0; double referenceVelocity = 1.0;
double referenceDensity = 1.0; double referenceDensity = 1.0;
int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
int strategyForGCLSource = 0; //0-present; 1-Ahn; int strategyForGCLSource = 0; // 0-present; 1-Ahn.
//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton // 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton.
int methodForKineticEquation = 0; int methodForKineticEquation = 0;
double relaxParameterOfKinetic = 1.0; double relaxParameterOfKinetic = 1.0;
######################################################################### #************************************************************************
# motive information # # motive information *
######################################################################### #************************************************************************
int numberOfMovingBodies = 1; int numberOfMovingBodies = 1;
############################## body0 ############################## ############################## body0 ##############################
//mass of parts // mass of parts.
double mass_0 = 1.0; double mass_0 = 1.0;
//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz // gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_0 = 0.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz.
double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
//initial six DOF position information of parts. xc yc zc // initial six DOF position information of parts. xc yc zc.
double massCenter_0[] = 0.0, 0.0, 0.0; double massCenter_0[] = 0.0, 0.0, 0.0;
//initial six DOF position information of parts. angleX angleY angleZ // if reset mass center while restart.
int resetMassCenter_0 = 0;
// position offset of parts. dx dy dz.
double massCenterDxyz_0[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_0[] = 0.0, 0.0, 0.0; double attitudeAngle_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. vc vy vz // initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_0[] = 0.0, 0.0, 0.0; double massCenterVelocity_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. omigX omigY omigZ // initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_0[] = 0.0, 0.0, 0.0; double angularVelocity_0[] = 0.0, 0.0, 0.0;
// the object that the parts belong to. // the object that the parts belong to.
int fartherIndex_0 = -1; int fartherIndex_0 = -1;
//the assembly position of the parts. xc yc zc angleX angleY angleZ // the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
// the move pattern of the parts. // the move pattern of the parts.
// -1 given motion partten. // -1 given motion partten.
@ -1349,23 +1403,24 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0
int RBDMethod_0 = 0; int RBDMethod_0 = 0;
double amplitude_0 = 0.0; double amplitude_0 = 0.0;
double reduceFrequency_0 = 0.0; double reduceFrequency_0 = 0.0;
//direction of rotation // direction of rotation.
// 1 -- clockwise from the point of view along the positive x axis. // 1 -- clockwise from the point of view along the positive x axis.
// -1 -- anticlockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1; int direction_0 = -1;
double rotateFrequency_0 = 0.0; double rotateFrequency_0 = 0.0;
//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; //string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter";
//additional force (system axis) fX fY fZ // dimensional physical time for additional force(s).
double addedForceTime_0[] = 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_0[] = 0.0, 0.0, 0.0; double addedForce_0[] = 0.0, 0.0, 0.0;
//additional moment of Force (system axis) mX mY mZ // additional moment(inertia system) mX mY mZ.
double addedMoment_0[] = 0.0, 0.0, 0.0; double addedMoment_0[] = 0.0, 0.0, 0.0;
// the deformation method of the parts. // the deformation method of the parts.
int morphing_0 = 0; int morphing_0 = 0;
// post indentify // post indentify.
int integralOrder = 4; int integralOrder = 4;
// ---------------- ATP read -------------------------------------------- // ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0; //@int inflowParaType = 0;
//@double refReNumber = 6.5e6; //@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0; //@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0; //@double refDimensionalDensity = 0;
//@string weatherDataFilePath = "./WRFData/";
######################################################################### //@double longitude = 110.95
# Old Parameter # //@double latitude = 19.61;
######################################################################### #************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0; int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
######################################################################### //double partialCFL[] = [0.0];
# Incompressible Parameter # //double partialSpeedCoef[] = [0.0];
######################################################################### //double partialSpeed[] = [0.0];
//double partialAttackd[] = [0.0];
//double partialSlide[] = [0.0];
//double partialPressure[] = [0.0];
//double partialTemperature[] = [0.0];
//double partialMassFractions[] = [0.0];
#************************************************************************
# Incompressible Parameter *
#************************************************************************
int isSolveEnergyEquation = 0; int isSolveEnergyEquation = 0;
int isSolveTurbEquation = 0; int isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0; int isSolveSpeciesEquation = 0;

View File

@ -4,9 +4,12 @@
// gridtype: Grid type for generation, conversion, reconstruction, merging. // gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid. // 0 -- Unstructured grid.
// 1 -- Structured grid. // 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process. // from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE. // -1 -- MULTI_TYPE.
// 1 -- PHengLEI, *.fts. // 1 -- PHengLEI, *.fts.
@ -18,7 +21,9 @@
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. // 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
// 8 -- GMSH, *.msh. // 8 -- GMSH, *.msh.
int gridtype = 0; int gridtype = 0;
int axisup = 1; int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
int from_gtype = 2; int from_gtype = 2;
######################################################################### #########################################################################

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows + // Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center + // China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 + // (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
########################################################################### ###########################################################################
# Default parameters for Grid conversion # # Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0; int multiblock = 0;
int iadapt = 0; int iadapt = 0;
int SymmetryFaceVector = 1; int SymmetryFaceVector = 1;
int gridReorder = 0; int gridReorder = 0;
int faceReorderMethod = 0; int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
int axisup = 1; // 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition".
// 0 -- Interface. (default) // 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver. // 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Grid data type # # Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1; int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas"; string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = ""; string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------ // ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction. which only support one direction.
// rotationAngle: The relative angle between two periodic face. // rotationAngle: The relative angle between two periodic face.
which is recorded in degrees. which is recorded in degrees.
int periodicType = 0; int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0]; double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0; double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid. // 2 -- refine structured grid.
// maxproc: The number of partition zones that want to be divided into. // maxproc: The number of partition zones that want to be divided into.
// numberOfMultifile: The number of partition grid files that want to be dumped out. // numberOfMultifile: The number of partition grid files that want to be dumped out.
int pgridtype = 0; int pgridtype = 0;
int maxproc = 4; int maxproc = 4;
int numberOfMultifile = 1; int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1]; int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy: // parallelStrategy:
//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. // 0 -- each zone is assigned to the one that defined in grid partition procedure.
//! -# 1 : random assigned for each zone or by some else ways. // 1 -- random assigned for each zone or by some else ways.
int parallelStrategy = 1; int parallelStrategy = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance. // 1 -- perfect balance.
// maxproc -- perfect imbalance. // maxproc -- perfect imbalance.
// 1.05 -- recommended. // 1.05 -- recommended.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int npartmethod = 1; int npartmethod = 1;
int parallelPartitionMethod = 2; int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. // intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual file 'res.dat' saved. // intervalStepRes: The step intervals for residual file 'res.dat' saved.
// 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 maxSimuStep = 20000; int maxSimuStep = 20000;
int intervalStepFlow = 1000; int intervalStepFlow = 1000;
int intervalStepPlot = 1000; int intervalStepPlot = 1000;
int intervalStepSample = 1000; int intervalStepSample = 1000;
int intervalStepForce = 100; int intervalStepForce = 100;
int intervalStepRes = 10; int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible: // compressible:
// 0 -- incompressible flow. // 0 -- incompressible flow.
// 1 -- compressible flow. (default) // 1 -- compressible flow. (default)
int compressible = 1; int compressible = 1;
// 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)
// Kprec: The coefficient K for the cut-off velocity.
// 1.0~3.0 is suggested. (default, 3.0)
// preconFarfieldBCMethod: The precondition method for farfield boundary condition.
// 0 -- precondition far-field boundary based on riemann invariants.
// 1 -- Turkel's simplified far-field boundary condition.
int ifLowSpeedPrecon = 0;
double Kprec = 3.0;
int preconFarfieldBCMethod = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# CFD Control Parameter # # CFD Control Parameter #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions. // 0 -- the nondimensional conditions.
// 1 -- the flight conditions. // 1 -- the flight conditions.
// 2 -- the experiment conditions. // 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions. // 3 -- the subsonic boundary conditions. (Useless!)
// 4 -- the condition that the velocity, temperature and density are given. // 4 -- the condition that the velocity, temperature and density are given.
// 5 -- the condition that the velocity, temperature and pressure are given. // 5 -- the condition that the velocity, temperature and pressure are given.
//flowInitMethod: Flow field initialization method.
// 0 -- The entire flow field is initialized according to Infinite velocity.
// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m. // 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. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// freestream_vibration_temperature: Dimensional freestream vibration temperature. // freestream_vibration_temperature: Dimensional freestream vibration temperature.
@ -303,11 +314,11 @@ int compressible = 1;
// condition is radiation equilibrium temperature, and 0.8 is the default value. // condition is radiation equilibrium temperature, and 0.8 is the default value.
// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol.
// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on.
int directionMethod = 0; int directionMethod = 0;
double refMachNumber = 0.73; double refMachNumber = 0.73;
double attackd = 2.79; double attackd = 2.79;
double angleSlide = 0.00; double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0; int inflowParaType = 0;
double refReNumber = 6.5e6; double refReNumber = 6.5e6;
@ -321,14 +332,6 @@ double freestream_vibration_temperature = 300.00;
//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). //double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2).
//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). //double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)).
//int inflowParaType = 3;
//int nsubsonicInlet = 1;
//int nsubsonicOutlet = 1;
//string inLetFileName = "./bin/subsonicInlet.hypara";
//string outLetFileName = "./bin/subsonicOutlet.hypara";
//double refDimensionalTemperature = 288.144;
//double refDimensionalPressure = 1.01313E05;
// The velocity, temperature and density are fixed. // The velocity, temperature and density are fixed.
//int inflowParaType = 4; //int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0; //double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed. // The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6; //int inflowParaType = 6;
//double refDimensionalTemperature = 293; //double refDimensionalTemperature = 293.0;
//double refDimensionalPressure = 8886.06; //double refDimensionalPressure = 8886.06;
// The velocity, temperature and pressure are read from file.
//int inflowParaType = 7;
//string weatherDataFilePath = "./WRFData/";
//double longitude = 110.95
//double latitude = 19.61;
double wallTemperature = -1.0; double wallTemperature = -1.0;
double radiationCoef = 0.8; double radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter. double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol. double refMolecularWeight = 28.9644; // unit of g/mol.
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Spatial Discretisation # # Spatial Discretisation #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
#******************************************************************* #************************************************************************
# Struct Solver * # Struct Solver *
#******************************************************************* #************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid. // inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid. // Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f". // -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe". // -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid. // isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default) // 0 -- NO. (default)
// 1 -- Yes. // 1 -- Yes.
// str_limiter_name: Limiter of struct grid. // str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". // -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter. // -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version. // -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" // -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe"; string inviscidSchemeName = "roe";
int isWennScheme = 0; int isWennScheme = 0;
string str_limiter_name = "vanalbada"; string str_limiter_name = "vanalbada";
#******************************************************************* #************************************************************************
# UnStruct Solver or Common * # UnStruct Solver or Common *
#******************************************************************* #************************************************************************
// viscousType: Viscous model. // viscousType: Viscous model.
// 0 -- Euler. // 0 -- Euler.
// 1 -- Lamilar. // 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES. // 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. // uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// Using this when solve Unstructered grid or hybrid. // Using this when solve Unstructered grid or hybrid.
// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle". // -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle",
// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+".
// uns_limiter_name: Limiter of Unstruct grid. // uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod". // -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st". // -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter. // -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term. // uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2". // -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used. // 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// It is used to scale the default Roe entropy fix coefficients. // It is used to scale the default Roe entropy fix coefficients.
// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 // AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0.
//int viscousType = 0; //int viscousType = 0;
//string viscousName = "Euler"; //string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0; double AusmpwPlusLimiter = 1.0;
//----------------------------------------------------------------------- #************************************************************************
# Temporal Discretisation # # Temporal Discretisation *
//----------------------------------------------------------------------- #************************************************************************
// iunsteady: Steady or unsteady. // iunsteady: Steady or unsteady.
// 0 -- steady. // 0 -- steady.
// 1 -- unsteay. // 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration. // 6 -- Jacobian iteration.
// 7 -- Line LU-SGS. // 7 -- Line LU-SGS.
// 8 -- Matrix LU-SGS. // 8 -- Matrix LU-SGS.
// 9 -- GMRES.
// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. // iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation.
// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. // Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method.
// CFLStart: Started cfl number. // CFLStart: Started cfl number.
// CFLEnd: End cfl number. // CFLEnd: End cfl number.
// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. // CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd.
// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration.
// OriginalTscheme : Used for LUSGS and GMres hybrid computing.
// useLUSGSprecond: Initialize flow field for GMRES.
// 0 --Initialize by first order Jacobian matrix.
// 1 --Initialize by LUSGS.
// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field.
// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) // ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. // swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. // nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function. // 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step. // RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step. // lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0; int iunsteady = 0;
double physicalTimeStep = 0.01; double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001; double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000; int startStatisticStep = 800000;
double statisticalTimePeriod = -1.0; double statisticalTimePeriod = -1.0;
int statisticMethod = 0; int statisticMethod = 0;
int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2.
int methodOfDualTime = 3; int methodOfDualTime = 3;
int min_sub_iter = 50; int min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01; double CFLStart = 0.01;
double CFLEnd = 10.0; double CFLEnd = 10.0;
int CFLVaryStep = 500; int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2; double pMaxForCFL = 0.2;
double pMinForCFL = 0.1; double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2; double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01; double visl_min = 0.01;
double turbCFLScale = 1.0; double turbCFLScale = 1.0;
double csrv = 2.0; double csrv = 1.0;
double timemax = 1.0e10; double timemax = 1.0e10;
double dtsave = -1.0; double dtsave = -1.0;
int maxale = 10; int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4; //int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
#************************************************************************
//----------------------------------------------------------------------- # File In or Out *
# File In or Out # #************************************************************************
//-----------------------------------------------------------------------
// numberOfGridGroups: The number of grid groups. // numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path, // gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory. // which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance. // nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance. // 0 -- Compute wall distance.
// 1 -- Not compute. // 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. // protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. // wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1; int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts"; string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = ""; string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat"; string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat"; string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat"; string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat"; string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat"; string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt"; string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat"; string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.dat"; string protectionFile1 = "results/flow1.dat";
string wall_heatfluxfile = "results/wall_heatflux.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat";
string protectionTurbFile0 = "results/turb0.dat";
string protectionTurbFile1 = "results/turb1.dat";
string protectionTransitionFile0 = "results/transition0.dat";
string protectionTransitionFile1 = "results/transition1.dat";
int nDumpSurfaceInfo = 0; int nDumpSurfaceInfo = 0;
string wall_varfile = ""; string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat"; string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat"; string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt"; string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile. // visualfileType: The file type of visualfile.
// 0 -- Tecplot binary. // 0 -- Tecplot binary.
// 1 -- Tecplot ASCII. // 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1; int visualfileType = 1;
// samplefileMode: The dump mode of sample file. // samplefileMode: The dump mode of sample file.
@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0];
// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36),
// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40),
// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), // -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81) // -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- specific heat ratio(gama, 56) // -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big. // Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition---------------- //-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall. // nVisualWallVariables: The number of visual variables on wall.
// visualWallVariables : dumped variable types, listed as following: // visualWallVariables : dumped variable types, listed as following:
// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), // -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4),
// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), // -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8),
// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), // -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11),
// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) // -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15),
// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) // -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19),
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) // -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8; int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
@ -739,7 +761,9 @@ int dumpStandardModel = 0;
// 1 -- Real cell where the probe is located. // 1 -- Real cell where the probe is located.
// nProbeVariables: Number of variables want to be dumped for probes monitered. // nProbeVariables: Number of variables want to be dumped for probes monitered.
// probeVariables : Variable types dumped, listed as following: // probeVariables : Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). // -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9),
// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12).
// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!!
// probeVariables order must from small to big. // probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0; int searchCellsMethod = 0;
int nProbeVariables = 7; int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0; int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter # #************************************************************************
//----------------------------------------------------------------------- # Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence. // turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source. // kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original. // 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type // transitionType: transition model type
// 0 -- none. // 0 -- none.
// 2 -- gama-re-theta. // 2 -- gama-re-theta.
// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition // turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition.
// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not // freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not.
int turbInterval = 1; int turbInterval = 1;
int turbOrderStruct = 2; int turbOrderStruct = 2;
int kindOfTurbSource = 0; int kindOfTurbSource = 0;
int mod_turb_res = 0; int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3; double freeStreamViscosity = 1.0e-3;
double muoo = 3.0; double muoo = 3.0;
double kwoo = 5.0; double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0; int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0; double freeDecayXLocation = 0.0;
int compressibleCorrection = 0; int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1; int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max. // maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10; double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0; int monitor_vistmax = 0;
//----------------------------------------------------------------------- #************************************************************************
# LES Parameter # # LES Parameter *
//----------------------------------------------------------------------- #************************************************************************
// iLES: Create LESSolver or not. // iLES: Create LESSolver or not.
// = 1 - Create LESSolver; // = 1 -- Create LESSolver;
// != 1 - not. // != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb. // amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random 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. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter; // = 0 -- in only first sub-iter;
// != 0 - in every sub-iter. // != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not. // ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not. // ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not; // = 0 -- not;
// != 0 - Add body force. // != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not. // bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb. // utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model. // sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom"; // = "dsmCom";
// = "wale"; // = "wale";
// = "sigma". // = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); // deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3); // = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti. // = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function; // wallDampingFunctionType: = 0 -- no wall function;
// = 1 - van Driest; // = 1 -- van Driest;
// = 2 - developed by Dr. Deng Xiaobing; // = 2 -- developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli. // = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type. // turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul; // = 0 -- mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul; // = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 - mu_total = max(mut ,0)+ mul. // = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model. // smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model. // waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not. // filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average 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. // isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0; int iLES = 0;
string sgsmodel = "smagorinsky"; string sgsmodel = "smagorinsky";
int deltaFunctionType = 2; int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1; int averageWidth = 1;
int monitorNegativeConstant = 0; int monitorNegativeConstant = 0;
//----------------------------------------------------------------------- #************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas # # Other Parameters for Hypersonic Non-equilibrium Gas *
//----------------------------------------------------------------------- #************************************************************************
// dg_high_order: // dg_high_order:
// 0 -- generic order accuracy. // 0 -- generic order accuracy.
// 1 -- high order accuracy. // 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes. // 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files. // 1 -- gas model is imported from library files.
// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver,
// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver.
// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps.
// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual.
// nm: Equation number of the physics, but is out of commision now. // nm: Equation number of the physics, but is out of commision now.
// 4 -- for 2D. // 4 -- for 2D.
// 5 -- for 3D. // 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas. // 0 -- perfect gas.
// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component.
// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. // nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. // nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. // nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSlipBCModel: The computational model of slip boundary conditions. // nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip. // 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions. // 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions. // 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model. // 1 -- One-temperature model.
// 2 -- Two-temperature model. // 2 -- Two-temperature model.
// 3 -- Three-temperature model. // 3 -- Three-temperature model.
// isUseNoneqCond:
// 0 -- compute the source terms without any conditions.
// 1 -- compute the source terms using the non-equilibrium condition.
// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value.
// nIdealState: whether take all gas species as ideal gas for gas-mixture process. // nIdealState: whether take all gas species as ideal gas for gas-mixture process.
// 0 -- No. // 0 -- No.
// 1 -- Yes. // 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method. // 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the polynomial fitting method. // 1 -- the energy term is computed using the polynomial fitting method.
// 2 -- the energy term is computed using the piecewise polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method.
@ -946,14 +965,13 @@ int monitorNegativeConstant = 0;
// 1.0 -- proposed by Maxwell. // 1.0 -- proposed by Maxwell.
// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. // sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall.
// 1.146 -- proposed for an additional "fictitious" velocity slip. // 1.146 -- proposed for an additional "fictitious" velocity slip.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. // chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. // spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. // staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions. // nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 0 -- not freeze, the chemical reaction sources will be calculated. // 0 -- not freeze, the chemical reaction sources will be calculated.
// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te // 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.
// veTemperatureMin: The minimum of Tv and Te.
// maxViscous: the maximum of Viscous. // maxViscous: the maximum of Viscous.
// trTemperatureMin: the minimum value of trTemperature. // trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature. // veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species // nSpeciesLimit: limitter of gas species
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction // nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0. // 0 -- method 0.
// 1 -- method 1. // 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid // nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef // nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource // nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource // nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori.) // 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New) // 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature. // nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs // 0 -- not used.
// 0 -- not used // 1 -- used.
// 1 -- used // nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// nDiagonalModified: Modified on Diagonal // 1 -- new.
// 0 -- not used // nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 1 -- Ori. // 0 -- not used.
// 2 -- new // 1 -- new.
// nGradPrimtiveMethod: // nGradPrimtiveMethod:
// 0 -- Ori. // 0 -- Ori.
// 1 -- new // 1 -- new.
// nAblation: // nAblation:
// 0 -- The wall ablation is not computed. // 0 -- The wall ablation is not computed.
// 1 -- The wall ablation is computed. // 1 -- The wall ablation is computed.
@ -1017,8 +1033,8 @@ int monitorNegativeConstant = 0;
// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. // "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. // "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting. // "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©. // for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©. // for unstruct solver mixing multi-species<65><73>O2 NO CO CO2 H2 N2 Air CH4<48><34>.
// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // For self-definition model, the gasfile is used to indicate the file path of the new gas model.
// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma.
// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation.
// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation.
// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation.
// useHyflowSetting : Setting for HyFLOW GUI.
// 0 -- PHengLEI
// 1 -- HyFLOW
// nProtectData: Use the continuation file data protection mechanism. // nProtectData: Use the continuation file data protection mechanism.
// 0 -- no // 0 -- no.
// 1 -- yes // 1 -- yes.
// nTvChange: Judge whether the Tv equals Ttr.
// 0 -- yes.
// 1 -- no.
// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions.
// nFraction: the initial fractions type of species.
// 0 -- mass fraction.
// 1 -- mole fraction.
int dg_high_order = 0; int dg_high_order = 0;
int iapplication = 0; int iapplication = 0;
int isAdaptiveSolver = 0; int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1; double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0; double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0; double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0; int nDebug = 0;
int nSpeciesLimit = 1; int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5; int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1; int veTemperatureMinModified = 1;
int nDiagonalModified = 0; int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1; int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1; int nInviscidFluxModify = 1;
int nQlLimitMethod = 2; int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1; int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0; int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0; int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0; int nAblation = 0;
int isInjection = 0; int isInjection = 0;
int nViscosityModel = 0; int nViscosityModel = 0;
int nMarsModel = 0; int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5"; string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; //string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2"; string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2"; //string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0"; //string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0; int nContinueModel = 0;
int nChemicalFlowStep = 0; int nChemicalFlowStep = 0;
int ifStartFromPerfectGasResults = 0; int ifStartFromPerfectGasResults = 0;
int isUseNoneqCond = 0;
double frozenCondition = 0.01;
int nLeakageMonitor = 0;
double totalLeakageVolume = 1000.0;
double monitorThresholdValue = 0.05;
double sprayFactor = 0.0;
######################################################################### #########################################################################
// Multi-Grid parameters. // Multi-Grid parameters.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order. // 1 -- zero order.
// 2 -- first-order. (default) // 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit. // mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1; int nMGLevel = 1;
int MGCoarsestIteration = 1; int MGCoarsestIteration = 1;
int MGPreIteration = 1; int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat"; string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
######################################################################### #************************************************************************
# High Order Struct Solver # # High Order Struct Solver *
######################################################################### #************************************************************************
// isFVMOrFDM: // isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method. // 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method. // 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not. // codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-overlapping grid. // 0 -- NON-overlapping grid.
// 1 -- Overlapping grid. // 1 -- Overlapping grid.
// oversetInterpolationMethod: the method of overset interpolation while field simulation // oversetInterpolationMethod: the method of overset interpolation while field simulation.
// 0 -- set the acceptor cell value by donor cell value. // 0 -- set the acceptor cell value by donor cell value.
// 1 -- set the acceptor cell value by distance weight of donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value.
// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated.
// 0 -- no.
// 1 -- yes.
// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in
// the current overset grid(only for three dimension).
// 0 -- no.
// 1 -- yes.
// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid.
// 0 -- no.
// 1 -- yes.
// walldistMainZone: The initial value of background grid which does not exist wall boundary condition.
// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell.
// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region.
// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary.
// 0 -- one layer.
// 1 -- two layers.
// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region.
// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure.
// 0 -- no.
// 1 -- yes.
int codeOfOversetGrid = 0; int codeOfOversetGrid = 0;
int oversetInterpolationMethod = 0; int oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0; int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0; int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0; int outTecplotOverset = 0;
int outPutOversetVisualization = 0; int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2; int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------ // ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0; double referenceVelocity = 1.0;
double referenceDensity = 1.0; double referenceDensity = 1.0;
int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
int strategyForGCLSource = 0; //0-present; 1-Ahn; int strategyForGCLSource = 0; // 0-present; 1-Ahn.
//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton // 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton.
int methodForKineticEquation = 0; int methodForKineticEquation = 0;
double relaxParameterOfKinetic = 1.0; double relaxParameterOfKinetic = 1.0;
######################################################################### #************************************************************************
# motive information # # motive information *
######################################################################### #************************************************************************
int numberOfMovingBodies = 1; int numberOfMovingBodies = 1;
############################## body0 ############################## ############################## body0 ##############################
//mass of parts // mass of parts.
double mass_0 = 1.0; double mass_0 = 1.0;
//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz // gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_0 = 0.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz.
double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
//initial six DOF position information of parts. xc yc zc // initial six DOF position information of parts. xc yc zc.
double massCenter_0[] = 0.0, 0.0, 0.0; double massCenter_0[] = 0.0, 0.0, 0.0;
//initial six DOF position information of parts. angleX angleY angleZ // if reset mass center while restart.
int resetMassCenter_0 = 0;
// position offset of parts. dx dy dz.
double massCenterDxyz_0[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_0[] = 0.0, 0.0, 0.0; double attitudeAngle_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. vc vy vz // initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_0[] = 0.0, 0.0, 0.0; double massCenterVelocity_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. omigX omigY omigZ // initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_0[] = 0.0, 0.0, 0.0; double angularVelocity_0[] = 0.0, 0.0, 0.0;
// the object that the parts belong to. // the object that the parts belong to.
int fartherIndex_0 = -1; int fartherIndex_0 = -1;
//the assembly position of the parts. xc yc zc angleX angleY angleZ // the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
// the move pattern of the parts. // the move pattern of the parts.
// -1 given motion partten. // -1 given motion partten.
@ -1349,23 +1403,24 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0
int RBDMethod_0 = 0; int RBDMethod_0 = 0;
double amplitude_0 = 0.0; double amplitude_0 = 0.0;
double reduceFrequency_0 = 0.0; double reduceFrequency_0 = 0.0;
//direction of rotation // direction of rotation.
// 1 -- clockwise from the point of view along the positive x axis. // 1 -- clockwise from the point of view along the positive x axis.
// -1 -- anticlockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1; int direction_0 = -1;
double rotateFrequency_0 = 0.0; double rotateFrequency_0 = 0.0;
//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; //string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter";
//additional force (system axis) fX fY fZ // dimensional physical time for additional force(s).
double addedForceTime_0[] = 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_0[] = 0.0, 0.0, 0.0; double addedForce_0[] = 0.0, 0.0, 0.0;
//additional moment of Force (system axis) mX mY mZ // additional moment(inertia system) mX mY mZ.
double addedMoment_0[] = 0.0, 0.0, 0.0; double addedMoment_0[] = 0.0, 0.0, 0.0;
// the deformation method of the parts. // the deformation method of the parts.
int morphing_0 = 0; int morphing_0 = 0;
// post indentify // post indentify.
int integralOrder = 4; int integralOrder = 4;
// ---------------- ATP read -------------------------------------------- // ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0; //@int inflowParaType = 0;
//@double refReNumber = 6.5e6; //@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0; //@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0; //@double refDimensionalDensity = 0;
//@string weatherDataFilePath = "./WRFData/";
######################################################################### //@double longitude = 110.95
# Old Parameter # //@double latitude = 19.61;
######################################################################### #************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0; int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
######################################################################### //double partialCFL[] = [0.0];
# Incompressible Parameter # //double partialSpeedCoef[] = [0.0];
######################################################################### //double partialSpeed[] = [0.0];
//double partialAttackd[] = [0.0];
//double partialSlide[] = [0.0];
//double partialPressure[] = [0.0];
//double partialTemperature[] = [0.0];
//double partialMassFractions[] = [0.0];
#************************************************************************
# Incompressible Parameter *
#************************************************************************
int isSolveEnergyEquation = 0; int isSolveEnergyEquation = 0;
int isSolveTurbEquation = 0; int isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0; int isSolveSpeciesEquation = 0;

View File

@ -4,9 +4,12 @@
// gridtype: Grid type for generation, conversion, reconstruction, merging. // gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid. // 0 -- Unstructured grid.
// 1 -- Structured grid. // 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process. // from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE. // -1 -- MULTI_TYPE.
// 1 -- PHengLEI, *.fts. // 1 -- PHengLEI, *.fts.
@ -18,7 +21,9 @@
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. // 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
// 8 -- GMSH, *.msh. // 8 -- GMSH, *.msh.
int gridtype = 0; int gridtype = 0;
int axisup = 1; int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
int from_gtype = 5; int from_gtype = 5;
######################################################################### #########################################################################

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows + // Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center + // China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 + // (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
########################################################################### ###########################################################################
# Default parameters for Grid conversion # # Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0; int multiblock = 0;
int iadapt = 0; int iadapt = 0;
int SymmetryFaceVector = 1; int SymmetryFaceVector = 1;
int gridReorder = 0; int gridReorder = 0;
int faceReorderMethod = 0; int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
int axisup = 1; // 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition".
// 0 -- Interface. (default) // 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver. // 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Grid data type # # Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1; int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas"; string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = ""; string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------ // ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction. which only support one direction.
// rotationAngle: The relative angle between two periodic face. // rotationAngle: The relative angle between two periodic face.
which is recorded in degrees. which is recorded in degrees.
int periodicType = 0; int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0]; double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0; double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid. // 2 -- refine structured grid.
// maxproc: The number of partition zones that want to be divided into. // maxproc: The number of partition zones that want to be divided into.
// numberOfMultifile: The number of partition grid files that want to be dumped out. // numberOfMultifile: The number of partition grid files that want to be dumped out.
int pgridtype = 0; int pgridtype = 0;
int maxproc = 4; int maxproc = 4;
int numberOfMultifile = 1; int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1]; int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy: // parallelStrategy:
//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. // 0 -- each zone is assigned to the one that defined in grid partition procedure.
//! -# 1 : random assigned for each zone or by some else ways. // 1 -- random assigned for each zone or by some else ways.
int parallelStrategy = 1; int parallelStrategy = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance. // 1 -- perfect balance.
// maxproc -- perfect imbalance. // maxproc -- perfect imbalance.
// 1.05 -- recommended. // 1.05 -- recommended.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int npartmethod = 1; int npartmethod = 1;
int parallelPartitionMethod = 2; int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. // intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual file 'res.dat' saved. // intervalStepRes: The step intervals for residual file 'res.dat' saved.
// 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 maxSimuStep = 20000; int maxSimuStep = 20000;
int intervalStepFlow = 1000; int intervalStepFlow = 1000;
int intervalStepPlot = 1000; int intervalStepPlot = 1000;
int intervalStepSample = 1000; int intervalStepSample = 1000;
int intervalStepForce = 100; int intervalStepForce = 100;
int intervalStepRes = 10; int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible: // compressible:
// 0 -- incompressible flow. // 0 -- incompressible flow.
// 1 -- compressible flow. (default) // 1 -- compressible flow. (default)
int compressible = 1; int compressible = 1;
// 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)
// Kprec: The coefficient K for the cut-off velocity.
// 1.0~3.0 is suggested. (default, 3.0)
// preconFarfieldBCMethod: The precondition method for farfield boundary condition.
// 0 -- precondition far-field boundary based on riemann invariants.
// 1 -- Turkel's simplified far-field boundary condition.
int ifLowSpeedPrecon = 0;
double Kprec = 3.0;
int preconFarfieldBCMethod = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# CFD Control Parameter # # CFD Control Parameter #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions. // 0 -- the nondimensional conditions.
// 1 -- the flight conditions. // 1 -- the flight conditions.
// 2 -- the experiment conditions. // 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions. // 3 -- the subsonic boundary conditions. (Useless!)
// 4 -- the condition that the velocity, temperature and density are given. // 4 -- the condition that the velocity, temperature and density are given.
// 5 -- the condition that the velocity, temperature and pressure are given. // 5 -- the condition that the velocity, temperature and pressure are given.
//flowInitMethod: Flow field initialization method.
// 0 -- The entire flow field is initialized according to Infinite velocity.
// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m. // 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. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// freestream_vibration_temperature: Dimensional freestream vibration temperature. // freestream_vibration_temperature: Dimensional freestream vibration temperature.
@ -303,11 +314,11 @@ int compressible = 1;
// condition is radiation equilibrium temperature, and 0.8 is the default value. // condition is radiation equilibrium temperature, and 0.8 is the default value.
// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol.
// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on.
int directionMethod = 0; int directionMethod = 0;
double refMachNumber = 0.73; double refMachNumber = 0.73;
double attackd = 2.79; double attackd = 2.79;
double angleSlide = 0.00; double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0; int inflowParaType = 0;
double refReNumber = 6.5e6; double refReNumber = 6.5e6;
@ -321,14 +332,6 @@ double freestream_vibration_temperature = 300.00;
//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). //double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2).
//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). //double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)).
//int inflowParaType = 3;
//int nsubsonicInlet = 1;
//int nsubsonicOutlet = 1;
//string inLetFileName = "./bin/subsonicInlet.hypara";
//string outLetFileName = "./bin/subsonicOutlet.hypara";
//double refDimensionalTemperature = 288.144;
//double refDimensionalPressure = 1.01313E05;
// The velocity, temperature and density are fixed. // The velocity, temperature and density are fixed.
//int inflowParaType = 4; //int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0; //double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed. // The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6; //int inflowParaType = 6;
//double refDimensionalTemperature = 293; //double refDimensionalTemperature = 293.0;
//double refDimensionalPressure = 8886.06; //double refDimensionalPressure = 8886.06;
// The velocity, temperature and pressure are read from file.
//int inflowParaType = 7;
//string weatherDataFilePath = "./WRFData/";
//double longitude = 110.95
//double latitude = 19.61;
double wallTemperature = -1.0; double wallTemperature = -1.0;
double radiationCoef = 0.8; double radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter. double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol. double refMolecularWeight = 28.9644; // unit of g/mol.
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Spatial Discretisation # # Spatial Discretisation #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
#******************************************************************* #************************************************************************
# Struct Solver * # Struct Solver *
#******************************************************************* #************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid. // inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid. // Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f". // -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe". // -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid. // isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default) // 0 -- NO. (default)
// 1 -- Yes. // 1 -- Yes.
// str_limiter_name: Limiter of struct grid. // str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". // -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter. // -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version. // -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" // -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe"; string inviscidSchemeName = "roe";
int isWennScheme = 0; int isWennScheme = 0;
string str_limiter_name = "vanalbada"; string str_limiter_name = "vanalbada";
#******************************************************************* #************************************************************************
# UnStruct Solver or Common * # UnStruct Solver or Common *
#******************************************************************* #************************************************************************
// viscousType: Viscous model. // viscousType: Viscous model.
// 0 -- Euler. // 0 -- Euler.
// 1 -- Lamilar. // 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES. // 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. // uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// Using this when solve Unstructered grid or hybrid. // Using this when solve Unstructered grid or hybrid.
// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle". // -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle",
// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+".
// uns_limiter_name: Limiter of Unstruct grid. // uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod". // -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st". // -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter. // -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term. // uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2". // -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used. // 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// It is used to scale the default Roe entropy fix coefficients. // It is used to scale the default Roe entropy fix coefficients.
// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 // AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0.
//int viscousType = 0; //int viscousType = 0;
//string viscousName = "Euler"; //string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0; double AusmpwPlusLimiter = 1.0;
//----------------------------------------------------------------------- #************************************************************************
# Temporal Discretisation # # Temporal Discretisation *
//----------------------------------------------------------------------- #************************************************************************
// iunsteady: Steady or unsteady. // iunsteady: Steady or unsteady.
// 0 -- steady. // 0 -- steady.
// 1 -- unsteay. // 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration. // 6 -- Jacobian iteration.
// 7 -- Line LU-SGS. // 7 -- Line LU-SGS.
// 8 -- Matrix LU-SGS. // 8 -- Matrix LU-SGS.
// 9 -- GMRES.
// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. // iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation.
// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. // Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method.
// CFLStart: Started cfl number. // CFLStart: Started cfl number.
// CFLEnd: End cfl number. // CFLEnd: End cfl number.
// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. // CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd.
// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration.
// OriginalTscheme : Used for LUSGS and GMres hybrid computing.
// useLUSGSprecond: Initialize flow field for GMRES.
// 0 --Initialize by first order Jacobian matrix.
// 1 --Initialize by LUSGS.
// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field.
// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) // ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. // swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. // nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function. // 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step. // RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step. // lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0; int iunsteady = 0;
double physicalTimeStep = 0.01; double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001; double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000; int startStatisticStep = 800000;
double statisticalTimePeriod = -1.0; double statisticalTimePeriod = -1.0;
int statisticMethod = 0; int statisticMethod = 0;
int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2.
int methodOfDualTime = 3; int methodOfDualTime = 3;
int min_sub_iter = 50; int min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01; double CFLStart = 0.01;
double CFLEnd = 10.0; double CFLEnd = 10.0;
int CFLVaryStep = 500; int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2; double pMaxForCFL = 0.2;
double pMinForCFL = 0.1; double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2; double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01; double visl_min = 0.01;
double turbCFLScale = 1.0; double turbCFLScale = 1.0;
double csrv = 2.0; double csrv = 1.0;
double timemax = 1.0e10; double timemax = 1.0e10;
double dtsave = -1.0; double dtsave = -1.0;
int maxale = 10; int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4; //int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
#************************************************************************
//----------------------------------------------------------------------- # File In or Out *
# File In or Out # #************************************************************************
//-----------------------------------------------------------------------
// numberOfGridGroups: The number of grid groups. // numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path, // gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory. // which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance. // nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance. // 0 -- Compute wall distance.
// 1 -- Not compute. // 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. // protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. // wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1; int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts"; string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = ""; string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat"; string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat"; string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat"; string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat"; string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat"; string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt"; string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat"; string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.dat"; string protectionFile1 = "results/flow1.dat";
string wall_heatfluxfile = "results/wall_heatflux.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat";
string protectionTurbFile0 = "results/turb0.dat";
string protectionTurbFile1 = "results/turb1.dat";
string protectionTransitionFile0 = "results/transition0.dat";
string protectionTransitionFile1 = "results/transition1.dat";
int nDumpSurfaceInfo = 0; int nDumpSurfaceInfo = 0;
string wall_varfile = ""; string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat"; string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat"; string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt"; string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile. // visualfileType: The file type of visualfile.
// 0 -- Tecplot binary. // 0 -- Tecplot binary.
// 1 -- Tecplot ASCII. // 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1; int visualfileType = 1;
// samplefileMode: The dump mode of sample file. // samplefileMode: The dump mode of sample file.
@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0];
// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36),
// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40),
// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), // -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81) // -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- specific heat ratio(gama, 56) // -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big. // Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition---------------- //-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall. // nVisualWallVariables: The number of visual variables on wall.
// visualWallVariables : dumped variable types, listed as following: // visualWallVariables : dumped variable types, listed as following:
// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), // -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4),
// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), // -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8),
// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), // -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11),
// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) // -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15),
// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) // -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19),
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) // -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8; int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
@ -739,7 +761,9 @@ int dumpStandardModel = 0;
// 1 -- Real cell where the probe is located. // 1 -- Real cell where the probe is located.
// nProbeVariables: Number of variables want to be dumped for probes monitered. // nProbeVariables: Number of variables want to be dumped for probes monitered.
// probeVariables : Variable types dumped, listed as following: // probeVariables : Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). // -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9),
// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12).
// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!!
// probeVariables order must from small to big. // probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0; int searchCellsMethod = 0;
int nProbeVariables = 7; int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0; int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter # #************************************************************************
//----------------------------------------------------------------------- # Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence. // turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source. // kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original. // 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type // transitionType: transition model type
// 0 -- none. // 0 -- none.
// 2 -- gama-re-theta. // 2 -- gama-re-theta.
// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition // turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition.
// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not // freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not.
int turbInterval = 1; int turbInterval = 1;
int turbOrderStruct = 2; int turbOrderStruct = 2;
int kindOfTurbSource = 0; int kindOfTurbSource = 0;
int mod_turb_res = 0; int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3; double freeStreamViscosity = 1.0e-3;
double muoo = 3.0; double muoo = 3.0;
double kwoo = 5.0; double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0; int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0; double freeDecayXLocation = 0.0;
int compressibleCorrection = 0; int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1; int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max. // maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10; double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0; int monitor_vistmax = 0;
//----------------------------------------------------------------------- #************************************************************************
# LES Parameter # # LES Parameter *
//----------------------------------------------------------------------- #************************************************************************
// iLES: Create LESSolver or not. // iLES: Create LESSolver or not.
// = 1 - Create LESSolver; // = 1 -- Create LESSolver;
// != 1 - not. // != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb. // amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random 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. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter; // = 0 -- in only first sub-iter;
// != 0 - in every sub-iter. // != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not. // ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not. // ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not; // = 0 -- not;
// != 0 - Add body force. // != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not. // bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb. // utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model. // sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom"; // = "dsmCom";
// = "wale"; // = "wale";
// = "sigma". // = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); // deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3); // = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti. // = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function; // wallDampingFunctionType: = 0 -- no wall function;
// = 1 - van Driest; // = 1 -- van Driest;
// = 2 - developed by Dr. Deng Xiaobing; // = 2 -- developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli. // = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type. // turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul; // = 0 -- mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul; // = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 - mu_total = max(mut ,0)+ mul. // = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model. // smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model. // waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not. // filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average 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. // isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0; int iLES = 0;
string sgsmodel = "smagorinsky"; string sgsmodel = "smagorinsky";
int deltaFunctionType = 2; int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1; int averageWidth = 1;
int monitorNegativeConstant = 0; int monitorNegativeConstant = 0;
//----------------------------------------------------------------------- #************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas # # Other Parameters for Hypersonic Non-equilibrium Gas *
//----------------------------------------------------------------------- #************************************************************************
// dg_high_order: // dg_high_order:
// 0 -- generic order accuracy. // 0 -- generic order accuracy.
// 1 -- high order accuracy. // 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes. // 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files. // 1 -- gas model is imported from library files.
// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver,
// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver.
// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps.
// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual.
// nm: Equation number of the physics, but is out of commision now. // nm: Equation number of the physics, but is out of commision now.
// 4 -- for 2D. // 4 -- for 2D.
// 5 -- for 3D. // 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas. // 0 -- perfect gas.
// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component.
// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. // nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. // nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. // nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSlipBCModel: The computational model of slip boundary conditions. // nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip. // 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions. // 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions. // 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model. // 1 -- One-temperature model.
// 2 -- Two-temperature model. // 2 -- Two-temperature model.
// 3 -- Three-temperature model. // 3 -- Three-temperature model.
// isUseNoneqCond:
// 0 -- compute the source terms without any conditions.
// 1 -- compute the source terms using the non-equilibrium condition.
// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value.
// nIdealState: whether take all gas species as ideal gas for gas-mixture process. // nIdealState: whether take all gas species as ideal gas for gas-mixture process.
// 0 -- No. // 0 -- No.
// 1 -- Yes. // 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method. // 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the polynomial fitting method. // 1 -- the energy term is computed using the polynomial fitting method.
// 2 -- the energy term is computed using the piecewise polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method.
@ -946,14 +965,13 @@ int monitorNegativeConstant = 0;
// 1.0 -- proposed by Maxwell. // 1.0 -- proposed by Maxwell.
// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. // sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall.
// 1.146 -- proposed for an additional "fictitious" velocity slip. // 1.146 -- proposed for an additional "fictitious" velocity slip.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. // chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. // spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. // staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions. // nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 0 -- not freeze, the chemical reaction sources will be calculated. // 0 -- not freeze, the chemical reaction sources will be calculated.
// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te // 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.
// veTemperatureMin: The minimum of Tv and Te.
// maxViscous: the maximum of Viscous. // maxViscous: the maximum of Viscous.
// trTemperatureMin: the minimum value of trTemperature. // trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature. // veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species // nSpeciesLimit: limitter of gas species
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction // nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0. // 0 -- method 0.
// 1 -- method 1. // 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid // nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef // nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource // nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource // nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori.) // 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New) // 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature. // nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs // 0 -- not used.
// 0 -- not used // 1 -- used.
// 1 -- used // nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// nDiagonalModified: Modified on Diagonal // 1 -- new.
// 0 -- not used // nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 1 -- Ori. // 0 -- not used.
// 2 -- new // 1 -- new.
// nGradPrimtiveMethod: // nGradPrimtiveMethod:
// 0 -- Ori. // 0 -- Ori.
// 1 -- new // 1 -- new.
// nAblation: // nAblation:
// 0 -- The wall ablation is not computed. // 0 -- The wall ablation is not computed.
// 1 -- The wall ablation is computed. // 1 -- The wall ablation is computed.
@ -1017,8 +1033,8 @@ int monitorNegativeConstant = 0;
// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. // "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. // "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting. // "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©. // for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©. // for unstruct solver mixing multi-species<65><73>O2 NO CO CO2 H2 N2 Air CH4<48><34>.
// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // For self-definition model, the gasfile is used to indicate the file path of the new gas model.
// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma.
// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation.
// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation.
// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation.
// useHyflowSetting : Setting for HyFLOW GUI.
// 0 -- PHengLEI
// 1 -- HyFLOW
// nProtectData: Use the continuation file data protection mechanism. // nProtectData: Use the continuation file data protection mechanism.
// 0 -- no // 0 -- no.
// 1 -- yes // 1 -- yes.
// nTvChange: Judge whether the Tv equals Ttr.
// 0 -- yes.
// 1 -- no.
// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions.
// nFraction: the initial fractions type of species.
// 0 -- mass fraction.
// 1 -- mole fraction.
int dg_high_order = 0; int dg_high_order = 0;
int iapplication = 0; int iapplication = 0;
int isAdaptiveSolver = 0; int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1; double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0; double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0; double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0; int nDebug = 0;
int nSpeciesLimit = 1; int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5; int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1; int veTemperatureMinModified = 1;
int nDiagonalModified = 0; int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1; int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1; int nInviscidFluxModify = 1;
int nQlLimitMethod = 2; int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1; int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0; int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0; int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0; int nAblation = 0;
int isInjection = 0; int isInjection = 0;
int nViscosityModel = 0; int nViscosityModel = 0;
int nMarsModel = 0; int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5"; string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; //string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2"; string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2"; //string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0"; //string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0; int nContinueModel = 0;
int nChemicalFlowStep = 0; int nChemicalFlowStep = 0;
int ifStartFromPerfectGasResults = 0; int ifStartFromPerfectGasResults = 0;
int isUseNoneqCond = 0;
double frozenCondition = 0.01;
int nLeakageMonitor = 0;
double totalLeakageVolume = 1000.0;
double monitorThresholdValue = 0.05;
double sprayFactor = 0.0;
######################################################################### #########################################################################
// Multi-Grid parameters. // Multi-Grid parameters.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order. // 1 -- zero order.
// 2 -- first-order. (default) // 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit. // mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1; int nMGLevel = 1;
int MGCoarsestIteration = 1; int MGCoarsestIteration = 1;
int MGPreIteration = 1; int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat"; string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
######################################################################### #************************************************************************
# High Order Struct Solver # # High Order Struct Solver *
######################################################################### #************************************************************************
// isFVMOrFDM: // isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method. // 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method. // 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not. // codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-overlapping grid. // 0 -- NON-overlapping grid.
// 1 -- Overlapping grid. // 1 -- Overlapping grid.
// oversetInterpolationMethod: the method of overset interpolation while field simulation // oversetInterpolationMethod: the method of overset interpolation while field simulation.
// 0 -- set the acceptor cell value by donor cell value. // 0 -- set the acceptor cell value by donor cell value.
// 1 -- set the acceptor cell value by distance weight of donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value.
// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated.
// 0 -- no.
// 1 -- yes.
// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in
// the current overset grid(only for three dimension).
// 0 -- no.
// 1 -- yes.
// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid.
// 0 -- no.
// 1 -- yes.
// walldistMainZone: The initial value of background grid which does not exist wall boundary condition.
// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell.
// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region.
// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary.
// 0 -- one layer.
// 1 -- two layers.
// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region.
// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure.
// 0 -- no.
// 1 -- yes.
int codeOfOversetGrid = 0; int codeOfOversetGrid = 0;
int oversetInterpolationMethod = 0; int oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0; int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0; int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0; int outTecplotOverset = 0;
int outPutOversetVisualization = 0; int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2; int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------ // ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0; double referenceVelocity = 1.0;
double referenceDensity = 1.0; double referenceDensity = 1.0;
int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
int strategyForGCLSource = 0; //0-present; 1-Ahn; int strategyForGCLSource = 0; // 0-present; 1-Ahn.
//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton // 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton.
int methodForKineticEquation = 0; int methodForKineticEquation = 0;
double relaxParameterOfKinetic = 1.0; double relaxParameterOfKinetic = 1.0;
######################################################################### #************************************************************************
# motive information # # motive information *
######################################################################### #************************************************************************
int numberOfMovingBodies = 1; int numberOfMovingBodies = 1;
############################## body0 ############################## ############################## body0 ##############################
//mass of parts // mass of parts.
double mass_0 = 1.0; double mass_0 = 1.0;
//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz // gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_0 = 0.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz.
double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
//initial six DOF position information of parts. xc yc zc // initial six DOF position information of parts. xc yc zc.
double massCenter_0[] = 0.0, 0.0, 0.0; double massCenter_0[] = 0.0, 0.0, 0.0;
//initial six DOF position information of parts. angleX angleY angleZ // if reset mass center while restart.
int resetMassCenter_0 = 0;
// position offset of parts. dx dy dz.
double massCenterDxyz_0[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_0[] = 0.0, 0.0, 0.0; double attitudeAngle_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. vc vy vz // initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_0[] = 0.0, 0.0, 0.0; double massCenterVelocity_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. omigX omigY omigZ // initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_0[] = 0.0, 0.0, 0.0; double angularVelocity_0[] = 0.0, 0.0, 0.0;
// the object that the parts belong to. // the object that the parts belong to.
int fartherIndex_0 = -1; int fartherIndex_0 = -1;
//the assembly position of the parts. xc yc zc angleX angleY angleZ // the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
// the move pattern of the parts. // the move pattern of the parts.
// -1 given motion partten. // -1 given motion partten.
@ -1349,23 +1403,24 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0
int RBDMethod_0 = 0; int RBDMethod_0 = 0;
double amplitude_0 = 0.0; double amplitude_0 = 0.0;
double reduceFrequency_0 = 0.0; double reduceFrequency_0 = 0.0;
//direction of rotation // direction of rotation.
// 1 -- clockwise from the point of view along the positive x axis. // 1 -- clockwise from the point of view along the positive x axis.
// -1 -- anticlockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1; int direction_0 = -1;
double rotateFrequency_0 = 0.0; double rotateFrequency_0 = 0.0;
//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; //string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter";
//additional force (system axis) fX fY fZ // dimensional physical time for additional force(s).
double addedForceTime_0[] = 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_0[] = 0.0, 0.0, 0.0; double addedForce_0[] = 0.0, 0.0, 0.0;
//additional moment of Force (system axis) mX mY mZ // additional moment(inertia system) mX mY mZ.
double addedMoment_0[] = 0.0, 0.0, 0.0; double addedMoment_0[] = 0.0, 0.0, 0.0;
// the deformation method of the parts. // the deformation method of the parts.
int morphing_0 = 0; int morphing_0 = 0;
// post indentify // post indentify.
int integralOrder = 4; int integralOrder = 4;
// ---------------- ATP read -------------------------------------------- // ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0; //@int inflowParaType = 0;
//@double refReNumber = 6.5e6; //@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0; //@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0; //@double refDimensionalDensity = 0;
//@string weatherDataFilePath = "./WRFData/";
######################################################################### //@double longitude = 110.95
# Old Parameter # //@double latitude = 19.61;
######################################################################### #************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0; int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
######################################################################### //double partialCFL[] = [0.0];
# Incompressible Parameter # //double partialSpeedCoef[] = [0.0];
######################################################################### //double partialSpeed[] = [0.0];
//double partialAttackd[] = [0.0];
//double partialSlide[] = [0.0];
//double partialPressure[] = [0.0];
//double partialTemperature[] = [0.0];
//double partialMassFractions[] = [0.0];
#************************************************************************
# Incompressible Parameter *
#************************************************************************
int isSolveEnergyEquation = 0; int isSolveEnergyEquation = 0;
int isSolveTurbEquation = 0; int isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0; int isSolveSpeciesEquation = 0;

View File

@ -4,9 +4,12 @@
// gridtype: Grid type for generation, conversion, reconstruction, merging. // gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid. // 0 -- Unstructured grid.
// 1 -- Structured grid. // 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process. // from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE. // -1 -- MULTI_TYPE.
// 1 -- PHengLEI, *.fts. // 1 -- PHengLEI, *.fts.
@ -18,7 +21,9 @@
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. // 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
// 8 -- GMSH, *.msh. // 8 -- GMSH, *.msh.
int gridtype = 0; int gridtype = 0;
int axisup = 2; int nAxisRotateTimes = 1;
int axisRotateOrder[] = [1];
double axisRotateAngles[]= [90.0];
int from_gtype = 2; int from_gtype = 2;
######################################################################### #########################################################################

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows + // Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center + // China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 + // (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
########################################################################### ###########################################################################
# Default parameters for Grid conversion # # Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0; int multiblock = 0;
int iadapt = 0; int iadapt = 0;
int SymmetryFaceVector = 1; int SymmetryFaceVector = 1;
int gridReorder = 0; int gridReorder = 0;
int faceReorderMethod = 0; int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
int axisup = 1; // 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition".
// 0 -- Interface. (default) // 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver. // 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Grid data type # # Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1; int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas"; string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = ""; string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------ // ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction. which only support one direction.
// rotationAngle: The relative angle between two periodic face. // rotationAngle: The relative angle between two periodic face.
which is recorded in degrees. which is recorded in degrees.
int periodicType = 0; int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0]; double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0; double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid. // 2 -- refine structured grid.
// maxproc: The number of partition zones that want to be divided into. // maxproc: The number of partition zones that want to be divided into.
// numberOfMultifile: The number of partition grid files that want to be dumped out. // numberOfMultifile: The number of partition grid files that want to be dumped out.
int pgridtype = 0; int pgridtype = 0;
int maxproc = 4; int maxproc = 4;
int numberOfMultifile = 1; int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1]; int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy: // parallelStrategy:
//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. // 0 -- each zone is assigned to the one that defined in grid partition procedure.
//! -# 1 : random assigned for each zone or by some else ways. // 1 -- random assigned for each zone or by some else ways.
int parallelStrategy = 1; int parallelStrategy = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance. // 1 -- perfect balance.
// maxproc -- perfect imbalance. // maxproc -- perfect imbalance.
// 1.05 -- recommended. // 1.05 -- recommended.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int npartmethod = 1; int npartmethod = 1;
int parallelPartitionMethod = 2; int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. // intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual file 'res.dat' saved. // intervalStepRes: The step intervals for residual file 'res.dat' saved.
// 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 maxSimuStep = 20000; int maxSimuStep = 20000;
int intervalStepFlow = 1000; int intervalStepFlow = 1000;
int intervalStepPlot = 1000; int intervalStepPlot = 1000;
int intervalStepSample = 1000; int intervalStepSample = 1000;
int intervalStepForce = 100; int intervalStepForce = 100;
int intervalStepRes = 10; int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible: // compressible:
// 0 -- incompressible flow. // 0 -- incompressible flow.
// 1 -- compressible flow. (default) // 1 -- compressible flow. (default)
int compressible = 1; int compressible = 1;
// 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)
// Kprec: The coefficient K for the cut-off velocity.
// 1.0~3.0 is suggested. (default, 3.0)
// preconFarfieldBCMethod: The precondition method for farfield boundary condition.
// 0 -- precondition far-field boundary based on riemann invariants.
// 1 -- Turkel's simplified far-field boundary condition.
int ifLowSpeedPrecon = 0;
double Kprec = 3.0;
int preconFarfieldBCMethod = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# CFD Control Parameter # # CFD Control Parameter #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions. // 0 -- the nondimensional conditions.
// 1 -- the flight conditions. // 1 -- the flight conditions.
// 2 -- the experiment conditions. // 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions. // 3 -- the subsonic boundary conditions. (Useless!)
// 4 -- the condition that the velocity, temperature and density are given. // 4 -- the condition that the velocity, temperature and density are given.
// 5 -- the condition that the velocity, temperature and pressure are given. // 5 -- the condition that the velocity, temperature and pressure are given.
//flowInitMethod: Flow field initialization method.
// 0 -- The entire flow field is initialized according to Infinite velocity.
// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m. // 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. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// freestream_vibration_temperature: Dimensional freestream vibration temperature. // freestream_vibration_temperature: Dimensional freestream vibration temperature.
@ -303,11 +314,11 @@ int compressible = 1;
// condition is radiation equilibrium temperature, and 0.8 is the default value. // condition is radiation equilibrium temperature, and 0.8 is the default value.
// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol.
// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on.
int directionMethod = 0; int directionMethod = 0;
double refMachNumber = 0.73; double refMachNumber = 0.73;
double attackd = 2.79; double attackd = 2.79;
double angleSlide = 0.00; double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0; int inflowParaType = 0;
double refReNumber = 6.5e6; double refReNumber = 6.5e6;
@ -321,14 +332,6 @@ double freestream_vibration_temperature = 300.00;
//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). //double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2).
//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). //double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)).
//int inflowParaType = 3;
//int nsubsonicInlet = 1;
//int nsubsonicOutlet = 1;
//string inLetFileName = "./bin/subsonicInlet.hypara";
//string outLetFileName = "./bin/subsonicOutlet.hypara";
//double refDimensionalTemperature = 288.144;
//double refDimensionalPressure = 1.01313E05;
// The velocity, temperature and density are fixed. // The velocity, temperature and density are fixed.
//int inflowParaType = 4; //int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0; //double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed. // The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6; //int inflowParaType = 6;
//double refDimensionalTemperature = 293; //double refDimensionalTemperature = 293.0;
//double refDimensionalPressure = 8886.06; //double refDimensionalPressure = 8886.06;
// The velocity, temperature and pressure are read from file.
//int inflowParaType = 7;
//string weatherDataFilePath = "./WRFData/";
//double longitude = 110.95
//double latitude = 19.61;
double wallTemperature = -1.0; double wallTemperature = -1.0;
double radiationCoef = 0.8; double radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter. double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol. double refMolecularWeight = 28.9644; // unit of g/mol.
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Spatial Discretisation # # Spatial Discretisation #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
#******************************************************************* #************************************************************************
# Struct Solver * # Struct Solver *
#******************************************************************* #************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid. // inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid. // Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f". // -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe". // -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid. // isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default) // 0 -- NO. (default)
// 1 -- Yes. // 1 -- Yes.
// str_limiter_name: Limiter of struct grid. // str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". // -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter. // -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version. // -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" // -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe"; string inviscidSchemeName = "roe";
int isWennScheme = 0; int isWennScheme = 0;
string str_limiter_name = "vanalbada"; string str_limiter_name = "vanalbada";
#******************************************************************* #************************************************************************
# UnStruct Solver or Common * # UnStruct Solver or Common *
#******************************************************************* #************************************************************************
// viscousType: Viscous model. // viscousType: Viscous model.
// 0 -- Euler. // 0 -- Euler.
// 1 -- Lamilar. // 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES. // 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. // uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// Using this when solve Unstructered grid or hybrid. // Using this when solve Unstructered grid or hybrid.
// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle". // -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle",
// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+".
// uns_limiter_name: Limiter of Unstruct grid. // uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod". // -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st". // -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter. // -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term. // uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2". // -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used. // 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// It is used to scale the default Roe entropy fix coefficients. // It is used to scale the default Roe entropy fix coefficients.
// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 // AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0.
//int viscousType = 0; //int viscousType = 0;
//string viscousName = "Euler"; //string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0; double AusmpwPlusLimiter = 1.0;
//----------------------------------------------------------------------- #************************************************************************
# Temporal Discretisation # # Temporal Discretisation *
//----------------------------------------------------------------------- #************************************************************************
// iunsteady: Steady or unsteady. // iunsteady: Steady or unsteady.
// 0 -- steady. // 0 -- steady.
// 1 -- unsteay. // 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration. // 6 -- Jacobian iteration.
// 7 -- Line LU-SGS. // 7 -- Line LU-SGS.
// 8 -- Matrix LU-SGS. // 8 -- Matrix LU-SGS.
// 9 -- GMRES.
// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. // iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation.
// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. // Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method.
// CFLStart: Started cfl number. // CFLStart: Started cfl number.
// CFLEnd: End cfl number. // CFLEnd: End cfl number.
// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. // CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd.
// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration.
// OriginalTscheme : Used for LUSGS and GMres hybrid computing.
// useLUSGSprecond: Initialize flow field for GMRES.
// 0 --Initialize by first order Jacobian matrix.
// 1 --Initialize by LUSGS.
// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field.
// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) // ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. // swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. // nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function. // 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step. // RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step. // lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0; int iunsteady = 0;
double physicalTimeStep = 0.01; double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001; double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000; int startStatisticStep = 800000;
double statisticalTimePeriod = -1.0; double statisticalTimePeriod = -1.0;
int statisticMethod = 0; int statisticMethod = 0;
int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2.
int methodOfDualTime = 3; int methodOfDualTime = 3;
int min_sub_iter = 50; int min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01; double CFLStart = 0.01;
double CFLEnd = 10.0; double CFLEnd = 10.0;
int CFLVaryStep = 500; int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2; double pMaxForCFL = 0.2;
double pMinForCFL = 0.1; double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2; double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01; double visl_min = 0.01;
double turbCFLScale = 1.0; double turbCFLScale = 1.0;
double csrv = 2.0; double csrv = 1.0;
double timemax = 1.0e10; double timemax = 1.0e10;
double dtsave = -1.0; double dtsave = -1.0;
int maxale = 10; int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4; //int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
#************************************************************************
//----------------------------------------------------------------------- # File In or Out *
# File In or Out # #************************************************************************
//-----------------------------------------------------------------------
// numberOfGridGroups: The number of grid groups. // numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path, // gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory. // which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance. // nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance. // 0 -- Compute wall distance.
// 1 -- Not compute. // 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. // protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. // wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1; int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts"; string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = ""; string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat"; string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat"; string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat"; string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat"; string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat"; string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt"; string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat"; string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.dat"; string protectionFile1 = "results/flow1.dat";
string wall_heatfluxfile = "results/wall_heatflux.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat";
string protectionTurbFile0 = "results/turb0.dat";
string protectionTurbFile1 = "results/turb1.dat";
string protectionTransitionFile0 = "results/transition0.dat";
string protectionTransitionFile1 = "results/transition1.dat";
int nDumpSurfaceInfo = 0; int nDumpSurfaceInfo = 0;
string wall_varfile = ""; string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat"; string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat"; string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt"; string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile. // visualfileType: The file type of visualfile.
// 0 -- Tecplot binary. // 0 -- Tecplot binary.
// 1 -- Tecplot ASCII. // 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1; int visualfileType = 1;
// samplefileMode: The dump mode of sample file. // samplefileMode: The dump mode of sample file.
@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0];
// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36),
// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40),
// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), // -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81) // -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- specific heat ratio(gama, 56) // -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big. // Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition---------------- //-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall. // nVisualWallVariables: The number of visual variables on wall.
// visualWallVariables : dumped variable types, listed as following: // visualWallVariables : dumped variable types, listed as following:
// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), // -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4),
// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), // -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8),
// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), // -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11),
// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) // -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15),
// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) // -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19),
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) // -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8; int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
@ -739,7 +761,9 @@ int dumpStandardModel = 0;
// 1 -- Real cell where the probe is located. // 1 -- Real cell where the probe is located.
// nProbeVariables: Number of variables want to be dumped for probes monitered. // nProbeVariables: Number of variables want to be dumped for probes monitered.
// probeVariables : Variable types dumped, listed as following: // probeVariables : Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). // -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9),
// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12).
// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!!
// probeVariables order must from small to big. // probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0; int searchCellsMethod = 0;
int nProbeVariables = 7; int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0; int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter # #************************************************************************
//----------------------------------------------------------------------- # Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence. // turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source. // kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original. // 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type // transitionType: transition model type
// 0 -- none. // 0 -- none.
// 2 -- gama-re-theta. // 2 -- gama-re-theta.
// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition // turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition.
// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not // freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not.
int turbInterval = 1; int turbInterval = 1;
int turbOrderStruct = 2; int turbOrderStruct = 2;
int kindOfTurbSource = 0; int kindOfTurbSource = 0;
int mod_turb_res = 0; int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3; double freeStreamViscosity = 1.0e-3;
double muoo = 3.0; double muoo = 3.0;
double kwoo = 5.0; double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0; int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0; double freeDecayXLocation = 0.0;
int compressibleCorrection = 0; int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1; int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max. // maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10; double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0; int monitor_vistmax = 0;
//----------------------------------------------------------------------- #************************************************************************
# LES Parameter # # LES Parameter *
//----------------------------------------------------------------------- #************************************************************************
// iLES: Create LESSolver or not. // iLES: Create LESSolver or not.
// = 1 - Create LESSolver; // = 1 -- Create LESSolver;
// != 1 - not. // != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb. // amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random 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. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter; // = 0 -- in only first sub-iter;
// != 0 - in every sub-iter. // != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not. // ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not. // ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not; // = 0 -- not;
// != 0 - Add body force. // != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not. // bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb. // utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model. // sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom"; // = "dsmCom";
// = "wale"; // = "wale";
// = "sigma". // = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); // deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3); // = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti. // = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function; // wallDampingFunctionType: = 0 -- no wall function;
// = 1 - van Driest; // = 1 -- van Driest;
// = 2 - developed by Dr. Deng Xiaobing; // = 2 -- developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli. // = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type. // turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul; // = 0 -- mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul; // = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 - mu_total = max(mut ,0)+ mul. // = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model. // smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model. // waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not. // filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average 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. // isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0; int iLES = 0;
string sgsmodel = "smagorinsky"; string sgsmodel = "smagorinsky";
int deltaFunctionType = 2; int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1; int averageWidth = 1;
int monitorNegativeConstant = 0; int monitorNegativeConstant = 0;
//----------------------------------------------------------------------- #************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas # # Other Parameters for Hypersonic Non-equilibrium Gas *
//----------------------------------------------------------------------- #************************************************************************
// dg_high_order: // dg_high_order:
// 0 -- generic order accuracy. // 0 -- generic order accuracy.
// 1 -- high order accuracy. // 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes. // 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files. // 1 -- gas model is imported from library files.
// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver,
// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver.
// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps.
// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual.
// nm: Equation number of the physics, but is out of commision now. // nm: Equation number of the physics, but is out of commision now.
// 4 -- for 2D. // 4 -- for 2D.
// 5 -- for 3D. // 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas. // 0 -- perfect gas.
// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component.
// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. // nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. // nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. // nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSlipBCModel: The computational model of slip boundary conditions. // nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip. // 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions. // 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions. // 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model. // 1 -- One-temperature model.
// 2 -- Two-temperature model. // 2 -- Two-temperature model.
// 3 -- Three-temperature model. // 3 -- Three-temperature model.
// isUseNoneqCond:
// 0 -- compute the source terms without any conditions.
// 1 -- compute the source terms using the non-equilibrium condition.
// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value.
// nIdealState: whether take all gas species as ideal gas for gas-mixture process. // nIdealState: whether take all gas species as ideal gas for gas-mixture process.
// 0 -- No. // 0 -- No.
// 1 -- Yes. // 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method. // 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the polynomial fitting method. // 1 -- the energy term is computed using the polynomial fitting method.
// 2 -- the energy term is computed using the piecewise polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method.
@ -946,14 +965,13 @@ int monitorNegativeConstant = 0;
// 1.0 -- proposed by Maxwell. // 1.0 -- proposed by Maxwell.
// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. // sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall.
// 1.146 -- proposed for an additional "fictitious" velocity slip. // 1.146 -- proposed for an additional "fictitious" velocity slip.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. // chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. // spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. // staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions. // nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 0 -- not freeze, the chemical reaction sources will be calculated. // 0 -- not freeze, the chemical reaction sources will be calculated.
// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te // 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.
// veTemperatureMin: The minimum of Tv and Te.
// maxViscous: the maximum of Viscous. // maxViscous: the maximum of Viscous.
// trTemperatureMin: the minimum value of trTemperature. // trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature. // veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species // nSpeciesLimit: limitter of gas species
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction // nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0. // 0 -- method 0.
// 1 -- method 1. // 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid // nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef // nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource // nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource // nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori.) // 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New) // 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature. // nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs // 0 -- not used.
// 0 -- not used // 1 -- used.
// 1 -- used // nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// nDiagonalModified: Modified on Diagonal // 1 -- new.
// 0 -- not used // nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 1 -- Ori. // 0 -- not used.
// 2 -- new // 1 -- new.
// nGradPrimtiveMethod: // nGradPrimtiveMethod:
// 0 -- Ori. // 0 -- Ori.
// 1 -- new // 1 -- new.
// nAblation: // nAblation:
// 0 -- The wall ablation is not computed. // 0 -- The wall ablation is not computed.
// 1 -- The wall ablation is computed. // 1 -- The wall ablation is computed.
@ -1017,8 +1033,8 @@ int monitorNegativeConstant = 0;
// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. // "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. // "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting. // "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©. // for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©. // for unstruct solver mixing multi-species<65><73>O2 NO CO CO2 H2 N2 Air CH4<48><34>.
// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // For self-definition model, the gasfile is used to indicate the file path of the new gas model.
// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma.
// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation.
// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation.
// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation.
// useHyflowSetting : Setting for HyFLOW GUI.
// 0 -- PHengLEI
// 1 -- HyFLOW
// nProtectData: Use the continuation file data protection mechanism. // nProtectData: Use the continuation file data protection mechanism.
// 0 -- no // 0 -- no.
// 1 -- yes // 1 -- yes.
// nTvChange: Judge whether the Tv equals Ttr.
// 0 -- yes.
// 1 -- no.
// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions.
// nFraction: the initial fractions type of species.
// 0 -- mass fraction.
// 1 -- mole fraction.
int dg_high_order = 0; int dg_high_order = 0;
int iapplication = 0; int iapplication = 0;
int isAdaptiveSolver = 0; int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1; double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0; double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0; double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0; int nDebug = 0;
int nSpeciesLimit = 1; int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5; int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1; int veTemperatureMinModified = 1;
int nDiagonalModified = 0; int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1; int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1; int nInviscidFluxModify = 1;
int nQlLimitMethod = 2; int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1; int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0; int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0; int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0; int nAblation = 0;
int isInjection = 0; int isInjection = 0;
int nViscosityModel = 0; int nViscosityModel = 0;
int nMarsModel = 0; int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5"; string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; //string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2"; string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2"; //string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0"; //string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0; int nContinueModel = 0;
int nChemicalFlowStep = 0; int nChemicalFlowStep = 0;
int ifStartFromPerfectGasResults = 0; int ifStartFromPerfectGasResults = 0;
int isUseNoneqCond = 0;
double frozenCondition = 0.01;
int nLeakageMonitor = 0;
double totalLeakageVolume = 1000.0;
double monitorThresholdValue = 0.05;
double sprayFactor = 0.0;
######################################################################### #########################################################################
// Multi-Grid parameters. // Multi-Grid parameters.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order. // 1 -- zero order.
// 2 -- first-order. (default) // 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit. // mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1; int nMGLevel = 1;
int MGCoarsestIteration = 1; int MGCoarsestIteration = 1;
int MGPreIteration = 1; int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat"; string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
######################################################################### #************************************************************************
# High Order Struct Solver # # High Order Struct Solver *
######################################################################### #************************************************************************
// isFVMOrFDM: // isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method. // 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method. // 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not. // codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-overlapping grid. // 0 -- NON-overlapping grid.
// 1 -- Overlapping grid. // 1 -- Overlapping grid.
// oversetInterpolationMethod: the method of overset interpolation while field simulation // oversetInterpolationMethod: the method of overset interpolation while field simulation.
// 0 -- set the acceptor cell value by donor cell value. // 0 -- set the acceptor cell value by donor cell value.
// 1 -- set the acceptor cell value by distance weight of donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value.
// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated.
// 0 -- no.
// 1 -- yes.
// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in
// the current overset grid(only for three dimension).
// 0 -- no.
// 1 -- yes.
// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid.
// 0 -- no.
// 1 -- yes.
// walldistMainZone: The initial value of background grid which does not exist wall boundary condition.
// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell.
// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region.
// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary.
// 0 -- one layer.
// 1 -- two layers.
// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region.
// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure.
// 0 -- no.
// 1 -- yes.
int codeOfOversetGrid = 0; int codeOfOversetGrid = 0;
int oversetInterpolationMethod = 0; int oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0; int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0; int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0; int outTecplotOverset = 0;
int outPutOversetVisualization = 0; int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2; int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------ // ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0; double referenceVelocity = 1.0;
double referenceDensity = 1.0; double referenceDensity = 1.0;
int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
int strategyForGCLSource = 0; //0-present; 1-Ahn; int strategyForGCLSource = 0; // 0-present; 1-Ahn.
//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton // 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton.
int methodForKineticEquation = 0; int methodForKineticEquation = 0;
double relaxParameterOfKinetic = 1.0; double relaxParameterOfKinetic = 1.0;
######################################################################### #************************************************************************
# motive information # # motive information *
######################################################################### #************************************************************************
int numberOfMovingBodies = 1; int numberOfMovingBodies = 1;
############################## body0 ############################## ############################## body0 ##############################
//mass of parts // mass of parts.
double mass_0 = 1.0; double mass_0 = 1.0;
//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz // gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_0 = 0.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz.
double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
//initial six DOF position information of parts. xc yc zc // initial six DOF position information of parts. xc yc zc.
double massCenter_0[] = 0.0, 0.0, 0.0; double massCenter_0[] = 0.0, 0.0, 0.0;
//initial six DOF position information of parts. angleX angleY angleZ // if reset mass center while restart.
int resetMassCenter_0 = 0;
// position offset of parts. dx dy dz.
double massCenterDxyz_0[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_0[] = 0.0, 0.0, 0.0; double attitudeAngle_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. vc vy vz // initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_0[] = 0.0, 0.0, 0.0; double massCenterVelocity_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. omigX omigY omigZ // initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_0[] = 0.0, 0.0, 0.0; double angularVelocity_0[] = 0.0, 0.0, 0.0;
// the object that the parts belong to. // the object that the parts belong to.
int fartherIndex_0 = -1; int fartherIndex_0 = -1;
//the assembly position of the parts. xc yc zc angleX angleY angleZ // the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
// the move pattern of the parts. // the move pattern of the parts.
// -1 given motion partten. // -1 given motion partten.
@ -1349,23 +1403,24 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0
int RBDMethod_0 = 0; int RBDMethod_0 = 0;
double amplitude_0 = 0.0; double amplitude_0 = 0.0;
double reduceFrequency_0 = 0.0; double reduceFrequency_0 = 0.0;
//direction of rotation // direction of rotation.
// 1 -- clockwise from the point of view along the positive x axis. // 1 -- clockwise from the point of view along the positive x axis.
// -1 -- anticlockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1; int direction_0 = -1;
double rotateFrequency_0 = 0.0; double rotateFrequency_0 = 0.0;
//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; //string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter";
//additional force (system axis) fX fY fZ // dimensional physical time for additional force(s).
double addedForceTime_0[] = 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_0[] = 0.0, 0.0, 0.0; double addedForce_0[] = 0.0, 0.0, 0.0;
//additional moment of Force (system axis) mX mY mZ // additional moment(inertia system) mX mY mZ.
double addedMoment_0[] = 0.0, 0.0, 0.0; double addedMoment_0[] = 0.0, 0.0, 0.0;
// the deformation method of the parts. // the deformation method of the parts.
int morphing_0 = 0; int morphing_0 = 0;
// post indentify // post indentify.
int integralOrder = 4; int integralOrder = 4;
// ---------------- ATP read -------------------------------------------- // ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0; //@int inflowParaType = 0;
//@double refReNumber = 6.5e6; //@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0; //@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0; //@double refDimensionalDensity = 0;
//@string weatherDataFilePath = "./WRFData/";
######################################################################### //@double longitude = 110.95
# Old Parameter # //@double latitude = 19.61;
######################################################################### #************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0; int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
######################################################################### //double partialCFL[] = [0.0];
# Incompressible Parameter # //double partialSpeedCoef[] = [0.0];
######################################################################### //double partialSpeed[] = [0.0];
//double partialAttackd[] = [0.0];
//double partialSlide[] = [0.0];
//double partialPressure[] = [0.0];
//double partialTemperature[] = [0.0];
//double partialMassFractions[] = [0.0];
#************************************************************************
# Incompressible Parameter *
#************************************************************************
int isSolveEnergyEquation = 0; int isSolveEnergyEquation = 0;
int isSolveTurbEquation = 0; int isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0; int isSolveSpeciesEquation = 0;

View File

@ -4,9 +4,12 @@
// gridtype: Grid type for generation, conversion, reconstruction, merging. // gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid. // 0 -- Unstructured grid.
// 1 -- Structured grid. // 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process. // from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE. // -1 -- MULTI_TYPE.
// 1 -- PHengLEI, *.fts. // 1 -- PHengLEI, *.fts.
@ -18,7 +21,9 @@
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. // 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
// 8 -- GMSH, *.msh. // 8 -- GMSH, *.msh.
int gridtype = 0; int gridtype = 0;
int axisup = 2; int nAxisRotateTimes = 1;
int axisRotateOrder[] = [1];
double axisRotateAngles[]= [90.0];
int from_gtype = 2; int from_gtype = 2;
######################################################################### #########################################################################

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows + // Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center + // China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 + // (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
########################################################################### ###########################################################################
# Default parameters for Grid conversion # # Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0; int multiblock = 0;
int iadapt = 0; int iadapt = 0;
int SymmetryFaceVector = 1; int SymmetryFaceVector = 1;
int gridReorder = 0; int gridReorder = 0;
int faceReorderMethod = 0; int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
int axisup = 1; // 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition".
// 0 -- Interface. (default) // 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver. // 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Grid data type # # Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1; int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas"; string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = ""; string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------ // ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction. which only support one direction.
// rotationAngle: The relative angle between two periodic face. // rotationAngle: The relative angle between two periodic face.
which is recorded in degrees. which is recorded in degrees.
int periodicType = 0; int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0]; double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0; double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid. // 2 -- refine structured grid.
// maxproc: The number of partition zones that want to be divided into. // maxproc: The number of partition zones that want to be divided into.
// numberOfMultifile: The number of partition grid files that want to be dumped out. // numberOfMultifile: The number of partition grid files that want to be dumped out.
int pgridtype = 0; int pgridtype = 0;
int maxproc = 4; int maxproc = 4;
int numberOfMultifile = 1; int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1]; int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy: // parallelStrategy:
//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. // 0 -- each zone is assigned to the one that defined in grid partition procedure.
//! -# 1 : random assigned for each zone or by some else ways. // 1 -- random assigned for each zone or by some else ways.
int parallelStrategy = 1; int parallelStrategy = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance. // 1 -- perfect balance.
// maxproc -- perfect imbalance. // maxproc -- perfect imbalance.
// 1.05 -- recommended. // 1.05 -- recommended.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int npartmethod = 1; int npartmethod = 1;
int parallelPartitionMethod = 2; int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. // intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual file 'res.dat' saved. // intervalStepRes: The step intervals for residual file 'res.dat' saved.
// 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 maxSimuStep = 20000; int maxSimuStep = 20000;
int intervalStepFlow = 1000; int intervalStepFlow = 1000;
int intervalStepPlot = 1000; int intervalStepPlot = 1000;
int intervalStepSample = 1000; int intervalStepSample = 1000;
int intervalStepForce = 100; int intervalStepForce = 100;
int intervalStepRes = 10; int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible: // compressible:
// 0 -- incompressible flow. // 0 -- incompressible flow.
// 1 -- compressible flow. (default) // 1 -- compressible flow. (default)
int compressible = 1; int compressible = 1;
// 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)
// Kprec: The coefficient K for the cut-off velocity.
// 1.0~3.0 is suggested. (default, 3.0)
// preconFarfieldBCMethod: The precondition method for farfield boundary condition.
// 0 -- precondition far-field boundary based on riemann invariants.
// 1 -- Turkel's simplified far-field boundary condition.
int ifLowSpeedPrecon = 0;
double Kprec = 3.0;
int preconFarfieldBCMethod = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# CFD Control Parameter # # CFD Control Parameter #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions. // 0 -- the nondimensional conditions.
// 1 -- the flight conditions. // 1 -- the flight conditions.
// 2 -- the experiment conditions. // 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions. // 3 -- the subsonic boundary conditions. (Useless!)
// 4 -- the condition that the velocity, temperature and density are given. // 4 -- the condition that the velocity, temperature and density are given.
// 5 -- the condition that the velocity, temperature and pressure are given. // 5 -- the condition that the velocity, temperature and pressure are given.
//flowInitMethod: Flow field initialization method.
// 0 -- The entire flow field is initialized according to Infinite velocity.
// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m. // 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. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// freestream_vibration_temperature: Dimensional freestream vibration temperature. // freestream_vibration_temperature: Dimensional freestream vibration temperature.
@ -303,11 +314,11 @@ int compressible = 1;
// condition is radiation equilibrium temperature, and 0.8 is the default value. // condition is radiation equilibrium temperature, and 0.8 is the default value.
// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol.
// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on.
int directionMethod = 0; int directionMethod = 0;
double refMachNumber = 0.73; double refMachNumber = 0.73;
double attackd = 2.79; double attackd = 2.79;
double angleSlide = 0.00; double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0; int inflowParaType = 0;
double refReNumber = 6.5e6; double refReNumber = 6.5e6;
@ -321,14 +332,6 @@ double freestream_vibration_temperature = 300.00;
//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). //double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2).
//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). //double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)).
//int inflowParaType = 3;
//int nsubsonicInlet = 1;
//int nsubsonicOutlet = 1;
//string inLetFileName = "./bin/subsonicInlet.hypara";
//string outLetFileName = "./bin/subsonicOutlet.hypara";
//double refDimensionalTemperature = 288.144;
//double refDimensionalPressure = 1.01313E05;
// The velocity, temperature and density are fixed. // The velocity, temperature and density are fixed.
//int inflowParaType = 4; //int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0; //double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed. // The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6; //int inflowParaType = 6;
//double refDimensionalTemperature = 293; //double refDimensionalTemperature = 293.0;
//double refDimensionalPressure = 8886.06; //double refDimensionalPressure = 8886.06;
// The velocity, temperature and pressure are read from file.
//int inflowParaType = 7;
//string weatherDataFilePath = "./WRFData/";
//double longitude = 110.95
//double latitude = 19.61;
double wallTemperature = -1.0; double wallTemperature = -1.0;
double radiationCoef = 0.8; double radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter. double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol. double refMolecularWeight = 28.9644; // unit of g/mol.
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Spatial Discretisation # # Spatial Discretisation #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
#******************************************************************* #************************************************************************
# Struct Solver * # Struct Solver *
#******************************************************************* #************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid. // inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid. // Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f". // -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe". // -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid. // isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default) // 0 -- NO. (default)
// 1 -- Yes. // 1 -- Yes.
// str_limiter_name: Limiter of struct grid. // str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". // -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter. // -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version. // -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" // -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe"; string inviscidSchemeName = "roe";
int isWennScheme = 0; int isWennScheme = 0;
string str_limiter_name = "vanalbada"; string str_limiter_name = "vanalbada";
#******************************************************************* #************************************************************************
# UnStruct Solver or Common * # UnStruct Solver or Common *
#******************************************************************* #************************************************************************
// viscousType: Viscous model. // viscousType: Viscous model.
// 0 -- Euler. // 0 -- Euler.
// 1 -- Lamilar. // 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES. // 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. // uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// Using this when solve Unstructered grid or hybrid. // Using this when solve Unstructered grid or hybrid.
// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle". // -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle",
// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+".
// uns_limiter_name: Limiter of Unstruct grid. // uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod". // -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st". // -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter. // -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term. // uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2". // -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used. // 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// It is used to scale the default Roe entropy fix coefficients. // It is used to scale the default Roe entropy fix coefficients.
// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 // AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0.
//int viscousType = 0; //int viscousType = 0;
//string viscousName = "Euler"; //string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0; double AusmpwPlusLimiter = 1.0;
//----------------------------------------------------------------------- #************************************************************************
# Temporal Discretisation # # Temporal Discretisation *
//----------------------------------------------------------------------- #************************************************************************
// iunsteady: Steady or unsteady. // iunsteady: Steady or unsteady.
// 0 -- steady. // 0 -- steady.
// 1 -- unsteay. // 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration. // 6 -- Jacobian iteration.
// 7 -- Line LU-SGS. // 7 -- Line LU-SGS.
// 8 -- Matrix LU-SGS. // 8 -- Matrix LU-SGS.
// 9 -- GMRES.
// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. // iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation.
// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. // Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method.
// CFLStart: Started cfl number. // CFLStart: Started cfl number.
// CFLEnd: End cfl number. // CFLEnd: End cfl number.
// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. // CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd.
// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration.
// OriginalTscheme : Used for LUSGS and GMres hybrid computing.
// useLUSGSprecond: Initialize flow field for GMRES.
// 0 --Initialize by first order Jacobian matrix.
// 1 --Initialize by LUSGS.
// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field.
// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) // ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. // swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. // nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function. // 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step. // RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step. // lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0; int iunsteady = 0;
double physicalTimeStep = 0.01; double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001; double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000; int startStatisticStep = 800000;
double statisticalTimePeriod = -1.0; double statisticalTimePeriod = -1.0;
int statisticMethod = 0; int statisticMethod = 0;
int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2.
int methodOfDualTime = 3; int methodOfDualTime = 3;
int min_sub_iter = 50; int min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01; double CFLStart = 0.01;
double CFLEnd = 10.0; double CFLEnd = 10.0;
int CFLVaryStep = 500; int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2; double pMaxForCFL = 0.2;
double pMinForCFL = 0.1; double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2; double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01; double visl_min = 0.01;
double turbCFLScale = 1.0; double turbCFLScale = 1.0;
double csrv = 2.0; double csrv = 1.0;
double timemax = 1.0e10; double timemax = 1.0e10;
double dtsave = -1.0; double dtsave = -1.0;
int maxale = 10; int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4; //int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
#************************************************************************
//----------------------------------------------------------------------- # File In or Out *
# File In or Out # #************************************************************************
//-----------------------------------------------------------------------
// numberOfGridGroups: The number of grid groups. // numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path, // gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory. // which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance. // nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance. // 0 -- Compute wall distance.
// 1 -- Not compute. // 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. // protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. // wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1; int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts"; string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = ""; string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat"; string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat"; string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat"; string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat"; string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat"; string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt"; string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat"; string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.dat"; string protectionFile1 = "results/flow1.dat";
string wall_heatfluxfile = "results/wall_heatflux.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat";
string protectionTurbFile0 = "results/turb0.dat";
string protectionTurbFile1 = "results/turb1.dat";
string protectionTransitionFile0 = "results/transition0.dat";
string protectionTransitionFile1 = "results/transition1.dat";
int nDumpSurfaceInfo = 0; int nDumpSurfaceInfo = 0;
string wall_varfile = ""; string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat"; string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat"; string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt"; string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile. // visualfileType: The file type of visualfile.
// 0 -- Tecplot binary. // 0 -- Tecplot binary.
// 1 -- Tecplot ASCII. // 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1; int visualfileType = 1;
// samplefileMode: The dump mode of sample file. // samplefileMode: The dump mode of sample file.
@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0];
// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36),
// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40),
// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), // -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81) // -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- specific heat ratio(gama, 56) // -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big. // Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition---------------- //-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall. // nVisualWallVariables: The number of visual variables on wall.
// visualWallVariables : dumped variable types, listed as following: // visualWallVariables : dumped variable types, listed as following:
// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), // -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4),
// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), // -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8),
// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), // -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11),
// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) // -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15),
// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) // -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19),
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) // -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8; int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
@ -739,7 +761,9 @@ int dumpStandardModel = 0;
// 1 -- Real cell where the probe is located. // 1 -- Real cell where the probe is located.
// nProbeVariables: Number of variables want to be dumped for probes monitered. // nProbeVariables: Number of variables want to be dumped for probes monitered.
// probeVariables : Variable types dumped, listed as following: // probeVariables : Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). // -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9),
// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12).
// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!!
// probeVariables order must from small to big. // probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0; int searchCellsMethod = 0;
int nProbeVariables = 7; int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0; int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter # #************************************************************************
//----------------------------------------------------------------------- # Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence. // turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source. // kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original. // 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type // transitionType: transition model type
// 0 -- none. // 0 -- none.
// 2 -- gama-re-theta. // 2 -- gama-re-theta.
// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition // turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition.
// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not // freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not.
int turbInterval = 1; int turbInterval = 1;
int turbOrderStruct = 2; int turbOrderStruct = 2;
int kindOfTurbSource = 0; int kindOfTurbSource = 0;
int mod_turb_res = 0; int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3; double freeStreamViscosity = 1.0e-3;
double muoo = 3.0; double muoo = 3.0;
double kwoo = 5.0; double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0; int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0; double freeDecayXLocation = 0.0;
int compressibleCorrection = 0; int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1; int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max. // maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10; double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0; int monitor_vistmax = 0;
//----------------------------------------------------------------------- #************************************************************************
# LES Parameter # # LES Parameter *
//----------------------------------------------------------------------- #************************************************************************
// iLES: Create LESSolver or not. // iLES: Create LESSolver or not.
// = 1 - Create LESSolver; // = 1 -- Create LESSolver;
// != 1 - not. // != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb. // amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random 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. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter; // = 0 -- in only first sub-iter;
// != 0 - in every sub-iter. // != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not. // ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not. // ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not; // = 0 -- not;
// != 0 - Add body force. // != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not. // bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb. // utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model. // sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom"; // = "dsmCom";
// = "wale"; // = "wale";
// = "sigma". // = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); // deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3); // = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti. // = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function; // wallDampingFunctionType: = 0 -- no wall function;
// = 1 - van Driest; // = 1 -- van Driest;
// = 2 - developed by Dr. Deng Xiaobing; // = 2 -- developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli. // = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type. // turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul; // = 0 -- mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul; // = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 - mu_total = max(mut ,0)+ mul. // = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model. // smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model. // waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not. // filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average 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. // isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0; int iLES = 0;
string sgsmodel = "smagorinsky"; string sgsmodel = "smagorinsky";
int deltaFunctionType = 2; int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1; int averageWidth = 1;
int monitorNegativeConstant = 0; int monitorNegativeConstant = 0;
//----------------------------------------------------------------------- #************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas # # Other Parameters for Hypersonic Non-equilibrium Gas *
//----------------------------------------------------------------------- #************************************************************************
// dg_high_order: // dg_high_order:
// 0 -- generic order accuracy. // 0 -- generic order accuracy.
// 1 -- high order accuracy. // 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes. // 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files. // 1 -- gas model is imported from library files.
// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver,
// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver.
// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps.
// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual.
// nm: Equation number of the physics, but is out of commision now. // nm: Equation number of the physics, but is out of commision now.
// 4 -- for 2D. // 4 -- for 2D.
// 5 -- for 3D. // 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas. // 0 -- perfect gas.
// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component.
// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. // nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. // nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. // nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSlipBCModel: The computational model of slip boundary conditions. // nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip. // 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions. // 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions. // 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model. // 1 -- One-temperature model.
// 2 -- Two-temperature model. // 2 -- Two-temperature model.
// 3 -- Three-temperature model. // 3 -- Three-temperature model.
// isUseNoneqCond:
// 0 -- compute the source terms without any conditions.
// 1 -- compute the source terms using the non-equilibrium condition.
// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value.
// nIdealState: whether take all gas species as ideal gas for gas-mixture process. // nIdealState: whether take all gas species as ideal gas for gas-mixture process.
// 0 -- No. // 0 -- No.
// 1 -- Yes. // 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method. // 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the polynomial fitting method. // 1 -- the energy term is computed using the polynomial fitting method.
// 2 -- the energy term is computed using the piecewise polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method.
@ -946,14 +965,13 @@ int monitorNegativeConstant = 0;
// 1.0 -- proposed by Maxwell. // 1.0 -- proposed by Maxwell.
// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. // sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall.
// 1.146 -- proposed for an additional "fictitious" velocity slip. // 1.146 -- proposed for an additional "fictitious" velocity slip.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. // chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. // spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. // staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions. // nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 0 -- not freeze, the chemical reaction sources will be calculated. // 0 -- not freeze, the chemical reaction sources will be calculated.
// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te // 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.
// veTemperatureMin: The minimum of Tv and Te.
// maxViscous: the maximum of Viscous. // maxViscous: the maximum of Viscous.
// trTemperatureMin: the minimum value of trTemperature. // trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature. // veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species // nSpeciesLimit: limitter of gas species
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction // nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0. // 0 -- method 0.
// 1 -- method 1. // 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid // nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef // nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource // nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource // nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori.) // 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New) // 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature. // nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs // 0 -- not used.
// 0 -- not used // 1 -- used.
// 1 -- used // nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// nDiagonalModified: Modified on Diagonal // 1 -- new.
// 0 -- not used // nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 1 -- Ori. // 0 -- not used.
// 2 -- new // 1 -- new.
// nGradPrimtiveMethod: // nGradPrimtiveMethod:
// 0 -- Ori. // 0 -- Ori.
// 1 -- new // 1 -- new.
// nAblation: // nAblation:
// 0 -- The wall ablation is not computed. // 0 -- The wall ablation is not computed.
// 1 -- The wall ablation is computed. // 1 -- The wall ablation is computed.
@ -1017,8 +1033,8 @@ int monitorNegativeConstant = 0;
// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. // "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. // "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting. // "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©. // for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©. // for unstruct solver mixing multi-species<65><73>O2 NO CO CO2 H2 N2 Air CH4<48><34>.
// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // For self-definition model, the gasfile is used to indicate the file path of the new gas model.
// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma.
// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation.
// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation.
// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation.
// useHyflowSetting : Setting for HyFLOW GUI.
// 0 -- PHengLEI
// 1 -- HyFLOW
// nProtectData: Use the continuation file data protection mechanism. // nProtectData: Use the continuation file data protection mechanism.
// 0 -- no // 0 -- no.
// 1 -- yes // 1 -- yes.
// nTvChange: Judge whether the Tv equals Ttr.
// 0 -- yes.
// 1 -- no.
// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions.
// nFraction: the initial fractions type of species.
// 0 -- mass fraction.
// 1 -- mole fraction.
int dg_high_order = 0; int dg_high_order = 0;
int iapplication = 0; int iapplication = 0;
int isAdaptiveSolver = 0; int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1; double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0; double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0; double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0; int nDebug = 0;
int nSpeciesLimit = 1; int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5; int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1; int veTemperatureMinModified = 1;
int nDiagonalModified = 0; int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1; int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1; int nInviscidFluxModify = 1;
int nQlLimitMethod = 2; int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1; int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0; int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0; int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0; int nAblation = 0;
int isInjection = 0; int isInjection = 0;
int nViscosityModel = 0; int nViscosityModel = 0;
int nMarsModel = 0; int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5"; string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; //string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2"; string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2"; //string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0"; //string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0; int nContinueModel = 0;
int nChemicalFlowStep = 0; int nChemicalFlowStep = 0;
int ifStartFromPerfectGasResults = 0; int ifStartFromPerfectGasResults = 0;
int isUseNoneqCond = 0;
double frozenCondition = 0.01;
int nLeakageMonitor = 0;
double totalLeakageVolume = 1000.0;
double monitorThresholdValue = 0.05;
double sprayFactor = 0.0;
######################################################################### #########################################################################
// Multi-Grid parameters. // Multi-Grid parameters.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order. // 1 -- zero order.
// 2 -- first-order. (default) // 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit. // mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1; int nMGLevel = 1;
int MGCoarsestIteration = 1; int MGCoarsestIteration = 1;
int MGPreIteration = 1; int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat"; string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
######################################################################### #************************************************************************
# High Order Struct Solver # # High Order Struct Solver *
######################################################################### #************************************************************************
// isFVMOrFDM: // isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method. // 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method. // 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not. // codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-overlapping grid. // 0 -- NON-overlapping grid.
// 1 -- Overlapping grid. // 1 -- Overlapping grid.
// oversetInterpolationMethod: the method of overset interpolation while field simulation // oversetInterpolationMethod: the method of overset interpolation while field simulation.
// 0 -- set the acceptor cell value by donor cell value. // 0 -- set the acceptor cell value by donor cell value.
// 1 -- set the acceptor cell value by distance weight of donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value.
// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated.
// 0 -- no.
// 1 -- yes.
// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in
// the current overset grid(only for three dimension).
// 0 -- no.
// 1 -- yes.
// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid.
// 0 -- no.
// 1 -- yes.
// walldistMainZone: The initial value of background grid which does not exist wall boundary condition.
// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell.
// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region.
// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary.
// 0 -- one layer.
// 1 -- two layers.
// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region.
// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure.
// 0 -- no.
// 1 -- yes.
int codeOfOversetGrid = 0; int codeOfOversetGrid = 0;
int oversetInterpolationMethod = 0; int oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0; int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0; int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0; int outTecplotOverset = 0;
int outPutOversetVisualization = 0; int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2; int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------ // ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0; double referenceVelocity = 1.0;
double referenceDensity = 1.0; double referenceDensity = 1.0;
int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
int strategyForGCLSource = 0; //0-present; 1-Ahn; int strategyForGCLSource = 0; // 0-present; 1-Ahn.
//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton // 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton.
int methodForKineticEquation = 0; int methodForKineticEquation = 0;
double relaxParameterOfKinetic = 1.0; double relaxParameterOfKinetic = 1.0;
######################################################################### #************************************************************************
# motive information # # motive information *
######################################################################### #************************************************************************
int numberOfMovingBodies = 1; int numberOfMovingBodies = 1;
############################## body0 ############################## ############################## body0 ##############################
//mass of parts // mass of parts.
double mass_0 = 1.0; double mass_0 = 1.0;
//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz // gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_0 = 0.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz.
double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
//initial six DOF position information of parts. xc yc zc // initial six DOF position information of parts. xc yc zc.
double massCenter_0[] = 0.0, 0.0, 0.0; double massCenter_0[] = 0.0, 0.0, 0.0;
//initial six DOF position information of parts. angleX angleY angleZ // if reset mass center while restart.
int resetMassCenter_0 = 0;
// position offset of parts. dx dy dz.
double massCenterDxyz_0[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_0[] = 0.0, 0.0, 0.0; double attitudeAngle_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. vc vy vz // initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_0[] = 0.0, 0.0, 0.0; double massCenterVelocity_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. omigX omigY omigZ // initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_0[] = 0.0, 0.0, 0.0; double angularVelocity_0[] = 0.0, 0.0, 0.0;
// the object that the parts belong to. // the object that the parts belong to.
int fartherIndex_0 = -1; int fartherIndex_0 = -1;
//the assembly position of the parts. xc yc zc angleX angleY angleZ // the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
// the move pattern of the parts. // the move pattern of the parts.
// -1 given motion partten. // -1 given motion partten.
@ -1349,23 +1403,24 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0
int RBDMethod_0 = 0; int RBDMethod_0 = 0;
double amplitude_0 = 0.0; double amplitude_0 = 0.0;
double reduceFrequency_0 = 0.0; double reduceFrequency_0 = 0.0;
//direction of rotation // direction of rotation.
// 1 -- clockwise from the point of view along the positive x axis. // 1 -- clockwise from the point of view along the positive x axis.
// -1 -- anticlockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1; int direction_0 = -1;
double rotateFrequency_0 = 0.0; double rotateFrequency_0 = 0.0;
//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; //string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter";
//additional force (system axis) fX fY fZ // dimensional physical time for additional force(s).
double addedForceTime_0[] = 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_0[] = 0.0, 0.0, 0.0; double addedForce_0[] = 0.0, 0.0, 0.0;
//additional moment of Force (system axis) mX mY mZ // additional moment(inertia system) mX mY mZ.
double addedMoment_0[] = 0.0, 0.0, 0.0; double addedMoment_0[] = 0.0, 0.0, 0.0;
// the deformation method of the parts. // the deformation method of the parts.
int morphing_0 = 0; int morphing_0 = 0;
// post indentify // post indentify.
int integralOrder = 4; int integralOrder = 4;
// ---------------- ATP read -------------------------------------------- // ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0; //@int inflowParaType = 0;
//@double refReNumber = 6.5e6; //@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0; //@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0; //@double refDimensionalDensity = 0;
//@string weatherDataFilePath = "./WRFData/";
######################################################################### //@double longitude = 110.95
# Old Parameter # //@double latitude = 19.61;
######################################################################### #************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0; int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
######################################################################### //double partialCFL[] = [0.0];
# Incompressible Parameter # //double partialSpeedCoef[] = [0.0];
######################################################################### //double partialSpeed[] = [0.0];
//double partialAttackd[] = [0.0];
//double partialSlide[] = [0.0];
//double partialPressure[] = [0.0];
//double partialTemperature[] = [0.0];
//double partialMassFractions[] = [0.0];
#************************************************************************
# Incompressible Parameter *
#************************************************************************
int isSolveEnergyEquation = 0; int isSolveEnergyEquation = 0;
int isSolveTurbEquation = 0; int isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0; int isSolveSpeciesEquation = 0;

View File

@ -4,9 +4,12 @@
// gridtype: Grid type for generation, conversion, reconstruction, merging. // gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid. // 0 -- Unstructured grid.
// 1 -- Structured grid. // 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process. // from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE. // -1 -- MULTI_TYPE.
// 1 -- PHengLEI, *.fts. // 1 -- PHengLEI, *.fts.
@ -18,7 +21,9 @@
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. // 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
// 8 -- GMSH, *.msh. // 8 -- GMSH, *.msh.
int gridtype = 0; int gridtype = 0;
int axisup = 1; int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
int from_gtype = 2; int from_gtype = 2;
######################################################################### #########################################################################

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows + // Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center + // China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 + // (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
########################################################################### ###########################################################################
# Default parameters for Grid conversion # # Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0; int multiblock = 0;
int iadapt = 0; int iadapt = 0;
int SymmetryFaceVector = 1; int SymmetryFaceVector = 1;
int gridReorder = 0; int gridReorder = 0;
int faceReorderMethod = 0; int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
int axisup = 1; // 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition".
// 0 -- Interface. (default) // 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver. // 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Grid data type # # Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1; int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas"; string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = ""; string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------ // ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction. which only support one direction.
// rotationAngle: The relative angle between two periodic face. // rotationAngle: The relative angle between two periodic face.
which is recorded in degrees. which is recorded in degrees.
int periodicType = 0; int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0]; double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0; double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid. // 2 -- refine structured grid.
// maxproc: The number of partition zones that want to be divided into. // maxproc: The number of partition zones that want to be divided into.
// numberOfMultifile: The number of partition grid files that want to be dumped out. // numberOfMultifile: The number of partition grid files that want to be dumped out.
int pgridtype = 0; int pgridtype = 0;
int maxproc = 4; int maxproc = 4;
int numberOfMultifile = 1; int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1]; int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy: // parallelStrategy:
//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. // 0 -- each zone is assigned to the one that defined in grid partition procedure.
//! -# 1 : random assigned for each zone or by some else ways. // 1 -- random assigned for each zone or by some else ways.
int parallelStrategy = 1; int parallelStrategy = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance. // 1 -- perfect balance.
// maxproc -- perfect imbalance. // maxproc -- perfect imbalance.
// 1.05 -- recommended. // 1.05 -- recommended.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int npartmethod = 1; int npartmethod = 1;
int parallelPartitionMethod = 2; int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. // intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual file 'res.dat' saved. // intervalStepRes: The step intervals for residual file 'res.dat' saved.
// 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 maxSimuStep = 20000; int maxSimuStep = 20000;
int intervalStepFlow = 1000; int intervalStepFlow = 1000;
int intervalStepPlot = 1000; int intervalStepPlot = 1000;
int intervalStepSample = 1000; int intervalStepSample = 1000;
int intervalStepForce = 100; int intervalStepForce = 100;
int intervalStepRes = 10; int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible: // compressible:
// 0 -- incompressible flow. // 0 -- incompressible flow.
// 1 -- compressible flow. (default) // 1 -- compressible flow. (default)
int compressible = 1; int compressible = 1;
// 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)
// Kprec: The coefficient K for the cut-off velocity.
// 1.0~3.0 is suggested. (default, 3.0)
// preconFarfieldBCMethod: The precondition method for farfield boundary condition.
// 0 -- precondition far-field boundary based on riemann invariants.
// 1 -- Turkel's simplified far-field boundary condition.
int ifLowSpeedPrecon = 0;
double Kprec = 3.0;
int preconFarfieldBCMethod = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# CFD Control Parameter # # CFD Control Parameter #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions. // 0 -- the nondimensional conditions.
// 1 -- the flight conditions. // 1 -- the flight conditions.
// 2 -- the experiment conditions. // 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions. // 3 -- the subsonic boundary conditions. (Useless!)
// 4 -- the condition that the velocity, temperature and density are given. // 4 -- the condition that the velocity, temperature and density are given.
// 5 -- the condition that the velocity, temperature and pressure are given. // 5 -- the condition that the velocity, temperature and pressure are given.
//flowInitMethod: Flow field initialization method.
// 0 -- The entire flow field is initialized according to Infinite velocity.
// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m. // 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. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// freestream_vibration_temperature: Dimensional freestream vibration temperature. // freestream_vibration_temperature: Dimensional freestream vibration temperature.
@ -303,11 +314,11 @@ int compressible = 1;
// condition is radiation equilibrium temperature, and 0.8 is the default value. // condition is radiation equilibrium temperature, and 0.8 is the default value.
// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol.
// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on.
int directionMethod = 0; int directionMethod = 0;
double refMachNumber = 0.73; double refMachNumber = 0.73;
double attackd = 2.79; double attackd = 2.79;
double angleSlide = 0.00; double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0; int inflowParaType = 0;
double refReNumber = 6.5e6; double refReNumber = 6.5e6;
@ -321,14 +332,6 @@ double freestream_vibration_temperature = 300.00;
//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). //double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2).
//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). //double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)).
//int inflowParaType = 3;
//int nsubsonicInlet = 1;
//int nsubsonicOutlet = 1;
//string inLetFileName = "./bin/subsonicInlet.hypara";
//string outLetFileName = "./bin/subsonicOutlet.hypara";
//double refDimensionalTemperature = 288.144;
//double refDimensionalPressure = 1.01313E05;
// The velocity, temperature and density are fixed. // The velocity, temperature and density are fixed.
//int inflowParaType = 4; //int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0; //double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed. // The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6; //int inflowParaType = 6;
//double refDimensionalTemperature = 293; //double refDimensionalTemperature = 293.0;
//double refDimensionalPressure = 8886.06; //double refDimensionalPressure = 8886.06;
// The velocity, temperature and pressure are read from file.
//int inflowParaType = 7;
//string weatherDataFilePath = "./WRFData/";
//double longitude = 110.95
//double latitude = 19.61;
double wallTemperature = -1.0; double wallTemperature = -1.0;
double radiationCoef = 0.8; double radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter. double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol. double refMolecularWeight = 28.9644; // unit of g/mol.
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Spatial Discretisation # # Spatial Discretisation #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
#******************************************************************* #************************************************************************
# Struct Solver * # Struct Solver *
#******************************************************************* #************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid. // inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid. // Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f". // -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe". // -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid. // isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default) // 0 -- NO. (default)
// 1 -- Yes. // 1 -- Yes.
// str_limiter_name: Limiter of struct grid. // str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". // -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter. // -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version. // -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" // -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe"; string inviscidSchemeName = "roe";
int isWennScheme = 0; int isWennScheme = 0;
string str_limiter_name = "vanalbada"; string str_limiter_name = "vanalbada";
#******************************************************************* #************************************************************************
# UnStruct Solver or Common * # UnStruct Solver or Common *
#******************************************************************* #************************************************************************
// viscousType: Viscous model. // viscousType: Viscous model.
// 0 -- Euler. // 0 -- Euler.
// 1 -- Lamilar. // 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES. // 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. // uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// Using this when solve Unstructered grid or hybrid. // Using this when solve Unstructered grid or hybrid.
// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle". // -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle",
// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+".
// uns_limiter_name: Limiter of Unstruct grid. // uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod". // -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st". // -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter. // -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term. // uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2". // -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used. // 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// It is used to scale the default Roe entropy fix coefficients. // It is used to scale the default Roe entropy fix coefficients.
// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 // AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0.
//int viscousType = 0; //int viscousType = 0;
//string viscousName = "Euler"; //string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0; double AusmpwPlusLimiter = 1.0;
//----------------------------------------------------------------------- #************************************************************************
# Temporal Discretisation # # Temporal Discretisation *
//----------------------------------------------------------------------- #************************************************************************
// iunsteady: Steady or unsteady. // iunsteady: Steady or unsteady.
// 0 -- steady. // 0 -- steady.
// 1 -- unsteay. // 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration. // 6 -- Jacobian iteration.
// 7 -- Line LU-SGS. // 7 -- Line LU-SGS.
// 8 -- Matrix LU-SGS. // 8 -- Matrix LU-SGS.
// 9 -- GMRES.
// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. // iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation.
// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. // Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method.
// CFLStart: Started cfl number. // CFLStart: Started cfl number.
// CFLEnd: End cfl number. // CFLEnd: End cfl number.
// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. // CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd.
// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration.
// OriginalTscheme : Used for LUSGS and GMres hybrid computing.
// useLUSGSprecond: Initialize flow field for GMRES.
// 0 --Initialize by first order Jacobian matrix.
// 1 --Initialize by LUSGS.
// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field.
// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) // ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. // swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. // nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function. // 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step. // RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step. // lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0; int iunsteady = 0;
double physicalTimeStep = 0.01; double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001; double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000; int startStatisticStep = 800000;
double statisticalTimePeriod = -1.0; double statisticalTimePeriod = -1.0;
int statisticMethod = 0; int statisticMethod = 0;
int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2.
int methodOfDualTime = 3; int methodOfDualTime = 3;
int min_sub_iter = 50; int min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01; double CFLStart = 0.01;
double CFLEnd = 10.0; double CFLEnd = 10.0;
int CFLVaryStep = 500; int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2; double pMaxForCFL = 0.2;
double pMinForCFL = 0.1; double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2; double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01; double visl_min = 0.01;
double turbCFLScale = 1.0; double turbCFLScale = 1.0;
double csrv = 2.0; double csrv = 1.0;
double timemax = 1.0e10; double timemax = 1.0e10;
double dtsave = -1.0; double dtsave = -1.0;
int maxale = 10; int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4; //int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
#************************************************************************
//----------------------------------------------------------------------- # File In or Out *
# File In or Out # #************************************************************************
//-----------------------------------------------------------------------
// numberOfGridGroups: The number of grid groups. // numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path, // gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory. // which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance. // nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance. // 0 -- Compute wall distance.
// 1 -- Not compute. // 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. // protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. // wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1; int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts"; string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = ""; string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat"; string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat"; string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat"; string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat"; string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat"; string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt"; string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat"; string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.dat"; string protectionFile1 = "results/flow1.dat";
string wall_heatfluxfile = "results/wall_heatflux.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat";
string protectionTurbFile0 = "results/turb0.dat";
string protectionTurbFile1 = "results/turb1.dat";
string protectionTransitionFile0 = "results/transition0.dat";
string protectionTransitionFile1 = "results/transition1.dat";
int nDumpSurfaceInfo = 0; int nDumpSurfaceInfo = 0;
string wall_varfile = ""; string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat"; string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat"; string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt"; string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile. // visualfileType: The file type of visualfile.
// 0 -- Tecplot binary. // 0 -- Tecplot binary.
// 1 -- Tecplot ASCII. // 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1; int visualfileType = 1;
// samplefileMode: The dump mode of sample file. // samplefileMode: The dump mode of sample file.
@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0];
// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36),
// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40),
// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), // -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81) // -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- specific heat ratio(gama, 56) // -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big. // Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition---------------- //-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall. // nVisualWallVariables: The number of visual variables on wall.
// visualWallVariables : dumped variable types, listed as following: // visualWallVariables : dumped variable types, listed as following:
// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), // -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4),
// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), // -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8),
// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), // -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11),
// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) // -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15),
// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) // -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19),
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) // -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8; int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
@ -739,7 +761,9 @@ int dumpStandardModel = 0;
// 1 -- Real cell where the probe is located. // 1 -- Real cell where the probe is located.
// nProbeVariables: Number of variables want to be dumped for probes monitered. // nProbeVariables: Number of variables want to be dumped for probes monitered.
// probeVariables : Variable types dumped, listed as following: // probeVariables : Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). // -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9),
// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12).
// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!!
// probeVariables order must from small to big. // probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0; int searchCellsMethod = 0;
int nProbeVariables = 7; int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0; int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter # #************************************************************************
//----------------------------------------------------------------------- # Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence. // turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source. // kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original. // 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type // transitionType: transition model type
// 0 -- none. // 0 -- none.
// 2 -- gama-re-theta. // 2 -- gama-re-theta.
// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition // turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition.
// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not // freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not.
int turbInterval = 1; int turbInterval = 1;
int turbOrderStruct = 2; int turbOrderStruct = 2;
int kindOfTurbSource = 0; int kindOfTurbSource = 0;
int mod_turb_res = 0; int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3; double freeStreamViscosity = 1.0e-3;
double muoo = 3.0; double muoo = 3.0;
double kwoo = 5.0; double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0; int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0; double freeDecayXLocation = 0.0;
int compressibleCorrection = 0; int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1; int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max. // maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10; double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0; int monitor_vistmax = 0;
//----------------------------------------------------------------------- #************************************************************************
# LES Parameter # # LES Parameter *
//----------------------------------------------------------------------- #************************************************************************
// iLES: Create LESSolver or not. // iLES: Create LESSolver or not.
// = 1 - Create LESSolver; // = 1 -- Create LESSolver;
// != 1 - not. // != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb. // amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random 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. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter; // = 0 -- in only first sub-iter;
// != 0 - in every sub-iter. // != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not. // ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not. // ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not; // = 0 -- not;
// != 0 - Add body force. // != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not. // bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb. // utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model. // sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom"; // = "dsmCom";
// = "wale"; // = "wale";
// = "sigma". // = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); // deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3); // = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti. // = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function; // wallDampingFunctionType: = 0 -- no wall function;
// = 1 - van Driest; // = 1 -- van Driest;
// = 2 - developed by Dr. Deng Xiaobing; // = 2 -- developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli. // = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type. // turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul; // = 0 -- mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul; // = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 - mu_total = max(mut ,0)+ mul. // = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model. // smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model. // waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not. // filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average 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. // isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0; int iLES = 0;
string sgsmodel = "smagorinsky"; string sgsmodel = "smagorinsky";
int deltaFunctionType = 2; int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1; int averageWidth = 1;
int monitorNegativeConstant = 0; int monitorNegativeConstant = 0;
//----------------------------------------------------------------------- #************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas # # Other Parameters for Hypersonic Non-equilibrium Gas *
//----------------------------------------------------------------------- #************************************************************************
// dg_high_order: // dg_high_order:
// 0 -- generic order accuracy. // 0 -- generic order accuracy.
// 1 -- high order accuracy. // 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes. // 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files. // 1 -- gas model is imported from library files.
// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver,
// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver.
// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps.
// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual.
// nm: Equation number of the physics, but is out of commision now. // nm: Equation number of the physics, but is out of commision now.
// 4 -- for 2D. // 4 -- for 2D.
// 5 -- for 3D. // 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas. // 0 -- perfect gas.
// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component.
// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. // nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. // nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. // nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSlipBCModel: The computational model of slip boundary conditions. // nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip. // 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions. // 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions. // 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model. // 1 -- One-temperature model.
// 2 -- Two-temperature model. // 2 -- Two-temperature model.
// 3 -- Three-temperature model. // 3 -- Three-temperature model.
// isUseNoneqCond:
// 0 -- compute the source terms without any conditions.
// 1 -- compute the source terms using the non-equilibrium condition.
// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value.
// nIdealState: whether take all gas species as ideal gas for gas-mixture process. // nIdealState: whether take all gas species as ideal gas for gas-mixture process.
// 0 -- No. // 0 -- No.
// 1 -- Yes. // 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method. // 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the polynomial fitting method. // 1 -- the energy term is computed using the polynomial fitting method.
// 2 -- the energy term is computed using the piecewise polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method.
@ -946,14 +965,13 @@ int monitorNegativeConstant = 0;
// 1.0 -- proposed by Maxwell. // 1.0 -- proposed by Maxwell.
// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. // sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall.
// 1.146 -- proposed for an additional "fictitious" velocity slip. // 1.146 -- proposed for an additional "fictitious" velocity slip.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. // chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. // spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. // staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions. // nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 0 -- not freeze, the chemical reaction sources will be calculated. // 0 -- not freeze, the chemical reaction sources will be calculated.
// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te // 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.
// veTemperatureMin: The minimum of Tv and Te.
// maxViscous: the maximum of Viscous. // maxViscous: the maximum of Viscous.
// trTemperatureMin: the minimum value of trTemperature. // trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature. // veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species // nSpeciesLimit: limitter of gas species
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction // nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0. // 0 -- method 0.
// 1 -- method 1. // 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid // nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef // nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource // nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource // nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori.) // 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New) // 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature. // nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs // 0 -- not used.
// 0 -- not used // 1 -- used.
// 1 -- used // nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// nDiagonalModified: Modified on Diagonal // 1 -- new.
// 0 -- not used // nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 1 -- Ori. // 0 -- not used.
// 2 -- new // 1 -- new.
// nGradPrimtiveMethod: // nGradPrimtiveMethod:
// 0 -- Ori. // 0 -- Ori.
// 1 -- new // 1 -- new.
// nAblation: // nAblation:
// 0 -- The wall ablation is not computed. // 0 -- The wall ablation is not computed.
// 1 -- The wall ablation is computed. // 1 -- The wall ablation is computed.
@ -1017,8 +1033,8 @@ int monitorNegativeConstant = 0;
// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. // "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. // "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting. // "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©. // for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©. // for unstruct solver mixing multi-species<65><73>O2 NO CO CO2 H2 N2 Air CH4<48><34>.
// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // For self-definition model, the gasfile is used to indicate the file path of the new gas model.
// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma.
// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation.
// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation.
// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation.
// useHyflowSetting : Setting for HyFLOW GUI.
// 0 -- PHengLEI
// 1 -- HyFLOW
// nProtectData: Use the continuation file data protection mechanism. // nProtectData: Use the continuation file data protection mechanism.
// 0 -- no // 0 -- no.
// 1 -- yes // 1 -- yes.
// nTvChange: Judge whether the Tv equals Ttr.
// 0 -- yes.
// 1 -- no.
// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions.
// nFraction: the initial fractions type of species.
// 0 -- mass fraction.
// 1 -- mole fraction.
int dg_high_order = 0; int dg_high_order = 0;
int iapplication = 0; int iapplication = 0;
int isAdaptiveSolver = 0; int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1; double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0; double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0; double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0; int nDebug = 0;
int nSpeciesLimit = 1; int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5; int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1; int veTemperatureMinModified = 1;
int nDiagonalModified = 0; int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1; int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1; int nInviscidFluxModify = 1;
int nQlLimitMethod = 2; int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1; int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0; int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0; int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0; int nAblation = 0;
int isInjection = 0; int isInjection = 0;
int nViscosityModel = 0; int nViscosityModel = 0;
int nMarsModel = 0; int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5"; string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; //string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2"; string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2"; //string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0"; //string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0; int nContinueModel = 0;
int nChemicalFlowStep = 0; int nChemicalFlowStep = 0;
int ifStartFromPerfectGasResults = 0; int ifStartFromPerfectGasResults = 0;
int isUseNoneqCond = 0;
double frozenCondition = 0.01;
int nLeakageMonitor = 0;
double totalLeakageVolume = 1000.0;
double monitorThresholdValue = 0.05;
double sprayFactor = 0.0;
######################################################################### #########################################################################
// Multi-Grid parameters. // Multi-Grid parameters.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order. // 1 -- zero order.
// 2 -- first-order. (default) // 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit. // mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1; int nMGLevel = 1;
int MGCoarsestIteration = 1; int MGCoarsestIteration = 1;
int MGPreIteration = 1; int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat"; string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
######################################################################### #************************************************************************
# High Order Struct Solver # # High Order Struct Solver *
######################################################################### #************************************************************************
// isFVMOrFDM: // isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method. // 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method. // 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not. // codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-overlapping grid. // 0 -- NON-overlapping grid.
// 1 -- Overlapping grid. // 1 -- Overlapping grid.
// oversetInterpolationMethod: the method of overset interpolation while field simulation // oversetInterpolationMethod: the method of overset interpolation while field simulation.
// 0 -- set the acceptor cell value by donor cell value. // 0 -- set the acceptor cell value by donor cell value.
// 1 -- set the acceptor cell value by distance weight of donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value.
// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated.
// 0 -- no.
// 1 -- yes.
// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in
// the current overset grid(only for three dimension).
// 0 -- no.
// 1 -- yes.
// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid.
// 0 -- no.
// 1 -- yes.
// walldistMainZone: The initial value of background grid which does not exist wall boundary condition.
// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell.
// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region.
// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary.
// 0 -- one layer.
// 1 -- two layers.
// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region.
// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure.
// 0 -- no.
// 1 -- yes.
int codeOfOversetGrid = 0; int codeOfOversetGrid = 0;
int oversetInterpolationMethod = 0; int oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0; int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0; int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0; int outTecplotOverset = 0;
int outPutOversetVisualization = 0; int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2; int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------ // ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0; double referenceVelocity = 1.0;
double referenceDensity = 1.0; double referenceDensity = 1.0;
int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
int strategyForGCLSource = 0; //0-present; 1-Ahn; int strategyForGCLSource = 0; // 0-present; 1-Ahn.
//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton // 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton.
int methodForKineticEquation = 0; int methodForKineticEquation = 0;
double relaxParameterOfKinetic = 1.0; double relaxParameterOfKinetic = 1.0;
######################################################################### #************************************************************************
# motive information # # motive information *
######################################################################### #************************************************************************
int numberOfMovingBodies = 1; int numberOfMovingBodies = 1;
############################## body0 ############################## ############################## body0 ##############################
//mass of parts // mass of parts.
double mass_0 = 1.0; double mass_0 = 1.0;
//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz // gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_0 = 0.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz.
double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
//initial six DOF position information of parts. xc yc zc // initial six DOF position information of parts. xc yc zc.
double massCenter_0[] = 0.0, 0.0, 0.0; double massCenter_0[] = 0.0, 0.0, 0.0;
//initial six DOF position information of parts. angleX angleY angleZ // if reset mass center while restart.
int resetMassCenter_0 = 0;
// position offset of parts. dx dy dz.
double massCenterDxyz_0[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_0[] = 0.0, 0.0, 0.0; double attitudeAngle_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. vc vy vz // initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_0[] = 0.0, 0.0, 0.0; double massCenterVelocity_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. omigX omigY omigZ // initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_0[] = 0.0, 0.0, 0.0; double angularVelocity_0[] = 0.0, 0.0, 0.0;
// the object that the parts belong to. // the object that the parts belong to.
int fartherIndex_0 = -1; int fartherIndex_0 = -1;
//the assembly position of the parts. xc yc zc angleX angleY angleZ // the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
// the move pattern of the parts. // the move pattern of the parts.
// -1 given motion partten. // -1 given motion partten.
@ -1349,23 +1403,24 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0
int RBDMethod_0 = 0; int RBDMethod_0 = 0;
double amplitude_0 = 0.0; double amplitude_0 = 0.0;
double reduceFrequency_0 = 0.0; double reduceFrequency_0 = 0.0;
//direction of rotation // direction of rotation.
// 1 -- clockwise from the point of view along the positive x axis. // 1 -- clockwise from the point of view along the positive x axis.
// -1 -- anticlockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1; int direction_0 = -1;
double rotateFrequency_0 = 0.0; double rotateFrequency_0 = 0.0;
//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; //string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter";
//additional force (system axis) fX fY fZ // dimensional physical time for additional force(s).
double addedForceTime_0[] = 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_0[] = 0.0, 0.0, 0.0; double addedForce_0[] = 0.0, 0.0, 0.0;
//additional moment of Force (system axis) mX mY mZ // additional moment(inertia system) mX mY mZ.
double addedMoment_0[] = 0.0, 0.0, 0.0; double addedMoment_0[] = 0.0, 0.0, 0.0;
// the deformation method of the parts. // the deformation method of the parts.
int morphing_0 = 0; int morphing_0 = 0;
// post indentify // post indentify.
int integralOrder = 4; int integralOrder = 4;
// ---------------- ATP read -------------------------------------------- // ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0; //@int inflowParaType = 0;
//@double refReNumber = 6.5e6; //@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0; //@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0; //@double refDimensionalDensity = 0;
//@string weatherDataFilePath = "./WRFData/";
######################################################################### //@double longitude = 110.95
# Old Parameter # //@double latitude = 19.61;
######################################################################### #************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0; int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
######################################################################### //double partialCFL[] = [0.0];
# Incompressible Parameter # //double partialSpeedCoef[] = [0.0];
######################################################################### //double partialSpeed[] = [0.0];
//double partialAttackd[] = [0.0];
//double partialSlide[] = [0.0];
//double partialPressure[] = [0.0];
//double partialTemperature[] = [0.0];
//double partialMassFractions[] = [0.0];
#************************************************************************
# Incompressible Parameter *
#************************************************************************
int isSolveEnergyEquation = 0; int isSolveEnergyEquation = 0;
int isSolveTurbEquation = 0; int isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0; int isSolveSpeciesEquation = 0;

View File

@ -4,9 +4,12 @@
// gridtype: Grid type for generation, conversion, reconstruction, merging. // gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid. // 0 -- Unstructured grid.
// 1 -- Structured grid. // 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process. // from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE. // -1 -- MULTI_TYPE.
// 1 -- PHengLEI, *.fts. // 1 -- PHengLEI, *.fts.
@ -18,7 +21,9 @@
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. // 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
// 8 -- GMSH, *.msh. // 8 -- GMSH, *.msh.
int gridtype = 0; int gridtype = 0;
int axisup = 1; int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
int from_gtype = 5; int from_gtype = 5;
######################################################################### #########################################################################

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows + // Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center + // China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 + // (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
########################################################################### ###########################################################################
# Default parameters for Grid conversion # # Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0; int multiblock = 0;
int iadapt = 0; int iadapt = 0;
int SymmetryFaceVector = 1; int SymmetryFaceVector = 1;
int gridReorder = 0; int gridReorder = 0;
int faceReorderMethod = 0; int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
int axisup = 1; // 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition".
// 0 -- Interface. (default) // 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver. // 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Grid data type # # Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1; int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas"; string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = ""; string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------ // ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction. which only support one direction.
// rotationAngle: The relative angle between two periodic face. // rotationAngle: The relative angle between two periodic face.
which is recorded in degrees. which is recorded in degrees.
int periodicType = 0; int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0]; double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0; double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid. // 2 -- refine structured grid.
// maxproc: The number of partition zones that want to be divided into. // maxproc: The number of partition zones that want to be divided into.
// numberOfMultifile: The number of partition grid files that want to be dumped out. // numberOfMultifile: The number of partition grid files that want to be dumped out.
int pgridtype = 0; int pgridtype = 0;
int maxproc = 4; int maxproc = 4;
int numberOfMultifile = 1; int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1]; int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy: // parallelStrategy:
//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. // 0 -- each zone is assigned to the one that defined in grid partition procedure.
//! -# 1 : random assigned for each zone or by some else ways. // 1 -- random assigned for each zone or by some else ways.
int parallelStrategy = 1; int parallelStrategy = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance. // 1 -- perfect balance.
// maxproc -- perfect imbalance. // maxproc -- perfect imbalance.
// 1.05 -- recommended. // 1.05 -- recommended.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int npartmethod = 1; int npartmethod = 1;
int parallelPartitionMethod = 2; int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. // intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual file 'res.dat' saved. // intervalStepRes: The step intervals for residual file 'res.dat' saved.
// 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 maxSimuStep = 20000; int maxSimuStep = 20000;
int intervalStepFlow = 1000; int intervalStepFlow = 1000;
int intervalStepPlot = 1000; int intervalStepPlot = 1000;
int intervalStepSample = 1000; int intervalStepSample = 1000;
int intervalStepForce = 100; int intervalStepForce = 100;
int intervalStepRes = 10; int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible: // compressible:
// 0 -- incompressible flow. // 0 -- incompressible flow.
// 1 -- compressible flow. (default) // 1 -- compressible flow. (default)
int compressible = 1; int compressible = 1;
// 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)
// Kprec: The coefficient K for the cut-off velocity.
// 1.0~3.0 is suggested. (default, 3.0)
// preconFarfieldBCMethod: The precondition method for farfield boundary condition.
// 0 -- precondition far-field boundary based on riemann invariants.
// 1 -- Turkel's simplified far-field boundary condition.
int ifLowSpeedPrecon = 0;
double Kprec = 3.0;
int preconFarfieldBCMethod = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# CFD Control Parameter # # CFD Control Parameter #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions. // 0 -- the nondimensional conditions.
// 1 -- the flight conditions. // 1 -- the flight conditions.
// 2 -- the experiment conditions. // 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions. // 3 -- the subsonic boundary conditions. (Useless!)
// 4 -- the condition that the velocity, temperature and density are given. // 4 -- the condition that the velocity, temperature and density are given.
// 5 -- the condition that the velocity, temperature and pressure are given. // 5 -- the condition that the velocity, temperature and pressure are given.
//flowInitMethod: Flow field initialization method.
// 0 -- The entire flow field is initialized according to Infinite velocity.
// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m. // 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. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// freestream_vibration_temperature: Dimensional freestream vibration temperature. // freestream_vibration_temperature: Dimensional freestream vibration temperature.
@ -303,11 +314,11 @@ int compressible = 1;
// condition is radiation equilibrium temperature, and 0.8 is the default value. // condition is radiation equilibrium temperature, and 0.8 is the default value.
// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol.
// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on.
int directionMethod = 0; int directionMethod = 0;
double refMachNumber = 0.73; double refMachNumber = 0.73;
double attackd = 2.79; double attackd = 2.79;
double angleSlide = 0.00; double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0; int inflowParaType = 0;
double refReNumber = 6.5e6; double refReNumber = 6.5e6;
@ -321,14 +332,6 @@ double freestream_vibration_temperature = 300.00;
//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). //double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2).
//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). //double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)).
//int inflowParaType = 3;
//int nsubsonicInlet = 1;
//int nsubsonicOutlet = 1;
//string inLetFileName = "./bin/subsonicInlet.hypara";
//string outLetFileName = "./bin/subsonicOutlet.hypara";
//double refDimensionalTemperature = 288.144;
//double refDimensionalPressure = 1.01313E05;
// The velocity, temperature and density are fixed. // The velocity, temperature and density are fixed.
//int inflowParaType = 4; //int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0; //double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed. // The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6; //int inflowParaType = 6;
//double refDimensionalTemperature = 293; //double refDimensionalTemperature = 293.0;
//double refDimensionalPressure = 8886.06; //double refDimensionalPressure = 8886.06;
// The velocity, temperature and pressure are read from file.
//int inflowParaType = 7;
//string weatherDataFilePath = "./WRFData/";
//double longitude = 110.95
//double latitude = 19.61;
double wallTemperature = -1.0; double wallTemperature = -1.0;
double radiationCoef = 0.8; double radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter. double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol. double refMolecularWeight = 28.9644; // unit of g/mol.
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Spatial Discretisation # # Spatial Discretisation #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
#******************************************************************* #************************************************************************
# Struct Solver * # Struct Solver *
#******************************************************************* #************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid. // inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid. // Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f". // -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe". // -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid. // isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default) // 0 -- NO. (default)
// 1 -- Yes. // 1 -- Yes.
// str_limiter_name: Limiter of struct grid. // str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". // -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter. // -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version. // -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" // -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe"; string inviscidSchemeName = "roe";
int isWennScheme = 0; int isWennScheme = 0;
string str_limiter_name = "vanalbada"; string str_limiter_name = "vanalbada";
#******************************************************************* #************************************************************************
# UnStruct Solver or Common * # UnStruct Solver or Common *
#******************************************************************* #************************************************************************
// viscousType: Viscous model. // viscousType: Viscous model.
// 0 -- Euler. // 0 -- Euler.
// 1 -- Lamilar. // 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES. // 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. // uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// Using this when solve Unstructered grid or hybrid. // Using this when solve Unstructered grid or hybrid.
// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle". // -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle",
// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+".
// uns_limiter_name: Limiter of Unstruct grid. // uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod". // -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st". // -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter. // -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term. // uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2". // -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used. // 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// It is used to scale the default Roe entropy fix coefficients. // It is used to scale the default Roe entropy fix coefficients.
// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 // AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0.
//int viscousType = 0; //int viscousType = 0;
//string viscousName = "Euler"; //string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0; double AusmpwPlusLimiter = 1.0;
//----------------------------------------------------------------------- #************************************************************************
# Temporal Discretisation # # Temporal Discretisation *
//----------------------------------------------------------------------- #************************************************************************
// iunsteady: Steady or unsteady. // iunsteady: Steady or unsteady.
// 0 -- steady. // 0 -- steady.
// 1 -- unsteay. // 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration. // 6 -- Jacobian iteration.
// 7 -- Line LU-SGS. // 7 -- Line LU-SGS.
// 8 -- Matrix LU-SGS. // 8 -- Matrix LU-SGS.
// 9 -- GMRES.
// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. // iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation.
// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. // Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method.
// CFLStart: Started cfl number. // CFLStart: Started cfl number.
// CFLEnd: End cfl number. // CFLEnd: End cfl number.
// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. // CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd.
// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration.
// OriginalTscheme : Used for LUSGS and GMres hybrid computing.
// useLUSGSprecond: Initialize flow field for GMRES.
// 0 --Initialize by first order Jacobian matrix.
// 1 --Initialize by LUSGS.
// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field.
// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) // ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. // swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. // nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function. // 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step. // RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step. // lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0; int iunsteady = 0;
double physicalTimeStep = 0.01; double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001; double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000; int startStatisticStep = 800000;
double statisticalTimePeriod = -1.0; double statisticalTimePeriod = -1.0;
int statisticMethod = 0; int statisticMethod = 0;
int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2.
int methodOfDualTime = 3; int methodOfDualTime = 3;
int min_sub_iter = 50; int min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01; double CFLStart = 0.01;
double CFLEnd = 10.0; double CFLEnd = 10.0;
int CFLVaryStep = 500; int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2; double pMaxForCFL = 0.2;
double pMinForCFL = 0.1; double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2; double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01; double visl_min = 0.01;
double turbCFLScale = 1.0; double turbCFLScale = 1.0;
double csrv = 2.0; double csrv = 1.0;
double timemax = 1.0e10; double timemax = 1.0e10;
double dtsave = -1.0; double dtsave = -1.0;
int maxale = 10; int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4; //int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
#************************************************************************
//----------------------------------------------------------------------- # File In or Out *
# File In or Out # #************************************************************************
//-----------------------------------------------------------------------
// numberOfGridGroups: The number of grid groups. // numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path, // gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory. // which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance. // nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance. // 0 -- Compute wall distance.
// 1 -- Not compute. // 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. // protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. // wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1; int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts"; string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = ""; string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat"; string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat"; string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat"; string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat"; string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat"; string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt"; string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat"; string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.dat"; string protectionFile1 = "results/flow1.dat";
string wall_heatfluxfile = "results/wall_heatflux.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat";
string protectionTurbFile0 = "results/turb0.dat";
string protectionTurbFile1 = "results/turb1.dat";
string protectionTransitionFile0 = "results/transition0.dat";
string protectionTransitionFile1 = "results/transition1.dat";
int nDumpSurfaceInfo = 0; int nDumpSurfaceInfo = 0;
string wall_varfile = ""; string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat"; string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat"; string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt"; string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile. // visualfileType: The file type of visualfile.
// 0 -- Tecplot binary. // 0 -- Tecplot binary.
// 1 -- Tecplot ASCII. // 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1; int visualfileType = 1;
// samplefileMode: The dump mode of sample file. // samplefileMode: The dump mode of sample file.
@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0];
// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36),
// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40),
// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), // -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81) // -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- specific heat ratio(gama, 56) // -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big. // Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition---------------- //-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall. // nVisualWallVariables: The number of visual variables on wall.
// visualWallVariables : dumped variable types, listed as following: // visualWallVariables : dumped variable types, listed as following:
// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), // -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4),
// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), // -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8),
// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), // -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11),
// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) // -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15),
// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) // -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19),
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) // -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8; int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
@ -739,7 +761,9 @@ int dumpStandardModel = 0;
// 1 -- Real cell where the probe is located. // 1 -- Real cell where the probe is located.
// nProbeVariables: Number of variables want to be dumped for probes monitered. // nProbeVariables: Number of variables want to be dumped for probes monitered.
// probeVariables : Variable types dumped, listed as following: // probeVariables : Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). // -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9),
// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12).
// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!!
// probeVariables order must from small to big. // probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0; int searchCellsMethod = 0;
int nProbeVariables = 7; int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0; int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter # #************************************************************************
//----------------------------------------------------------------------- # Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence. // turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source. // kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original. // 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type // transitionType: transition model type
// 0 -- none. // 0 -- none.
// 2 -- gama-re-theta. // 2 -- gama-re-theta.
// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition // turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition.
// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not // freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not.
int turbInterval = 1; int turbInterval = 1;
int turbOrderStruct = 2; int turbOrderStruct = 2;
int kindOfTurbSource = 0; int kindOfTurbSource = 0;
int mod_turb_res = 0; int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3; double freeStreamViscosity = 1.0e-3;
double muoo = 3.0; double muoo = 3.0;
double kwoo = 5.0; double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0; int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0; double freeDecayXLocation = 0.0;
int compressibleCorrection = 0; int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1; int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max. // maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10; double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0; int monitor_vistmax = 0;
//----------------------------------------------------------------------- #************************************************************************
# LES Parameter # # LES Parameter *
//----------------------------------------------------------------------- #************************************************************************
// iLES: Create LESSolver or not. // iLES: Create LESSolver or not.
// = 1 - Create LESSolver; // = 1 -- Create LESSolver;
// != 1 - not. // != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb. // amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random 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. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter; // = 0 -- in only first sub-iter;
// != 0 - in every sub-iter. // != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not. // ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not. // ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not; // = 0 -- not;
// != 0 - Add body force. // != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not. // bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb. // utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model. // sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom"; // = "dsmCom";
// = "wale"; // = "wale";
// = "sigma". // = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); // deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3); // = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti. // = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function; // wallDampingFunctionType: = 0 -- no wall function;
// = 1 - van Driest; // = 1 -- van Driest;
// = 2 - developed by Dr. Deng Xiaobing; // = 2 -- developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli. // = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type. // turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul; // = 0 -- mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul; // = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 - mu_total = max(mut ,0)+ mul. // = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model. // smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model. // waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not. // filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average 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. // isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0; int iLES = 0;
string sgsmodel = "smagorinsky"; string sgsmodel = "smagorinsky";
int deltaFunctionType = 2; int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1; int averageWidth = 1;
int monitorNegativeConstant = 0; int monitorNegativeConstant = 0;
//----------------------------------------------------------------------- #************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas # # Other Parameters for Hypersonic Non-equilibrium Gas *
//----------------------------------------------------------------------- #************************************************************************
// dg_high_order: // dg_high_order:
// 0 -- generic order accuracy. // 0 -- generic order accuracy.
// 1 -- high order accuracy. // 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes. // 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files. // 1 -- gas model is imported from library files.
// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver,
// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver.
// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps.
// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual.
// nm: Equation number of the physics, but is out of commision now. // nm: Equation number of the physics, but is out of commision now.
// 4 -- for 2D. // 4 -- for 2D.
// 5 -- for 3D. // 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas. // 0 -- perfect gas.
// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component.
// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. // nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. // nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. // nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSlipBCModel: The computational model of slip boundary conditions. // nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip. // 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions. // 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions. // 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model. // 1 -- One-temperature model.
// 2 -- Two-temperature model. // 2 -- Two-temperature model.
// 3 -- Three-temperature model. // 3 -- Three-temperature model.
// isUseNoneqCond:
// 0 -- compute the source terms without any conditions.
// 1 -- compute the source terms using the non-equilibrium condition.
// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value.
// nIdealState: whether take all gas species as ideal gas for gas-mixture process. // nIdealState: whether take all gas species as ideal gas for gas-mixture process.
// 0 -- No. // 0 -- No.
// 1 -- Yes. // 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method. // 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the polynomial fitting method. // 1 -- the energy term is computed using the polynomial fitting method.
// 2 -- the energy term is computed using the piecewise polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method.
@ -946,14 +965,13 @@ int monitorNegativeConstant = 0;
// 1.0 -- proposed by Maxwell. // 1.0 -- proposed by Maxwell.
// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. // sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall.
// 1.146 -- proposed for an additional "fictitious" velocity slip. // 1.146 -- proposed for an additional "fictitious" velocity slip.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. // chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. // spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. // staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions. // nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 0 -- not freeze, the chemical reaction sources will be calculated. // 0 -- not freeze, the chemical reaction sources will be calculated.
// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te // 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.
// veTemperatureMin: The minimum of Tv and Te.
// maxViscous: the maximum of Viscous. // maxViscous: the maximum of Viscous.
// trTemperatureMin: the minimum value of trTemperature. // trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature. // veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species // nSpeciesLimit: limitter of gas species
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction // nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0. // 0 -- method 0.
// 1 -- method 1. // 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid // nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef // nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource // nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource // nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori.) // 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New) // 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature. // nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs // 0 -- not used.
// 0 -- not used // 1 -- used.
// 1 -- used // nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// nDiagonalModified: Modified on Diagonal // 1 -- new.
// 0 -- not used // nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 1 -- Ori. // 0 -- not used.
// 2 -- new // 1 -- new.
// nGradPrimtiveMethod: // nGradPrimtiveMethod:
// 0 -- Ori. // 0 -- Ori.
// 1 -- new // 1 -- new.
// nAblation: // nAblation:
// 0 -- The wall ablation is not computed. // 0 -- The wall ablation is not computed.
// 1 -- The wall ablation is computed. // 1 -- The wall ablation is computed.
@ -1017,8 +1033,8 @@ int monitorNegativeConstant = 0;
// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. // "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. // "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting. // "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©. // for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©. // for unstruct solver mixing multi-species<65><73>O2 NO CO CO2 H2 N2 Air CH4<48><34>.
// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // For self-definition model, the gasfile is used to indicate the file path of the new gas model.
// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma.
// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation.
// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation.
// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation.
// useHyflowSetting : Setting for HyFLOW GUI.
// 0 -- PHengLEI
// 1 -- HyFLOW
// nProtectData: Use the continuation file data protection mechanism. // nProtectData: Use the continuation file data protection mechanism.
// 0 -- no // 0 -- no.
// 1 -- yes // 1 -- yes.
// nTvChange: Judge whether the Tv equals Ttr.
// 0 -- yes.
// 1 -- no.
// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions.
// nFraction: the initial fractions type of species.
// 0 -- mass fraction.
// 1 -- mole fraction.
int dg_high_order = 0; int dg_high_order = 0;
int iapplication = 0; int iapplication = 0;
int isAdaptiveSolver = 0; int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1; double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0; double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0; double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0; int nDebug = 0;
int nSpeciesLimit = 1; int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5; int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1; int veTemperatureMinModified = 1;
int nDiagonalModified = 0; int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1; int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1; int nInviscidFluxModify = 1;
int nQlLimitMethod = 2; int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1; int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0; int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0; int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0; int nAblation = 0;
int isInjection = 0; int isInjection = 0;
int nViscosityModel = 0; int nViscosityModel = 0;
int nMarsModel = 0; int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5"; string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; //string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2"; string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2"; //string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0"; //string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0; int nContinueModel = 0;
int nChemicalFlowStep = 0; int nChemicalFlowStep = 0;
int ifStartFromPerfectGasResults = 0; int ifStartFromPerfectGasResults = 0;
int isUseNoneqCond = 0;
double frozenCondition = 0.01;
int nLeakageMonitor = 0;
double totalLeakageVolume = 1000.0;
double monitorThresholdValue = 0.05;
double sprayFactor = 0.0;
######################################################################### #########################################################################
// Multi-Grid parameters. // Multi-Grid parameters.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order. // 1 -- zero order.
// 2 -- first-order. (default) // 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit. // mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1; int nMGLevel = 1;
int MGCoarsestIteration = 1; int MGCoarsestIteration = 1;
int MGPreIteration = 1; int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat"; string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
######################################################################### #************************************************************************
# High Order Struct Solver # # High Order Struct Solver *
######################################################################### #************************************************************************
// isFVMOrFDM: // isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method. // 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method. // 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not. // codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-overlapping grid. // 0 -- NON-overlapping grid.
// 1 -- Overlapping grid. // 1 -- Overlapping grid.
// oversetInterpolationMethod: the method of overset interpolation while field simulation // oversetInterpolationMethod: the method of overset interpolation while field simulation.
// 0 -- set the acceptor cell value by donor cell value. // 0 -- set the acceptor cell value by donor cell value.
// 1 -- set the acceptor cell value by distance weight of donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value.
// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated.
// 0 -- no.
// 1 -- yes.
// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in
// the current overset grid(only for three dimension).
// 0 -- no.
// 1 -- yes.
// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid.
// 0 -- no.
// 1 -- yes.
// walldistMainZone: The initial value of background grid which does not exist wall boundary condition.
// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell.
// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region.
// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary.
// 0 -- one layer.
// 1 -- two layers.
// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region.
// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure.
// 0 -- no.
// 1 -- yes.
int codeOfOversetGrid = 0; int codeOfOversetGrid = 0;
int oversetInterpolationMethod = 0; int oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0; int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0; int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0; int outTecplotOverset = 0;
int outPutOversetVisualization = 0; int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2; int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------ // ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0; double referenceVelocity = 1.0;
double referenceDensity = 1.0; double referenceDensity = 1.0;
int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
int strategyForGCLSource = 0; //0-present; 1-Ahn; int strategyForGCLSource = 0; // 0-present; 1-Ahn.
//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton // 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton.
int methodForKineticEquation = 0; int methodForKineticEquation = 0;
double relaxParameterOfKinetic = 1.0; double relaxParameterOfKinetic = 1.0;
######################################################################### #************************************************************************
# motive information # # motive information *
######################################################################### #************************************************************************
int numberOfMovingBodies = 1; int numberOfMovingBodies = 1;
############################## body0 ############################## ############################## body0 ##############################
//mass of parts // mass of parts.
double mass_0 = 1.0; double mass_0 = 1.0;
//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz // gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_0 = 0.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz.
double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
//initial six DOF position information of parts. xc yc zc // initial six DOF position information of parts. xc yc zc.
double massCenter_0[] = 0.0, 0.0, 0.0; double massCenter_0[] = 0.0, 0.0, 0.0;
//initial six DOF position information of parts. angleX angleY angleZ // if reset mass center while restart.
int resetMassCenter_0 = 0;
// position offset of parts. dx dy dz.
double massCenterDxyz_0[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_0[] = 0.0, 0.0, 0.0; double attitudeAngle_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. vc vy vz // initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_0[] = 0.0, 0.0, 0.0; double massCenterVelocity_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. omigX omigY omigZ // initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_0[] = 0.0, 0.0, 0.0; double angularVelocity_0[] = 0.0, 0.0, 0.0;
// the object that the parts belong to. // the object that the parts belong to.
int fartherIndex_0 = -1; int fartherIndex_0 = -1;
//the assembly position of the parts. xc yc zc angleX angleY angleZ // the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
// the move pattern of the parts. // the move pattern of the parts.
// -1 given motion partten. // -1 given motion partten.
@ -1349,23 +1403,24 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0
int RBDMethod_0 = 0; int RBDMethod_0 = 0;
double amplitude_0 = 0.0; double amplitude_0 = 0.0;
double reduceFrequency_0 = 0.0; double reduceFrequency_0 = 0.0;
//direction of rotation // direction of rotation.
// 1 -- clockwise from the point of view along the positive x axis. // 1 -- clockwise from the point of view along the positive x axis.
// -1 -- anticlockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1; int direction_0 = -1;
double rotateFrequency_0 = 0.0; double rotateFrequency_0 = 0.0;
//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; //string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter";
//additional force (system axis) fX fY fZ // dimensional physical time for additional force(s).
double addedForceTime_0[] = 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_0[] = 0.0, 0.0, 0.0; double addedForce_0[] = 0.0, 0.0, 0.0;
//additional moment of Force (system axis) mX mY mZ // additional moment(inertia system) mX mY mZ.
double addedMoment_0[] = 0.0, 0.0, 0.0; double addedMoment_0[] = 0.0, 0.0, 0.0;
// the deformation method of the parts. // the deformation method of the parts.
int morphing_0 = 0; int morphing_0 = 0;
// post indentify // post indentify.
int integralOrder = 4; int integralOrder = 4;
// ---------------- ATP read -------------------------------------------- // ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0; //@int inflowParaType = 0;
//@double refReNumber = 6.5e6; //@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0; //@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0; //@double refDimensionalDensity = 0;
//@string weatherDataFilePath = "./WRFData/";
######################################################################### //@double longitude = 110.95
# Old Parameter # //@double latitude = 19.61;
######################################################################### #************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0; int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
######################################################################### //double partialCFL[] = [0.0];
# Incompressible Parameter # //double partialSpeedCoef[] = [0.0];
######################################################################### //double partialSpeed[] = [0.0];
//double partialAttackd[] = [0.0];
//double partialSlide[] = [0.0];
//double partialPressure[] = [0.0];
//double partialTemperature[] = [0.0];
//double partialMassFractions[] = [0.0];
#************************************************************************
# Incompressible Parameter *
#************************************************************************
int isSolveEnergyEquation = 0; int isSolveEnergyEquation = 0;
int isSolveTurbEquation = 0; int isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0; int isSolveSpeciesEquation = 0;

View File

@ -4,9 +4,12 @@
// gridtype: Grid type for generation, conversion, reconstruction, merging. // gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid. // 0 -- Unstructured grid.
// 1 -- Structured grid. // 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process. // from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE. // -1 -- MULTI_TYPE.
// 1 -- PHengLEI, *.fts. // 1 -- PHengLEI, *.fts.
@ -18,7 +21,9 @@
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. // 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
// 8 -- GMSH, *.msh. // 8 -- GMSH, *.msh.
int gridtype = 0; int gridtype = 0;
int axisup = 1; int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
int from_gtype = 5; int from_gtype = 5;
######################################################################### #########################################################################

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows + // Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center + // China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 + // (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
########################################################################### ###########################################################################
# Default parameters for Grid conversion # # Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0; int multiblock = 0;
int iadapt = 0; int iadapt = 0;
int SymmetryFaceVector = 1; int SymmetryFaceVector = 1;
int gridReorder = 0; int gridReorder = 0;
int faceReorderMethod = 0; int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
int axisup = 1; // 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition".
// 0 -- Interface. (default) // 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver. // 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Grid data type # # Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1; int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas"; string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = ""; string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------ // ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction. which only support one direction.
// rotationAngle: The relative angle between two periodic face. // rotationAngle: The relative angle between two periodic face.
which is recorded in degrees. which is recorded in degrees.
int periodicType = 0; int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0]; double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0; double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid. // 2 -- refine structured grid.
// maxproc: The number of partition zones that want to be divided into. // maxproc: The number of partition zones that want to be divided into.
// numberOfMultifile: The number of partition grid files that want to be dumped out. // numberOfMultifile: The number of partition grid files that want to be dumped out.
int pgridtype = 0; int pgridtype = 0;
int maxproc = 4; int maxproc = 4;
int numberOfMultifile = 1; int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1]; int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy: // parallelStrategy:
//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. // 0 -- each zone is assigned to the one that defined in grid partition procedure.
//! -# 1 : random assigned for each zone or by some else ways. // 1 -- random assigned for each zone or by some else ways.
int parallelStrategy = 1; int parallelStrategy = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance. // 1 -- perfect balance.
// maxproc -- perfect imbalance. // maxproc -- perfect imbalance.
// 1.05 -- recommended. // 1.05 -- recommended.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int npartmethod = 1; int npartmethod = 1;
int parallelPartitionMethod = 2; int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. // intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual file 'res.dat' saved. // intervalStepRes: The step intervals for residual file 'res.dat' saved.
// 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 maxSimuStep = 20000; int maxSimuStep = 20000;
int intervalStepFlow = 1000; int intervalStepFlow = 1000;
int intervalStepPlot = 1000; int intervalStepPlot = 1000;
int intervalStepSample = 1000; int intervalStepSample = 1000;
int intervalStepForce = 100; int intervalStepForce = 100;
int intervalStepRes = 10; int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible: // compressible:
// 0 -- incompressible flow. // 0 -- incompressible flow.
// 1 -- compressible flow. (default) // 1 -- compressible flow. (default)
int compressible = 1; int compressible = 1;
// 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)
// Kprec: The coefficient K for the cut-off velocity.
// 1.0~3.0 is suggested. (default, 3.0)
// preconFarfieldBCMethod: The precondition method for farfield boundary condition.
// 0 -- precondition far-field boundary based on riemann invariants.
// 1 -- Turkel's simplified far-field boundary condition.
int ifLowSpeedPrecon = 0;
double Kprec = 3.0;
int preconFarfieldBCMethod = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# CFD Control Parameter # # CFD Control Parameter #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions. // 0 -- the nondimensional conditions.
// 1 -- the flight conditions. // 1 -- the flight conditions.
// 2 -- the experiment conditions. // 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions. // 3 -- the subsonic boundary conditions. (Useless!)
// 4 -- the condition that the velocity, temperature and density are given. // 4 -- the condition that the velocity, temperature and density are given.
// 5 -- the condition that the velocity, temperature and pressure are given. // 5 -- the condition that the velocity, temperature and pressure are given.
//flowInitMethod: Flow field initialization method.
// 0 -- The entire flow field is initialized according to Infinite velocity.
// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m. // 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. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// freestream_vibration_temperature: Dimensional freestream vibration temperature. // freestream_vibration_temperature: Dimensional freestream vibration temperature.
@ -303,11 +314,11 @@ int compressible = 1;
// condition is radiation equilibrium temperature, and 0.8 is the default value. // condition is radiation equilibrium temperature, and 0.8 is the default value.
// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol.
// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on.
int directionMethod = 0; int directionMethod = 0;
double refMachNumber = 0.73; double refMachNumber = 0.73;
double attackd = 2.79; double attackd = 2.79;
double angleSlide = 0.00; double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0; int inflowParaType = 0;
double refReNumber = 6.5e6; double refReNumber = 6.5e6;
@ -321,14 +332,6 @@ double freestream_vibration_temperature = 300.00;
//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). //double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2).
//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). //double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)).
//int inflowParaType = 3;
//int nsubsonicInlet = 1;
//int nsubsonicOutlet = 1;
//string inLetFileName = "./bin/subsonicInlet.hypara";
//string outLetFileName = "./bin/subsonicOutlet.hypara";
//double refDimensionalTemperature = 288.144;
//double refDimensionalPressure = 1.01313E05;
// The velocity, temperature and density are fixed. // The velocity, temperature and density are fixed.
//int inflowParaType = 4; //int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0; //double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed. // The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6; //int inflowParaType = 6;
//double refDimensionalTemperature = 293; //double refDimensionalTemperature = 293.0;
//double refDimensionalPressure = 8886.06; //double refDimensionalPressure = 8886.06;
// The velocity, temperature and pressure are read from file.
//int inflowParaType = 7;
//string weatherDataFilePath = "./WRFData/";
//double longitude = 110.95
//double latitude = 19.61;
double wallTemperature = -1.0; double wallTemperature = -1.0;
double radiationCoef = 0.8; double radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter. double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol. double refMolecularWeight = 28.9644; // unit of g/mol.
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Spatial Discretisation # # Spatial Discretisation #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
#******************************************************************* #************************************************************************
# Struct Solver * # Struct Solver *
#******************************************************************* #************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid. // inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid. // Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f". // -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe". // -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid. // isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default) // 0 -- NO. (default)
// 1 -- Yes. // 1 -- Yes.
// str_limiter_name: Limiter of struct grid. // str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". // -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter. // -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version. // -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" // -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe"; string inviscidSchemeName = "roe";
int isWennScheme = 0; int isWennScheme = 0;
string str_limiter_name = "vanalbada"; string str_limiter_name = "vanalbada";
#******************************************************************* #************************************************************************
# UnStruct Solver or Common * # UnStruct Solver or Common *
#******************************************************************* #************************************************************************
// viscousType: Viscous model. // viscousType: Viscous model.
// 0 -- Euler. // 0 -- Euler.
// 1 -- Lamilar. // 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES. // 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. // uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// Using this when solve Unstructered grid or hybrid. // Using this when solve Unstructered grid or hybrid.
// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle". // -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle",
// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+".
// uns_limiter_name: Limiter of Unstruct grid. // uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod". // -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st". // -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter. // -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term. // uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2". // -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used. // 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// It is used to scale the default Roe entropy fix coefficients. // It is used to scale the default Roe entropy fix coefficients.
// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 // AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0.
//int viscousType = 0; //int viscousType = 0;
//string viscousName = "Euler"; //string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0; double AusmpwPlusLimiter = 1.0;
//----------------------------------------------------------------------- #************************************************************************
# Temporal Discretisation # # Temporal Discretisation *
//----------------------------------------------------------------------- #************************************************************************
// iunsteady: Steady or unsteady. // iunsteady: Steady or unsteady.
// 0 -- steady. // 0 -- steady.
// 1 -- unsteay. // 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration. // 6 -- Jacobian iteration.
// 7 -- Line LU-SGS. // 7 -- Line LU-SGS.
// 8 -- Matrix LU-SGS. // 8 -- Matrix LU-SGS.
// 9 -- GMRES.
// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. // iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation.
// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. // Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method.
// CFLStart: Started cfl number. // CFLStart: Started cfl number.
// CFLEnd: End cfl number. // CFLEnd: End cfl number.
// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. // CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd.
// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration.
// OriginalTscheme : Used for LUSGS and GMres hybrid computing.
// useLUSGSprecond: Initialize flow field for GMRES.
// 0 --Initialize by first order Jacobian matrix.
// 1 --Initialize by LUSGS.
// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field.
// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) // ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. // swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. // nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function. // 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step. // RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step. // lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0; int iunsteady = 0;
double physicalTimeStep = 0.01; double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001; double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000; int startStatisticStep = 800000;
double statisticalTimePeriod = -1.0; double statisticalTimePeriod = -1.0;
int statisticMethod = 0; int statisticMethod = 0;
int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2.
int methodOfDualTime = 3; int methodOfDualTime = 3;
int min_sub_iter = 50; int min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01; double CFLStart = 0.01;
double CFLEnd = 10.0; double CFLEnd = 10.0;
int CFLVaryStep = 500; int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2; double pMaxForCFL = 0.2;
double pMinForCFL = 0.1; double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2; double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01; double visl_min = 0.01;
double turbCFLScale = 1.0; double turbCFLScale = 1.0;
double csrv = 2.0; double csrv = 1.0;
double timemax = 1.0e10; double timemax = 1.0e10;
double dtsave = -1.0; double dtsave = -1.0;
int maxale = 10; int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4; //int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
#************************************************************************
//----------------------------------------------------------------------- # File In or Out *
# File In or Out # #************************************************************************
//-----------------------------------------------------------------------
// numberOfGridGroups: The number of grid groups. // numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path, // gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory. // which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance. // nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance. // 0 -- Compute wall distance.
// 1 -- Not compute. // 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. // protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. // wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1; int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts"; string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = ""; string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat"; string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat"; string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat"; string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat"; string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat"; string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt"; string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat"; string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.dat"; string protectionFile1 = "results/flow1.dat";
string wall_heatfluxfile = "results/wall_heatflux.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat";
string protectionTurbFile0 = "results/turb0.dat";
string protectionTurbFile1 = "results/turb1.dat";
string protectionTransitionFile0 = "results/transition0.dat";
string protectionTransitionFile1 = "results/transition1.dat";
int nDumpSurfaceInfo = 0; int nDumpSurfaceInfo = 0;
string wall_varfile = ""; string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat"; string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat"; string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt"; string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile. // visualfileType: The file type of visualfile.
// 0 -- Tecplot binary. // 0 -- Tecplot binary.
// 1 -- Tecplot ASCII. // 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1; int visualfileType = 1;
// samplefileMode: The dump mode of sample file. // samplefileMode: The dump mode of sample file.
@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0];
// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36),
// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40),
// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), // -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81) // -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- specific heat ratio(gama, 56) // -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big. // Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition---------------- //-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall. // nVisualWallVariables: The number of visual variables on wall.
// visualWallVariables : dumped variable types, listed as following: // visualWallVariables : dumped variable types, listed as following:
// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), // -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4),
// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), // -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8),
// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), // -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11),
// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) // -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15),
// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) // -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19),
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) // -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8; int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
@ -739,7 +761,9 @@ int dumpStandardModel = 0;
// 1 -- Real cell where the probe is located. // 1 -- Real cell where the probe is located.
// nProbeVariables: Number of variables want to be dumped for probes monitered. // nProbeVariables: Number of variables want to be dumped for probes monitered.
// probeVariables : Variable types dumped, listed as following: // probeVariables : Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). // -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9),
// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12).
// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!!
// probeVariables order must from small to big. // probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0; int searchCellsMethod = 0;
int nProbeVariables = 7; int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0; int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter # #************************************************************************
//----------------------------------------------------------------------- # Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence. // turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source. // kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original. // 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type // transitionType: transition model type
// 0 -- none. // 0 -- none.
// 2 -- gama-re-theta. // 2 -- gama-re-theta.
// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition // turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition.
// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not // freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not.
int turbInterval = 1; int turbInterval = 1;
int turbOrderStruct = 2; int turbOrderStruct = 2;
int kindOfTurbSource = 0; int kindOfTurbSource = 0;
int mod_turb_res = 0; int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3; double freeStreamViscosity = 1.0e-3;
double muoo = 3.0; double muoo = 3.0;
double kwoo = 5.0; double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0; int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0; double freeDecayXLocation = 0.0;
int compressibleCorrection = 0; int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1; int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max. // maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10; double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0; int monitor_vistmax = 0;
//----------------------------------------------------------------------- #************************************************************************
# LES Parameter # # LES Parameter *
//----------------------------------------------------------------------- #************************************************************************
// iLES: Create LESSolver or not. // iLES: Create LESSolver or not.
// = 1 - Create LESSolver; // = 1 -- Create LESSolver;
// != 1 - not. // != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb. // amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random 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. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter; // = 0 -- in only first sub-iter;
// != 0 - in every sub-iter. // != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not. // ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not. // ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not; // = 0 -- not;
// != 0 - Add body force. // != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not. // bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb. // utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model. // sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom"; // = "dsmCom";
// = "wale"; // = "wale";
// = "sigma". // = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); // deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3); // = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti. // = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function; // wallDampingFunctionType: = 0 -- no wall function;
// = 1 - van Driest; // = 1 -- van Driest;
// = 2 - developed by Dr. Deng Xiaobing; // = 2 -- developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli. // = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type. // turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul; // = 0 -- mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul; // = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 - mu_total = max(mut ,0)+ mul. // = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model. // smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model. // waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not. // filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average 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. // isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0; int iLES = 0;
string sgsmodel = "smagorinsky"; string sgsmodel = "smagorinsky";
int deltaFunctionType = 2; int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1; int averageWidth = 1;
int monitorNegativeConstant = 0; int monitorNegativeConstant = 0;
//----------------------------------------------------------------------- #************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas # # Other Parameters for Hypersonic Non-equilibrium Gas *
//----------------------------------------------------------------------- #************************************************************************
// dg_high_order: // dg_high_order:
// 0 -- generic order accuracy. // 0 -- generic order accuracy.
// 1 -- high order accuracy. // 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes. // 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files. // 1 -- gas model is imported from library files.
// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver,
// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver.
// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps.
// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual.
// nm: Equation number of the physics, but is out of commision now. // nm: Equation number of the physics, but is out of commision now.
// 4 -- for 2D. // 4 -- for 2D.
// 5 -- for 3D. // 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas. // 0 -- perfect gas.
// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component.
// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. // nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. // nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. // nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSlipBCModel: The computational model of slip boundary conditions. // nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip. // 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions. // 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions. // 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model. // 1 -- One-temperature model.
// 2 -- Two-temperature model. // 2 -- Two-temperature model.
// 3 -- Three-temperature model. // 3 -- Three-temperature model.
// isUseNoneqCond:
// 0 -- compute the source terms without any conditions.
// 1 -- compute the source terms using the non-equilibrium condition.
// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value.
// nIdealState: whether take all gas species as ideal gas for gas-mixture process. // nIdealState: whether take all gas species as ideal gas for gas-mixture process.
// 0 -- No. // 0 -- No.
// 1 -- Yes. // 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method. // 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the polynomial fitting method. // 1 -- the energy term is computed using the polynomial fitting method.
// 2 -- the energy term is computed using the piecewise polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method.
@ -946,14 +965,13 @@ int monitorNegativeConstant = 0;
// 1.0 -- proposed by Maxwell. // 1.0 -- proposed by Maxwell.
// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. // sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall.
// 1.146 -- proposed for an additional "fictitious" velocity slip. // 1.146 -- proposed for an additional "fictitious" velocity slip.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. // chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. // spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. // staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions. // nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 0 -- not freeze, the chemical reaction sources will be calculated. // 0 -- not freeze, the chemical reaction sources will be calculated.
// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te // 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.
// veTemperatureMin: The minimum of Tv and Te.
// maxViscous: the maximum of Viscous. // maxViscous: the maximum of Viscous.
// trTemperatureMin: the minimum value of trTemperature. // trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature. // veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species // nSpeciesLimit: limitter of gas species
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction // nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0. // 0 -- method 0.
// 1 -- method 1. // 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid // nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef // nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource // nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource // nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori.) // 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New) // 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature. // nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs // 0 -- not used.
// 0 -- not used // 1 -- used.
// 1 -- used // nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// nDiagonalModified: Modified on Diagonal // 1 -- new.
// 0 -- not used // nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 1 -- Ori. // 0 -- not used.
// 2 -- new // 1 -- new.
// nGradPrimtiveMethod: // nGradPrimtiveMethod:
// 0 -- Ori. // 0 -- Ori.
// 1 -- new // 1 -- new.
// nAblation: // nAblation:
// 0 -- The wall ablation is not computed. // 0 -- The wall ablation is not computed.
// 1 -- The wall ablation is computed. // 1 -- The wall ablation is computed.
@ -1017,8 +1033,8 @@ int monitorNegativeConstant = 0;
// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. // "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. // "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting. // "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©. // for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©. // for unstruct solver mixing multi-species<65><73>O2 NO CO CO2 H2 N2 Air CH4<48><34>.
// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // For self-definition model, the gasfile is used to indicate the file path of the new gas model.
// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma.
// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation.
// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation.
// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation.
// useHyflowSetting : Setting for HyFLOW GUI.
// 0 -- PHengLEI
// 1 -- HyFLOW
// nProtectData: Use the continuation file data protection mechanism. // nProtectData: Use the continuation file data protection mechanism.
// 0 -- no // 0 -- no.
// 1 -- yes // 1 -- yes.
// nTvChange: Judge whether the Tv equals Ttr.
// 0 -- yes.
// 1 -- no.
// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions.
// nFraction: the initial fractions type of species.
// 0 -- mass fraction.
// 1 -- mole fraction.
int dg_high_order = 0; int dg_high_order = 0;
int iapplication = 0; int iapplication = 0;
int isAdaptiveSolver = 0; int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1; double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0; double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0; double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0; int nDebug = 0;
int nSpeciesLimit = 1; int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5; int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1; int veTemperatureMinModified = 1;
int nDiagonalModified = 0; int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1; int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1; int nInviscidFluxModify = 1;
int nQlLimitMethod = 2; int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1; int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0; int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0; int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0; int nAblation = 0;
int isInjection = 0; int isInjection = 0;
int nViscosityModel = 0; int nViscosityModel = 0;
int nMarsModel = 0; int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5"; string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; //string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2"; string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2"; //string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0"; //string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0; int nContinueModel = 0;
int nChemicalFlowStep = 0; int nChemicalFlowStep = 0;
int ifStartFromPerfectGasResults = 0; int ifStartFromPerfectGasResults = 0;
int isUseNoneqCond = 0;
double frozenCondition = 0.01;
int nLeakageMonitor = 0;
double totalLeakageVolume = 1000.0;
double monitorThresholdValue = 0.05;
double sprayFactor = 0.0;
######################################################################### #########################################################################
// Multi-Grid parameters. // Multi-Grid parameters.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order. // 1 -- zero order.
// 2 -- first-order. (default) // 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit. // mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1; int nMGLevel = 1;
int MGCoarsestIteration = 1; int MGCoarsestIteration = 1;
int MGPreIteration = 1; int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat"; string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
######################################################################### #************************************************************************
# High Order Struct Solver # # High Order Struct Solver *
######################################################################### #************************************************************************
// isFVMOrFDM: // isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method. // 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method. // 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not. // codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-overlapping grid. // 0 -- NON-overlapping grid.
// 1 -- Overlapping grid. // 1 -- Overlapping grid.
// oversetInterpolationMethod: the method of overset interpolation while field simulation // oversetInterpolationMethod: the method of overset interpolation while field simulation.
// 0 -- set the acceptor cell value by donor cell value. // 0 -- set the acceptor cell value by donor cell value.
// 1 -- set the acceptor cell value by distance weight of donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value.
// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated.
// 0 -- no.
// 1 -- yes.
// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in
// the current overset grid(only for three dimension).
// 0 -- no.
// 1 -- yes.
// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid.
// 0 -- no.
// 1 -- yes.
// walldistMainZone: The initial value of background grid which does not exist wall boundary condition.
// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell.
// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region.
// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary.
// 0 -- one layer.
// 1 -- two layers.
// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region.
// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure.
// 0 -- no.
// 1 -- yes.
int codeOfOversetGrid = 0; int codeOfOversetGrid = 0;
int oversetInterpolationMethod = 0; int oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0; int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0; int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0; int outTecplotOverset = 0;
int outPutOversetVisualization = 0; int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2; int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------ // ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0; double referenceVelocity = 1.0;
double referenceDensity = 1.0; double referenceDensity = 1.0;
int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
int strategyForGCLSource = 0; //0-present; 1-Ahn; int strategyForGCLSource = 0; // 0-present; 1-Ahn.
//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton // 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton.
int methodForKineticEquation = 0; int methodForKineticEquation = 0;
double relaxParameterOfKinetic = 1.0; double relaxParameterOfKinetic = 1.0;
######################################################################### #************************************************************************
# motive information # # motive information *
######################################################################### #************************************************************************
int numberOfMovingBodies = 1; int numberOfMovingBodies = 1;
############################## body0 ############################## ############################## body0 ##############################
//mass of parts // mass of parts.
double mass_0 = 1.0; double mass_0 = 1.0;
//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz // gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_0 = 0.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz.
double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
//initial six DOF position information of parts. xc yc zc // initial six DOF position information of parts. xc yc zc.
double massCenter_0[] = 0.0, 0.0, 0.0; double massCenter_0[] = 0.0, 0.0, 0.0;
//initial six DOF position information of parts. angleX angleY angleZ // if reset mass center while restart.
int resetMassCenter_0 = 0;
// position offset of parts. dx dy dz.
double massCenterDxyz_0[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_0[] = 0.0, 0.0, 0.0; double attitudeAngle_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. vc vy vz // initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_0[] = 0.0, 0.0, 0.0; double massCenterVelocity_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. omigX omigY omigZ // initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_0[] = 0.0, 0.0, 0.0; double angularVelocity_0[] = 0.0, 0.0, 0.0;
// the object that the parts belong to. // the object that the parts belong to.
int fartherIndex_0 = -1; int fartherIndex_0 = -1;
//the assembly position of the parts. xc yc zc angleX angleY angleZ // the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
// the move pattern of the parts. // the move pattern of the parts.
// -1 given motion partten. // -1 given motion partten.
@ -1349,23 +1403,24 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0
int RBDMethod_0 = 0; int RBDMethod_0 = 0;
double amplitude_0 = 0.0; double amplitude_0 = 0.0;
double reduceFrequency_0 = 0.0; double reduceFrequency_0 = 0.0;
//direction of rotation // direction of rotation.
// 1 -- clockwise from the point of view along the positive x axis. // 1 -- clockwise from the point of view along the positive x axis.
// -1 -- anticlockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1; int direction_0 = -1;
double rotateFrequency_0 = 0.0; double rotateFrequency_0 = 0.0;
//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; //string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter";
//additional force (system axis) fX fY fZ // dimensional physical time for additional force(s).
double addedForceTime_0[] = 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_0[] = 0.0, 0.0, 0.0; double addedForce_0[] = 0.0, 0.0, 0.0;
//additional moment of Force (system axis) mX mY mZ // additional moment(inertia system) mX mY mZ.
double addedMoment_0[] = 0.0, 0.0, 0.0; double addedMoment_0[] = 0.0, 0.0, 0.0;
// the deformation method of the parts. // the deformation method of the parts.
int morphing_0 = 0; int morphing_0 = 0;
// post indentify // post indentify.
int integralOrder = 4; int integralOrder = 4;
// ---------------- ATP read -------------------------------------------- // ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0; //@int inflowParaType = 0;
//@double refReNumber = 6.5e6; //@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0; //@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0; //@double refDimensionalDensity = 0;
//@string weatherDataFilePath = "./WRFData/";
######################################################################### //@double longitude = 110.95
# Old Parameter # //@double latitude = 19.61;
######################################################################### #************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0; int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
######################################################################### //double partialCFL[] = [0.0];
# Incompressible Parameter # //double partialSpeedCoef[] = [0.0];
######################################################################### //double partialSpeed[] = [0.0];
//double partialAttackd[] = [0.0];
//double partialSlide[] = [0.0];
//double partialPressure[] = [0.0];
//double partialTemperature[] = [0.0];
//double partialMassFractions[] = [0.0];
#************************************************************************
# Incompressible Parameter *
#************************************************************************
int isSolveEnergyEquation = 0; int isSolveEnergyEquation = 0;
int isSolveTurbEquation = 0; int isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0; int isSolveSpeciesEquation = 0;

View File

@ -4,9 +4,12 @@
// gridtype: Grid type for generation, conversion, reconstruction, merging. // gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid. // 0 -- Unstructured grid.
// 1 -- Structured grid. // 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process. // from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE. // -1 -- MULTI_TYPE.
// 1 -- PHengLEI, *.fts. // 1 -- PHengLEI, *.fts.
@ -18,7 +21,9 @@
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. // 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
// 8 -- GMSH, *.msh. // 8 -- GMSH, *.msh.
int gridtype = 0; int gridtype = 0;
int axisup = 1; int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
int from_gtype = 5; int from_gtype = 5;
######################################################################### #########################################################################

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows + // Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center + // China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 + // (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
########################################################################### ###########################################################################
# Default parameters for Grid conversion # # Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0; int multiblock = 0;
int iadapt = 0; int iadapt = 0;
int SymmetryFaceVector = 1; int SymmetryFaceVector = 1;
int gridReorder = 0; int gridReorder = 0;
int faceReorderMethod = 0; int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
int axisup = 1; // 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition".
// 0 -- Interface. (default) // 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver. // 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Grid data type # # Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1; int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas"; string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = ""; string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------ // ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction. which only support one direction.
// rotationAngle: The relative angle between two periodic face. // rotationAngle: The relative angle between two periodic face.
which is recorded in degrees. which is recorded in degrees.
int periodicType = 0; int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0]; double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0; double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid. // 2 -- refine structured grid.
// maxproc: The number of partition zones that want to be divided into. // maxproc: The number of partition zones that want to be divided into.
// numberOfMultifile: The number of partition grid files that want to be dumped out. // numberOfMultifile: The number of partition grid files that want to be dumped out.
int pgridtype = 0; int pgridtype = 0;
int maxproc = 4; int maxproc = 4;
int numberOfMultifile = 1; int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1]; int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy: // parallelStrategy:
//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. // 0 -- each zone is assigned to the one that defined in grid partition procedure.
//! -# 1 : random assigned for each zone or by some else ways. // 1 -- random assigned for each zone or by some else ways.
int parallelStrategy = 1; int parallelStrategy = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance. // 1 -- perfect balance.
// maxproc -- perfect imbalance. // maxproc -- perfect imbalance.
// 1.05 -- recommended. // 1.05 -- recommended.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int npartmethod = 1; int npartmethod = 1;
int parallelPartitionMethod = 2; int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. // intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual file 'res.dat' saved. // intervalStepRes: The step intervals for residual file 'res.dat' saved.
// 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 maxSimuStep = 20000; int maxSimuStep = 20000;
int intervalStepFlow = 1000; int intervalStepFlow = 1000;
int intervalStepPlot = 1000; int intervalStepPlot = 1000;
int intervalStepSample = 1000; int intervalStepSample = 1000;
int intervalStepForce = 100; int intervalStepForce = 100;
int intervalStepRes = 10; int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible: // compressible:
// 0 -- incompressible flow. // 0 -- incompressible flow.
// 1 -- compressible flow. (default) // 1 -- compressible flow. (default)
int compressible = 1; int compressible = 1;
// 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)
// Kprec: The coefficient K for the cut-off velocity.
// 1.0~3.0 is suggested. (default, 3.0)
// preconFarfieldBCMethod: The precondition method for farfield boundary condition.
// 0 -- precondition far-field boundary based on riemann invariants.
// 1 -- Turkel's simplified far-field boundary condition.
int ifLowSpeedPrecon = 0;
double Kprec = 3.0;
int preconFarfieldBCMethod = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# CFD Control Parameter # # CFD Control Parameter #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions. // 0 -- the nondimensional conditions.
// 1 -- the flight conditions. // 1 -- the flight conditions.
// 2 -- the experiment conditions. // 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions. // 3 -- the subsonic boundary conditions. (Useless!)
// 4 -- the condition that the velocity, temperature and density are given. // 4 -- the condition that the velocity, temperature and density are given.
// 5 -- the condition that the velocity, temperature and pressure are given. // 5 -- the condition that the velocity, temperature and pressure are given.
//flowInitMethod: Flow field initialization method.
// 0 -- The entire flow field is initialized according to Infinite velocity.
// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m. // 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. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// freestream_vibration_temperature: Dimensional freestream vibration temperature. // freestream_vibration_temperature: Dimensional freestream vibration temperature.
@ -303,11 +314,11 @@ int compressible = 1;
// condition is radiation equilibrium temperature, and 0.8 is the default value. // condition is radiation equilibrium temperature, and 0.8 is the default value.
// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol.
// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on.
int directionMethod = 0; int directionMethod = 0;
double refMachNumber = 0.73; double refMachNumber = 0.73;
double attackd = 2.79; double attackd = 2.79;
double angleSlide = 0.00; double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0; int inflowParaType = 0;
double refReNumber = 6.5e6; double refReNumber = 6.5e6;
@ -321,14 +332,6 @@ double freestream_vibration_temperature = 300.00;
//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). //double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2).
//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). //double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)).
//int inflowParaType = 3;
//int nsubsonicInlet = 1;
//int nsubsonicOutlet = 1;
//string inLetFileName = "./bin/subsonicInlet.hypara";
//string outLetFileName = "./bin/subsonicOutlet.hypara";
//double refDimensionalTemperature = 288.144;
//double refDimensionalPressure = 1.01313E05;
// The velocity, temperature and density are fixed. // The velocity, temperature and density are fixed.
//int inflowParaType = 4; //int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0; //double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed. // The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6; //int inflowParaType = 6;
//double refDimensionalTemperature = 293; //double refDimensionalTemperature = 293.0;
//double refDimensionalPressure = 8886.06; //double refDimensionalPressure = 8886.06;
// The velocity, temperature and pressure are read from file.
//int inflowParaType = 7;
//string weatherDataFilePath = "./WRFData/";
//double longitude = 110.95
//double latitude = 19.61;
double wallTemperature = -1.0; double wallTemperature = -1.0;
double radiationCoef = 0.8; double radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter. double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol. double refMolecularWeight = 28.9644; // unit of g/mol.
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Spatial Discretisation # # Spatial Discretisation #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
#******************************************************************* #************************************************************************
# Struct Solver * # Struct Solver *
#******************************************************************* #************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid. // inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid. // Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f". // -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe". // -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid. // isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default) // 0 -- NO. (default)
// 1 -- Yes. // 1 -- Yes.
// str_limiter_name: Limiter of struct grid. // str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". // -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter. // -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version. // -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" // -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe"; string inviscidSchemeName = "roe";
int isWennScheme = 0; int isWennScheme = 0;
string str_limiter_name = "vanalbada"; string str_limiter_name = "vanalbada";
#******************************************************************* #************************************************************************
# UnStruct Solver or Common * # UnStruct Solver or Common *
#******************************************************************* #************************************************************************
// viscousType: Viscous model. // viscousType: Viscous model.
// 0 -- Euler. // 0 -- Euler.
// 1 -- Lamilar. // 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES. // 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. // uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// Using this when solve Unstructered grid or hybrid. // Using this when solve Unstructered grid or hybrid.
// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle". // -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle",
// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+".
// uns_limiter_name: Limiter of Unstruct grid. // uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod". // -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st". // -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter. // -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term. // uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2". // -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used. // 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// It is used to scale the default Roe entropy fix coefficients. // It is used to scale the default Roe entropy fix coefficients.
// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 // AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0.
//int viscousType = 0; //int viscousType = 0;
//string viscousName = "Euler"; //string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0; double AusmpwPlusLimiter = 1.0;
//----------------------------------------------------------------------- #************************************************************************
# Temporal Discretisation # # Temporal Discretisation *
//----------------------------------------------------------------------- #************************************************************************
// iunsteady: Steady or unsteady. // iunsteady: Steady or unsteady.
// 0 -- steady. // 0 -- steady.
// 1 -- unsteay. // 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration. // 6 -- Jacobian iteration.
// 7 -- Line LU-SGS. // 7 -- Line LU-SGS.
// 8 -- Matrix LU-SGS. // 8 -- Matrix LU-SGS.
// 9 -- GMRES.
// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. // iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation.
// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. // Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method.
// CFLStart: Started cfl number. // CFLStart: Started cfl number.
// CFLEnd: End cfl number. // CFLEnd: End cfl number.
// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. // CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd.
// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration.
// OriginalTscheme : Used for LUSGS and GMres hybrid computing.
// useLUSGSprecond: Initialize flow field for GMRES.
// 0 --Initialize by first order Jacobian matrix.
// 1 --Initialize by LUSGS.
// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field.
// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) // ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. // swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. // nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function. // 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step. // RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step. // lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0; int iunsteady = 0;
double physicalTimeStep = 0.01; double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001; double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000; int startStatisticStep = 800000;
double statisticalTimePeriod = -1.0; double statisticalTimePeriod = -1.0;
int statisticMethod = 0; int statisticMethod = 0;
int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2.
int methodOfDualTime = 3; int methodOfDualTime = 3;
int min_sub_iter = 50; int min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01; double CFLStart = 0.01;
double CFLEnd = 10.0; double CFLEnd = 10.0;
int CFLVaryStep = 500; int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2; double pMaxForCFL = 0.2;
double pMinForCFL = 0.1; double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2; double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01; double visl_min = 0.01;
double turbCFLScale = 1.0; double turbCFLScale = 1.0;
double csrv = 2.0; double csrv = 1.0;
double timemax = 1.0e10; double timemax = 1.0e10;
double dtsave = -1.0; double dtsave = -1.0;
int maxale = 10; int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4; //int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
#************************************************************************
//----------------------------------------------------------------------- # File In or Out *
# File In or Out # #************************************************************************
//-----------------------------------------------------------------------
// numberOfGridGroups: The number of grid groups. // numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path, // gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory. // which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance. // nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance. // 0 -- Compute wall distance.
// 1 -- Not compute. // 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. // protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. // wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1; int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts"; string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = ""; string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat"; string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat"; string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat"; string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat"; string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat"; string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt"; string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat"; string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.dat"; string protectionFile1 = "results/flow1.dat";
string wall_heatfluxfile = "results/wall_heatflux.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat";
string protectionTurbFile0 = "results/turb0.dat";
string protectionTurbFile1 = "results/turb1.dat";
string protectionTransitionFile0 = "results/transition0.dat";
string protectionTransitionFile1 = "results/transition1.dat";
int nDumpSurfaceInfo = 0; int nDumpSurfaceInfo = 0;
string wall_varfile = ""; string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat"; string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat"; string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt"; string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile. // visualfileType: The file type of visualfile.
// 0 -- Tecplot binary. // 0 -- Tecplot binary.
// 1 -- Tecplot ASCII. // 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1; int visualfileType = 1;
// samplefileMode: The dump mode of sample file. // samplefileMode: The dump mode of sample file.
@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0];
// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36),
// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40),
// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), // -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81) // -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- specific heat ratio(gama, 56) // -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big. // Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition---------------- //-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall. // nVisualWallVariables: The number of visual variables on wall.
// visualWallVariables : dumped variable types, listed as following: // visualWallVariables : dumped variable types, listed as following:
// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), // -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4),
// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), // -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8),
// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), // -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11),
// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) // -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15),
// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) // -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19),
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) // -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8; int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
@ -739,7 +761,9 @@ int dumpStandardModel = 0;
// 1 -- Real cell where the probe is located. // 1 -- Real cell where the probe is located.
// nProbeVariables: Number of variables want to be dumped for probes monitered. // nProbeVariables: Number of variables want to be dumped for probes monitered.
// probeVariables : Variable types dumped, listed as following: // probeVariables : Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). // -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9),
// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12).
// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!!
// probeVariables order must from small to big. // probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0; int searchCellsMethod = 0;
int nProbeVariables = 7; int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0; int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter # #************************************************************************
//----------------------------------------------------------------------- # Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence. // turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source. // kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original. // 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type // transitionType: transition model type
// 0 -- none. // 0 -- none.
// 2 -- gama-re-theta. // 2 -- gama-re-theta.
// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition // turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition.
// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not // freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not.
int turbInterval = 1; int turbInterval = 1;
int turbOrderStruct = 2; int turbOrderStruct = 2;
int kindOfTurbSource = 0; int kindOfTurbSource = 0;
int mod_turb_res = 0; int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3; double freeStreamViscosity = 1.0e-3;
double muoo = 3.0; double muoo = 3.0;
double kwoo = 5.0; double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0; int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0; double freeDecayXLocation = 0.0;
int compressibleCorrection = 0; int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1; int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max. // maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10; double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0; int monitor_vistmax = 0;
//----------------------------------------------------------------------- #************************************************************************
# LES Parameter # # LES Parameter *
//----------------------------------------------------------------------- #************************************************************************
// iLES: Create LESSolver or not. // iLES: Create LESSolver or not.
// = 1 - Create LESSolver; // = 1 -- Create LESSolver;
// != 1 - not. // != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb. // amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random 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. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter; // = 0 -- in only first sub-iter;
// != 0 - in every sub-iter. // != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not. // ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not. // ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not; // = 0 -- not;
// != 0 - Add body force. // != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not. // bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb. // utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model. // sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom"; // = "dsmCom";
// = "wale"; // = "wale";
// = "sigma". // = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); // deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3); // = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti. // = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function; // wallDampingFunctionType: = 0 -- no wall function;
// = 1 - van Driest; // = 1 -- van Driest;
// = 2 - developed by Dr. Deng Xiaobing; // = 2 -- developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli. // = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type. // turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul; // = 0 -- mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul; // = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 - mu_total = max(mut ,0)+ mul. // = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model. // smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model. // waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not. // filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average 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. // isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0; int iLES = 0;
string sgsmodel = "smagorinsky"; string sgsmodel = "smagorinsky";
int deltaFunctionType = 2; int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1; int averageWidth = 1;
int monitorNegativeConstant = 0; int monitorNegativeConstant = 0;
//----------------------------------------------------------------------- #************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas # # Other Parameters for Hypersonic Non-equilibrium Gas *
//----------------------------------------------------------------------- #************************************************************************
// dg_high_order: // dg_high_order:
// 0 -- generic order accuracy. // 0 -- generic order accuracy.
// 1 -- high order accuracy. // 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes. // 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files. // 1 -- gas model is imported from library files.
// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver,
// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver.
// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps.
// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual.
// nm: Equation number of the physics, but is out of commision now. // nm: Equation number of the physics, but is out of commision now.
// 4 -- for 2D. // 4 -- for 2D.
// 5 -- for 3D. // 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas. // 0 -- perfect gas.
// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component.
// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. // nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. // nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. // nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSlipBCModel: The computational model of slip boundary conditions. // nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip. // 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions. // 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions. // 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model. // 1 -- One-temperature model.
// 2 -- Two-temperature model. // 2 -- Two-temperature model.
// 3 -- Three-temperature model. // 3 -- Three-temperature model.
// isUseNoneqCond:
// 0 -- compute the source terms without any conditions.
// 1 -- compute the source terms using the non-equilibrium condition.
// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value.
// nIdealState: whether take all gas species as ideal gas for gas-mixture process. // nIdealState: whether take all gas species as ideal gas for gas-mixture process.
// 0 -- No. // 0 -- No.
// 1 -- Yes. // 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method. // 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the polynomial fitting method. // 1 -- the energy term is computed using the polynomial fitting method.
// 2 -- the energy term is computed using the piecewise polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method.
@ -946,14 +965,13 @@ int monitorNegativeConstant = 0;
// 1.0 -- proposed by Maxwell. // 1.0 -- proposed by Maxwell.
// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. // sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall.
// 1.146 -- proposed for an additional "fictitious" velocity slip. // 1.146 -- proposed for an additional "fictitious" velocity slip.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. // chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. // spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. // staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions. // nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 0 -- not freeze, the chemical reaction sources will be calculated. // 0 -- not freeze, the chemical reaction sources will be calculated.
// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te // 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.
// veTemperatureMin: The minimum of Tv and Te.
// maxViscous: the maximum of Viscous. // maxViscous: the maximum of Viscous.
// trTemperatureMin: the minimum value of trTemperature. // trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature. // veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species // nSpeciesLimit: limitter of gas species
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction // nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0. // 0 -- method 0.
// 1 -- method 1. // 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid // nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef // nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource // nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource // nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori.) // 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New) // 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature. // nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs // 0 -- not used.
// 0 -- not used // 1 -- used.
// 1 -- used // nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// nDiagonalModified: Modified on Diagonal // 1 -- new.
// 0 -- not used // nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 1 -- Ori. // 0 -- not used.
// 2 -- new // 1 -- new.
// nGradPrimtiveMethod: // nGradPrimtiveMethod:
// 0 -- Ori. // 0 -- Ori.
// 1 -- new // 1 -- new.
// nAblation: // nAblation:
// 0 -- The wall ablation is not computed. // 0 -- The wall ablation is not computed.
// 1 -- The wall ablation is computed. // 1 -- The wall ablation is computed.
@ -1017,8 +1033,8 @@ int monitorNegativeConstant = 0;
// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. // "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. // "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting. // "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©. // for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©. // for unstruct solver mixing multi-species<65><73>O2 NO CO CO2 H2 N2 Air CH4<48><34>.
// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // For self-definition model, the gasfile is used to indicate the file path of the new gas model.
// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma.
// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation.
// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation.
// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation.
// useHyflowSetting : Setting for HyFLOW GUI.
// 0 -- PHengLEI
// 1 -- HyFLOW
// nProtectData: Use the continuation file data protection mechanism. // nProtectData: Use the continuation file data protection mechanism.
// 0 -- no // 0 -- no.
// 1 -- yes // 1 -- yes.
// nTvChange: Judge whether the Tv equals Ttr.
// 0 -- yes.
// 1 -- no.
// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions.
// nFraction: the initial fractions type of species.
// 0 -- mass fraction.
// 1 -- mole fraction.
int dg_high_order = 0; int dg_high_order = 0;
int iapplication = 0; int iapplication = 0;
int isAdaptiveSolver = 0; int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1; double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0; double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0; double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0; int nDebug = 0;
int nSpeciesLimit = 1; int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5; int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1; int veTemperatureMinModified = 1;
int nDiagonalModified = 0; int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1; int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1; int nInviscidFluxModify = 1;
int nQlLimitMethod = 2; int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1; int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0; int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0; int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0; int nAblation = 0;
int isInjection = 0; int isInjection = 0;
int nViscosityModel = 0; int nViscosityModel = 0;
int nMarsModel = 0; int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5"; string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; //string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2"; string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2"; //string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0"; //string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0; int nContinueModel = 0;
int nChemicalFlowStep = 0; int nChemicalFlowStep = 0;
int ifStartFromPerfectGasResults = 0; int ifStartFromPerfectGasResults = 0;
int isUseNoneqCond = 0;
double frozenCondition = 0.01;
int nLeakageMonitor = 0;
double totalLeakageVolume = 1000.0;
double monitorThresholdValue = 0.05;
double sprayFactor = 0.0;
######################################################################### #########################################################################
// Multi-Grid parameters. // Multi-Grid parameters.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order. // 1 -- zero order.
// 2 -- first-order. (default) // 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit. // mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1; int nMGLevel = 1;
int MGCoarsestIteration = 1; int MGCoarsestIteration = 1;
int MGPreIteration = 1; int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat"; string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
######################################################################### #************************************************************************
# High Order Struct Solver # # High Order Struct Solver *
######################################################################### #************************************************************************
// isFVMOrFDM: // isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method. // 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method. // 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not. // codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-overlapping grid. // 0 -- NON-overlapping grid.
// 1 -- Overlapping grid. // 1 -- Overlapping grid.
// oversetInterpolationMethod: the method of overset interpolation while field simulation // oversetInterpolationMethod: the method of overset interpolation while field simulation.
// 0 -- set the acceptor cell value by donor cell value. // 0 -- set the acceptor cell value by donor cell value.
// 1 -- set the acceptor cell value by distance weight of donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value.
// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated.
// 0 -- no.
// 1 -- yes.
// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in
// the current overset grid(only for three dimension).
// 0 -- no.
// 1 -- yes.
// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid.
// 0 -- no.
// 1 -- yes.
// walldistMainZone: The initial value of background grid which does not exist wall boundary condition.
// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell.
// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region.
// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary.
// 0 -- one layer.
// 1 -- two layers.
// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region.
// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure.
// 0 -- no.
// 1 -- yes.
int codeOfOversetGrid = 0; int codeOfOversetGrid = 0;
int oversetInterpolationMethod = 0; int oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0; int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0; int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0; int outTecplotOverset = 0;
int outPutOversetVisualization = 0; int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2; int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------ // ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0; double referenceVelocity = 1.0;
double referenceDensity = 1.0; double referenceDensity = 1.0;
int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
int strategyForGCLSource = 0; //0-present; 1-Ahn; int strategyForGCLSource = 0; // 0-present; 1-Ahn.
//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton // 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton.
int methodForKineticEquation = 0; int methodForKineticEquation = 0;
double relaxParameterOfKinetic = 1.0; double relaxParameterOfKinetic = 1.0;
######################################################################### #************************************************************************
# motive information # # motive information *
######################################################################### #************************************************************************
int numberOfMovingBodies = 1; int numberOfMovingBodies = 1;
############################## body0 ############################## ############################## body0 ##############################
//mass of parts // mass of parts.
double mass_0 = 1.0; double mass_0 = 1.0;
//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz // gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_0 = 0.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz.
double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
//initial six DOF position information of parts. xc yc zc // initial six DOF position information of parts. xc yc zc.
double massCenter_0[] = 0.0, 0.0, 0.0; double massCenter_0[] = 0.0, 0.0, 0.0;
//initial six DOF position information of parts. angleX angleY angleZ // if reset mass center while restart.
int resetMassCenter_0 = 0;
// position offset of parts. dx dy dz.
double massCenterDxyz_0[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_0[] = 0.0, 0.0, 0.0; double attitudeAngle_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. vc vy vz // initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_0[] = 0.0, 0.0, 0.0; double massCenterVelocity_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. omigX omigY omigZ // initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_0[] = 0.0, 0.0, 0.0; double angularVelocity_0[] = 0.0, 0.0, 0.0;
// the object that the parts belong to. // the object that the parts belong to.
int fartherIndex_0 = -1; int fartherIndex_0 = -1;
//the assembly position of the parts. xc yc zc angleX angleY angleZ // the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
// the move pattern of the parts. // the move pattern of the parts.
// -1 given motion partten. // -1 given motion partten.
@ -1349,23 +1403,24 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0
int RBDMethod_0 = 0; int RBDMethod_0 = 0;
double amplitude_0 = 0.0; double amplitude_0 = 0.0;
double reduceFrequency_0 = 0.0; double reduceFrequency_0 = 0.0;
//direction of rotation // direction of rotation.
// 1 -- clockwise from the point of view along the positive x axis. // 1 -- clockwise from the point of view along the positive x axis.
// -1 -- anticlockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1; int direction_0 = -1;
double rotateFrequency_0 = 0.0; double rotateFrequency_0 = 0.0;
//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; //string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter";
//additional force (system axis) fX fY fZ // dimensional physical time for additional force(s).
double addedForceTime_0[] = 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_0[] = 0.0, 0.0, 0.0; double addedForce_0[] = 0.0, 0.0, 0.0;
//additional moment of Force (system axis) mX mY mZ // additional moment(inertia system) mX mY mZ.
double addedMoment_0[] = 0.0, 0.0, 0.0; double addedMoment_0[] = 0.0, 0.0, 0.0;
// the deformation method of the parts. // the deformation method of the parts.
int morphing_0 = 0; int morphing_0 = 0;
// post indentify // post indentify.
int integralOrder = 4; int integralOrder = 4;
// ---------------- ATP read -------------------------------------------- // ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0; //@int inflowParaType = 0;
//@double refReNumber = 6.5e6; //@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0; //@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0; //@double refDimensionalDensity = 0;
//@string weatherDataFilePath = "./WRFData/";
######################################################################### //@double longitude = 110.95
# Old Parameter # //@double latitude = 19.61;
######################################################################### #************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0; int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
######################################################################### //double partialCFL[] = [0.0];
# Incompressible Parameter # //double partialSpeedCoef[] = [0.0];
######################################################################### //double partialSpeed[] = [0.0];
//double partialAttackd[] = [0.0];
//double partialSlide[] = [0.0];
//double partialPressure[] = [0.0];
//double partialTemperature[] = [0.0];
//double partialMassFractions[] = [0.0];
#************************************************************************
# Incompressible Parameter *
#************************************************************************
int isSolveEnergyEquation = 0; int isSolveEnergyEquation = 0;
int isSolveTurbEquation = 0; int isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0; int isSolveSpeciesEquation = 0;

View File

@ -4,9 +4,12 @@
// gridtype: Grid type for generation, conversion, reconstruction, merging. // gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid. // 0 -- Unstructured grid.
// 1 -- Structured grid. // 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process. // from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE. // -1 -- MULTI_TYPE.
// 1 -- PHengLEI, *.fts. // 1 -- PHengLEI, *.fts.
@ -18,7 +21,9 @@
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. // 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
// 8 -- GMSH, *.msh. // 8 -- GMSH, *.msh.
int gridtype = 0; int gridtype = 0;
int axisup = 2; int nAxisRotateTimes = 1;
int axisRotateOrder[] = [1];
double axisRotateAngles[]= [90.0];
int from_gtype = 2; int from_gtype = 2;
######################################################################### #########################################################################

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows + // Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center + // China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 + // (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
########################################################################### ###########################################################################
# Default parameters for Grid conversion # # Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0; int multiblock = 0;
int iadapt = 0; int iadapt = 0;
int SymmetryFaceVector = 1; int SymmetryFaceVector = 1;
int gridReorder = 0; int gridReorder = 0;
int faceReorderMethod = 0; int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
int axisup = 1; // 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition".
// 0 -- Interface. (default) // 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver. // 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Grid data type # # Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1; int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas"; string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = ""; string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------ // ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction. which only support one direction.
// rotationAngle: The relative angle between two periodic face. // rotationAngle: The relative angle between two periodic face.
which is recorded in degrees. which is recorded in degrees.
int periodicType = 0; int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0]; double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0; double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid. // 2 -- refine structured grid.
// maxproc: The number of partition zones that want to be divided into. // maxproc: The number of partition zones that want to be divided into.
// numberOfMultifile: The number of partition grid files that want to be dumped out. // numberOfMultifile: The number of partition grid files that want to be dumped out.
int pgridtype = 0; int pgridtype = 0;
int maxproc = 4; int maxproc = 4;
int numberOfMultifile = 1; int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1]; int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy: // parallelStrategy:
//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. // 0 -- each zone is assigned to the one that defined in grid partition procedure.
//! -# 1 : random assigned for each zone or by some else ways. // 1 -- random assigned for each zone or by some else ways.
int parallelStrategy = 1; int parallelStrategy = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance. // 1 -- perfect balance.
// maxproc -- perfect imbalance. // maxproc -- perfect imbalance.
// 1.05 -- recommended. // 1.05 -- recommended.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int npartmethod = 1; int npartmethod = 1;
int parallelPartitionMethod = 2; int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. // intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual file 'res.dat' saved. // intervalStepRes: The step intervals for residual file 'res.dat' saved.
// 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 maxSimuStep = 20000; int maxSimuStep = 20000;
int intervalStepFlow = 1000; int intervalStepFlow = 1000;
int intervalStepPlot = 1000; int intervalStepPlot = 1000;
int intervalStepSample = 1000; int intervalStepSample = 1000;
int intervalStepForce = 100; int intervalStepForce = 100;
int intervalStepRes = 10; int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible: // compressible:
// 0 -- incompressible flow. // 0 -- incompressible flow.
// 1 -- compressible flow. (default) // 1 -- compressible flow. (default)
int compressible = 1; int compressible = 1;
// 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)
// Kprec: The coefficient K for the cut-off velocity.
// 1.0~3.0 is suggested. (default, 3.0)
// preconFarfieldBCMethod: The precondition method for farfield boundary condition.
// 0 -- precondition far-field boundary based on riemann invariants.
// 1 -- Turkel's simplified far-field boundary condition.
int ifLowSpeedPrecon = 0;
double Kprec = 3.0;
int preconFarfieldBCMethod = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# CFD Control Parameter # # CFD Control Parameter #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions. // 0 -- the nondimensional conditions.
// 1 -- the flight conditions. // 1 -- the flight conditions.
// 2 -- the experiment conditions. // 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions. // 3 -- the subsonic boundary conditions. (Useless!)
// 4 -- the condition that the velocity, temperature and density are given. // 4 -- the condition that the velocity, temperature and density are given.
// 5 -- the condition that the velocity, temperature and pressure are given. // 5 -- the condition that the velocity, temperature and pressure are given.
//flowInitMethod: Flow field initialization method.
// 0 -- The entire flow field is initialized according to Infinite velocity.
// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m. // 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. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// freestream_vibration_temperature: Dimensional freestream vibration temperature. // freestream_vibration_temperature: Dimensional freestream vibration temperature.
@ -303,11 +314,11 @@ int compressible = 1;
// condition is radiation equilibrium temperature, and 0.8 is the default value. // condition is radiation equilibrium temperature, and 0.8 is the default value.
// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol.
// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on.
int directionMethod = 0; int directionMethod = 0;
double refMachNumber = 0.73; double refMachNumber = 0.73;
double attackd = 2.79; double attackd = 2.79;
double angleSlide = 0.00; double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0; int inflowParaType = 0;
double refReNumber = 6.5e6; double refReNumber = 6.5e6;
@ -321,14 +332,6 @@ double freestream_vibration_temperature = 300.00;
//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). //double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2).
//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). //double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)).
//int inflowParaType = 3;
//int nsubsonicInlet = 1;
//int nsubsonicOutlet = 1;
//string inLetFileName = "./bin/subsonicInlet.hypara";
//string outLetFileName = "./bin/subsonicOutlet.hypara";
//double refDimensionalTemperature = 288.144;
//double refDimensionalPressure = 1.01313E05;
// The velocity, temperature and density are fixed. // The velocity, temperature and density are fixed.
//int inflowParaType = 4; //int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0; //double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed. // The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6; //int inflowParaType = 6;
//double refDimensionalTemperature = 293; //double refDimensionalTemperature = 293.0;
//double refDimensionalPressure = 8886.06; //double refDimensionalPressure = 8886.06;
// The velocity, temperature and pressure are read from file.
//int inflowParaType = 7;
//string weatherDataFilePath = "./WRFData/";
//double longitude = 110.95
//double latitude = 19.61;
double wallTemperature = -1.0; double wallTemperature = -1.0;
double radiationCoef = 0.8; double radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter. double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol. double refMolecularWeight = 28.9644; // unit of g/mol.
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Spatial Discretisation # # Spatial Discretisation #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
#******************************************************************* #************************************************************************
# Struct Solver * # Struct Solver *
#******************************************************************* #************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid. // inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid. // Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f". // -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe". // -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid. // isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default) // 0 -- NO. (default)
// 1 -- Yes. // 1 -- Yes.
// str_limiter_name: Limiter of struct grid. // str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". // -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter. // -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version. // -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" // -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe"; string inviscidSchemeName = "roe";
int isWennScheme = 0; int isWennScheme = 0;
string str_limiter_name = "vanalbada"; string str_limiter_name = "vanalbada";
#******************************************************************* #************************************************************************
# UnStruct Solver or Common * # UnStruct Solver or Common *
#******************************************************************* #************************************************************************
// viscousType: Viscous model. // viscousType: Viscous model.
// 0 -- Euler. // 0 -- Euler.
// 1 -- Lamilar. // 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES. // 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. // uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// Using this when solve Unstructered grid or hybrid. // Using this when solve Unstructered grid or hybrid.
// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle". // -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle",
// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+".
// uns_limiter_name: Limiter of Unstruct grid. // uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod". // -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st". // -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter. // -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term. // uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2". // -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used. // 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// It is used to scale the default Roe entropy fix coefficients. // It is used to scale the default Roe entropy fix coefficients.
// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 // AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0.
//int viscousType = 0; //int viscousType = 0;
//string viscousName = "Euler"; //string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0; double AusmpwPlusLimiter = 1.0;
//----------------------------------------------------------------------- #************************************************************************
# Temporal Discretisation # # Temporal Discretisation *
//----------------------------------------------------------------------- #************************************************************************
// iunsteady: Steady or unsteady. // iunsteady: Steady or unsteady.
// 0 -- steady. // 0 -- steady.
// 1 -- unsteay. // 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration. // 6 -- Jacobian iteration.
// 7 -- Line LU-SGS. // 7 -- Line LU-SGS.
// 8 -- Matrix LU-SGS. // 8 -- Matrix LU-SGS.
// 9 -- GMRES.
// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. // iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation.
// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. // Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method.
// CFLStart: Started cfl number. // CFLStart: Started cfl number.
// CFLEnd: End cfl number. // CFLEnd: End cfl number.
// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. // CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd.
// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration.
// OriginalTscheme : Used for LUSGS and GMres hybrid computing.
// useLUSGSprecond: Initialize flow field for GMRES.
// 0 --Initialize by first order Jacobian matrix.
// 1 --Initialize by LUSGS.
// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field.
// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) // ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. // swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. // nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function. // 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step. // RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step. // lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0; int iunsteady = 0;
double physicalTimeStep = 0.01; double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001; double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000; int startStatisticStep = 800000;
double statisticalTimePeriod = -1.0; double statisticalTimePeriod = -1.0;
int statisticMethod = 0; int statisticMethod = 0;
int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2.
int methodOfDualTime = 3; int methodOfDualTime = 3;
int min_sub_iter = 50; int min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01; double CFLStart = 0.01;
double CFLEnd = 10.0; double CFLEnd = 10.0;
int CFLVaryStep = 500; int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2; double pMaxForCFL = 0.2;
double pMinForCFL = 0.1; double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2; double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01; double visl_min = 0.01;
double turbCFLScale = 1.0; double turbCFLScale = 1.0;
double csrv = 2.0; double csrv = 1.0;
double timemax = 1.0e10; double timemax = 1.0e10;
double dtsave = -1.0; double dtsave = -1.0;
int maxale = 10; int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4; //int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
#************************************************************************
//----------------------------------------------------------------------- # File In or Out *
# File In or Out # #************************************************************************
//-----------------------------------------------------------------------
// numberOfGridGroups: The number of grid groups. // numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path, // gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory. // which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance. // nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance. // 0 -- Compute wall distance.
// 1 -- Not compute. // 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. // protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. // wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1; int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts"; string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = ""; string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat"; string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat"; string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat"; string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat"; string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat"; string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt"; string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat"; string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.dat"; string protectionFile1 = "results/flow1.dat";
string wall_heatfluxfile = "results/wall_heatflux.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat";
string protectionTurbFile0 = "results/turb0.dat";
string protectionTurbFile1 = "results/turb1.dat";
string protectionTransitionFile0 = "results/transition0.dat";
string protectionTransitionFile1 = "results/transition1.dat";
int nDumpSurfaceInfo = 0; int nDumpSurfaceInfo = 0;
string wall_varfile = ""; string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat"; string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat"; string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt"; string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile. // visualfileType: The file type of visualfile.
// 0 -- Tecplot binary. // 0 -- Tecplot binary.
// 1 -- Tecplot ASCII. // 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1; int visualfileType = 1;
// samplefileMode: The dump mode of sample file. // samplefileMode: The dump mode of sample file.
@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0];
// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36),
// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40),
// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), // -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81) // -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- specific heat ratio(gama, 56) // -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big. // Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition---------------- //-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall. // nVisualWallVariables: The number of visual variables on wall.
// visualWallVariables : dumped variable types, listed as following: // visualWallVariables : dumped variable types, listed as following:
// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), // -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4),
// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), // -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8),
// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), // -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11),
// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) // -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15),
// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) // -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19),
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) // -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8; int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
@ -739,7 +761,9 @@ int dumpStandardModel = 0;
// 1 -- Real cell where the probe is located. // 1 -- Real cell where the probe is located.
// nProbeVariables: Number of variables want to be dumped for probes monitered. // nProbeVariables: Number of variables want to be dumped for probes monitered.
// probeVariables : Variable types dumped, listed as following: // probeVariables : Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). // -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9),
// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12).
// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!!
// probeVariables order must from small to big. // probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0; int searchCellsMethod = 0;
int nProbeVariables = 7; int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0; int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter # #************************************************************************
//----------------------------------------------------------------------- # Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence. // turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source. // kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original. // 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type // transitionType: transition model type
// 0 -- none. // 0 -- none.
// 2 -- gama-re-theta. // 2 -- gama-re-theta.
// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition // turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition.
// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not // freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not.
int turbInterval = 1; int turbInterval = 1;
int turbOrderStruct = 2; int turbOrderStruct = 2;
int kindOfTurbSource = 0; int kindOfTurbSource = 0;
int mod_turb_res = 0; int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3; double freeStreamViscosity = 1.0e-3;
double muoo = 3.0; double muoo = 3.0;
double kwoo = 5.0; double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0; int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0; double freeDecayXLocation = 0.0;
int compressibleCorrection = 0; int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1; int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max. // maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10; double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0; int monitor_vistmax = 0;
//----------------------------------------------------------------------- #************************************************************************
# LES Parameter # # LES Parameter *
//----------------------------------------------------------------------- #************************************************************************
// iLES: Create LESSolver or not. // iLES: Create LESSolver or not.
// = 1 - Create LESSolver; // = 1 -- Create LESSolver;
// != 1 - not. // != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb. // amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random 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. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter; // = 0 -- in only first sub-iter;
// != 0 - in every sub-iter. // != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not. // ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not. // ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not; // = 0 -- not;
// != 0 - Add body force. // != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not. // bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb. // utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model. // sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom"; // = "dsmCom";
// = "wale"; // = "wale";
// = "sigma". // = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); // deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3); // = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti. // = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function; // wallDampingFunctionType: = 0 -- no wall function;
// = 1 - van Driest; // = 1 -- van Driest;
// = 2 - developed by Dr. Deng Xiaobing; // = 2 -- developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli. // = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type. // turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul; // = 0 -- mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul; // = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 - mu_total = max(mut ,0)+ mul. // = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model. // smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model. // waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not. // filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average 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. // isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0; int iLES = 0;
string sgsmodel = "smagorinsky"; string sgsmodel = "smagorinsky";
int deltaFunctionType = 2; int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1; int averageWidth = 1;
int monitorNegativeConstant = 0; int monitorNegativeConstant = 0;
//----------------------------------------------------------------------- #************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas # # Other Parameters for Hypersonic Non-equilibrium Gas *
//----------------------------------------------------------------------- #************************************************************************
// dg_high_order: // dg_high_order:
// 0 -- generic order accuracy. // 0 -- generic order accuracy.
// 1 -- high order accuracy. // 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes. // 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files. // 1 -- gas model is imported from library files.
// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver,
// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver.
// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps.
// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual.
// nm: Equation number of the physics, but is out of commision now. // nm: Equation number of the physics, but is out of commision now.
// 4 -- for 2D. // 4 -- for 2D.
// 5 -- for 3D. // 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas. // 0 -- perfect gas.
// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component.
// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. // nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. // nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. // nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSlipBCModel: The computational model of slip boundary conditions. // nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip. // 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions. // 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions. // 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model. // 1 -- One-temperature model.
// 2 -- Two-temperature model. // 2 -- Two-temperature model.
// 3 -- Three-temperature model. // 3 -- Three-temperature model.
// isUseNoneqCond:
// 0 -- compute the source terms without any conditions.
// 1 -- compute the source terms using the non-equilibrium condition.
// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value.
// nIdealState: whether take all gas species as ideal gas for gas-mixture process. // nIdealState: whether take all gas species as ideal gas for gas-mixture process.
// 0 -- No. // 0 -- No.
// 1 -- Yes. // 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method. // 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the polynomial fitting method. // 1 -- the energy term is computed using the polynomial fitting method.
// 2 -- the energy term is computed using the piecewise polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method.
@ -946,14 +965,13 @@ int monitorNegativeConstant = 0;
// 1.0 -- proposed by Maxwell. // 1.0 -- proposed by Maxwell.
// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. // sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall.
// 1.146 -- proposed for an additional "fictitious" velocity slip. // 1.146 -- proposed for an additional "fictitious" velocity slip.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. // chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. // spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. // staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions. // nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 0 -- not freeze, the chemical reaction sources will be calculated. // 0 -- not freeze, the chemical reaction sources will be calculated.
// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te // 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.
// veTemperatureMin: The minimum of Tv and Te.
// maxViscous: the maximum of Viscous. // maxViscous: the maximum of Viscous.
// trTemperatureMin: the minimum value of trTemperature. // trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature. // veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species // nSpeciesLimit: limitter of gas species
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction // nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0. // 0 -- method 0.
// 1 -- method 1. // 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid // nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef // nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource // nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource // nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori.) // 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New) // 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature. // nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs // 0 -- not used.
// 0 -- not used // 1 -- used.
// 1 -- used // nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// nDiagonalModified: Modified on Diagonal // 1 -- new.
// 0 -- not used // nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 1 -- Ori. // 0 -- not used.
// 2 -- new // 1 -- new.
// nGradPrimtiveMethod: // nGradPrimtiveMethod:
// 0 -- Ori. // 0 -- Ori.
// 1 -- new // 1 -- new.
// nAblation: // nAblation:
// 0 -- The wall ablation is not computed. // 0 -- The wall ablation is not computed.
// 1 -- The wall ablation is computed. // 1 -- The wall ablation is computed.
@ -1017,8 +1033,8 @@ int monitorNegativeConstant = 0;
// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. // "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. // "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting. // "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©. // for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©. // for unstruct solver mixing multi-species<65><73>O2 NO CO CO2 H2 N2 Air CH4<48><34>.
// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // For self-definition model, the gasfile is used to indicate the file path of the new gas model.
// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma.
// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation.
// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation.
// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation.
// useHyflowSetting : Setting for HyFLOW GUI.
// 0 -- PHengLEI
// 1 -- HyFLOW
// nProtectData: Use the continuation file data protection mechanism. // nProtectData: Use the continuation file data protection mechanism.
// 0 -- no // 0 -- no.
// 1 -- yes // 1 -- yes.
// nTvChange: Judge whether the Tv equals Ttr.
// 0 -- yes.
// 1 -- no.
// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions.
// nFraction: the initial fractions type of species.
// 0 -- mass fraction.
// 1 -- mole fraction.
int dg_high_order = 0; int dg_high_order = 0;
int iapplication = 0; int iapplication = 0;
int isAdaptiveSolver = 0; int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1; double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0; double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0; double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0; int nDebug = 0;
int nSpeciesLimit = 1; int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5; int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1; int veTemperatureMinModified = 1;
int nDiagonalModified = 0; int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1; int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1; int nInviscidFluxModify = 1;
int nQlLimitMethod = 2; int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1; int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0; int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0; int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0; int nAblation = 0;
int isInjection = 0; int isInjection = 0;
int nViscosityModel = 0; int nViscosityModel = 0;
int nMarsModel = 0; int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5"; string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; //string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2"; string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2"; //string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0"; //string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0; int nContinueModel = 0;
int nChemicalFlowStep = 0; int nChemicalFlowStep = 0;
int ifStartFromPerfectGasResults = 0; int ifStartFromPerfectGasResults = 0;
int isUseNoneqCond = 0;
double frozenCondition = 0.01;
int nLeakageMonitor = 0;
double totalLeakageVolume = 1000.0;
double monitorThresholdValue = 0.05;
double sprayFactor = 0.0;
######################################################################### #########################################################################
// Multi-Grid parameters. // Multi-Grid parameters.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order. // 1 -- zero order.
// 2 -- first-order. (default) // 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit. // mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1; int nMGLevel = 1;
int MGCoarsestIteration = 1; int MGCoarsestIteration = 1;
int MGPreIteration = 1; int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat"; string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
######################################################################### #************************************************************************
# High Order Struct Solver # # High Order Struct Solver *
######################################################################### #************************************************************************
// isFVMOrFDM: // isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method. // 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method. // 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not. // codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-overlapping grid. // 0 -- NON-overlapping grid.
// 1 -- Overlapping grid. // 1 -- Overlapping grid.
// oversetInterpolationMethod: the method of overset interpolation while field simulation // oversetInterpolationMethod: the method of overset interpolation while field simulation.
// 0 -- set the acceptor cell value by donor cell value. // 0 -- set the acceptor cell value by donor cell value.
// 1 -- set the acceptor cell value by distance weight of donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value.
// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated.
// 0 -- no.
// 1 -- yes.
// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in
// the current overset grid(only for three dimension).
// 0 -- no.
// 1 -- yes.
// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid.
// 0 -- no.
// 1 -- yes.
// walldistMainZone: The initial value of background grid which does not exist wall boundary condition.
// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell.
// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region.
// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary.
// 0 -- one layer.
// 1 -- two layers.
// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region.
// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure.
// 0 -- no.
// 1 -- yes.
int codeOfOversetGrid = 0; int codeOfOversetGrid = 0;
int oversetInterpolationMethod = 0; int oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0; int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0; int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0; int outTecplotOverset = 0;
int outPutOversetVisualization = 0; int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2; int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------ // ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0; double referenceVelocity = 1.0;
double referenceDensity = 1.0; double referenceDensity = 1.0;
int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
int strategyForGCLSource = 0; //0-present; 1-Ahn; int strategyForGCLSource = 0; // 0-present; 1-Ahn.
//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton // 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton.
int methodForKineticEquation = 0; int methodForKineticEquation = 0;
double relaxParameterOfKinetic = 1.0; double relaxParameterOfKinetic = 1.0;
######################################################################### #************************************************************************
# motive information # # motive information *
######################################################################### #************************************************************************
int numberOfMovingBodies = 1; int numberOfMovingBodies = 1;
############################## body0 ############################## ############################## body0 ##############################
//mass of parts // mass of parts.
double mass_0 = 1.0; double mass_0 = 1.0;
//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz // gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_0 = 0.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz.
double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
//initial six DOF position information of parts. xc yc zc // initial six DOF position information of parts. xc yc zc.
double massCenter_0[] = 0.0, 0.0, 0.0; double massCenter_0[] = 0.0, 0.0, 0.0;
//initial six DOF position information of parts. angleX angleY angleZ // if reset mass center while restart.
int resetMassCenter_0 = 0;
// position offset of parts. dx dy dz.
double massCenterDxyz_0[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_0[] = 0.0, 0.0, 0.0; double attitudeAngle_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. vc vy vz // initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_0[] = 0.0, 0.0, 0.0; double massCenterVelocity_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. omigX omigY omigZ // initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_0[] = 0.0, 0.0, 0.0; double angularVelocity_0[] = 0.0, 0.0, 0.0;
// the object that the parts belong to. // the object that the parts belong to.
int fartherIndex_0 = -1; int fartherIndex_0 = -1;
//the assembly position of the parts. xc yc zc angleX angleY angleZ // the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
// the move pattern of the parts. // the move pattern of the parts.
// -1 given motion partten. // -1 given motion partten.
@ -1349,23 +1403,24 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0
int RBDMethod_0 = 0; int RBDMethod_0 = 0;
double amplitude_0 = 0.0; double amplitude_0 = 0.0;
double reduceFrequency_0 = 0.0; double reduceFrequency_0 = 0.0;
//direction of rotation // direction of rotation.
// 1 -- clockwise from the point of view along the positive x axis. // 1 -- clockwise from the point of view along the positive x axis.
// -1 -- anticlockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1; int direction_0 = -1;
double rotateFrequency_0 = 0.0; double rotateFrequency_0 = 0.0;
//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; //string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter";
//additional force (system axis) fX fY fZ // dimensional physical time for additional force(s).
double addedForceTime_0[] = 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_0[] = 0.0, 0.0, 0.0; double addedForce_0[] = 0.0, 0.0, 0.0;
//additional moment of Force (system axis) mX mY mZ // additional moment(inertia system) mX mY mZ.
double addedMoment_0[] = 0.0, 0.0, 0.0; double addedMoment_0[] = 0.0, 0.0, 0.0;
// the deformation method of the parts. // the deformation method of the parts.
int morphing_0 = 0; int morphing_0 = 0;
// post indentify // post indentify.
int integralOrder = 4; int integralOrder = 4;
// ---------------- ATP read -------------------------------------------- // ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0; //@int inflowParaType = 0;
//@double refReNumber = 6.5e6; //@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0; //@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0; //@double refDimensionalDensity = 0;
//@string weatherDataFilePath = "./WRFData/";
######################################################################### //@double longitude = 110.95
# Old Parameter # //@double latitude = 19.61;
######################################################################### #************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0; int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
######################################################################### //double partialCFL[] = [0.0];
# Incompressible Parameter # //double partialSpeedCoef[] = [0.0];
######################################################################### //double partialSpeed[] = [0.0];
//double partialAttackd[] = [0.0];
//double partialSlide[] = [0.0];
//double partialPressure[] = [0.0];
//double partialTemperature[] = [0.0];
//double partialMassFractions[] = [0.0];
#************************************************************************
# Incompressible Parameter *
#************************************************************************
int isSolveEnergyEquation = 0; int isSolveEnergyEquation = 0;
int isSolveTurbEquation = 0; int isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0; int isSolveSpeciesEquation = 0;

View File

@ -4,9 +4,12 @@
// gridtype: Grid type for generation, conversion, reconstruction, merging. // gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid. // 0 -- Unstructured grid.
// 1 -- Structured grid. // 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process. // from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE. // -1 -- MULTI_TYPE.
// 1 -- PHengLEI, *.fts. // 1 -- PHengLEI, *.fts.
@ -18,7 +21,9 @@
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. // 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
// 8 -- GMSH, *.msh. // 8 -- GMSH, *.msh.
int gridtype = 0; int gridtype = 0;
int axisup = 2; int nAxisRotateTimes = 1;
int axisRotateOrder[] = [1];
double axisRotateAngles[]= [90.0];
int from_gtype = 2; int from_gtype = 2;
######################################################################### #########################################################################

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows + // Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center + // China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 + // (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
########################################################################### ###########################################################################
# Default parameters for Grid conversion # # Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0; int multiblock = 0;
int iadapt = 0; int iadapt = 0;
int SymmetryFaceVector = 1; int SymmetryFaceVector = 1;
int gridReorder = 0; int gridReorder = 0;
int faceReorderMethod = 0; int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
int axisup = 1; // 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition".
// 0 -- Interface. (default) // 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver. // 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Grid data type # # Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1; int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas"; string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = ""; string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------ // ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction. which only support one direction.
// rotationAngle: The relative angle between two periodic face. // rotationAngle: The relative angle between two periodic face.
which is recorded in degrees. which is recorded in degrees.
int periodicType = 0; int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0]; double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0; double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid. // 2 -- refine structured grid.
// maxproc: The number of partition zones that want to be divided into. // maxproc: The number of partition zones that want to be divided into.
// numberOfMultifile: The number of partition grid files that want to be dumped out. // numberOfMultifile: The number of partition grid files that want to be dumped out.
int pgridtype = 0; int pgridtype = 0;
int maxproc = 4; int maxproc = 4;
int numberOfMultifile = 1; int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1]; int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy: // parallelStrategy:
//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. // 0 -- each zone is assigned to the one that defined in grid partition procedure.
//! -# 1 : random assigned for each zone or by some else ways. // 1 -- random assigned for each zone or by some else ways.
int parallelStrategy = 1; int parallelStrategy = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance. // 1 -- perfect balance.
// maxproc -- perfect imbalance. // maxproc -- perfect imbalance.
// 1.05 -- recommended. // 1.05 -- recommended.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int npartmethod = 1; int npartmethod = 1;
int parallelPartitionMethod = 2; int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. // intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual file 'res.dat' saved. // intervalStepRes: The step intervals for residual file 'res.dat' saved.
// 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 maxSimuStep = 20000; int maxSimuStep = 20000;
int intervalStepFlow = 1000; int intervalStepFlow = 1000;
int intervalStepPlot = 1000; int intervalStepPlot = 1000;
int intervalStepSample = 1000; int intervalStepSample = 1000;
int intervalStepForce = 100; int intervalStepForce = 100;
int intervalStepRes = 10; int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible: // compressible:
// 0 -- incompressible flow. // 0 -- incompressible flow.
// 1 -- compressible flow. (default) // 1 -- compressible flow. (default)
int compressible = 1; int compressible = 1;
// 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)
// Kprec: The coefficient K for the cut-off velocity.
// 1.0~3.0 is suggested. (default, 3.0)
// preconFarfieldBCMethod: The precondition method for farfield boundary condition.
// 0 -- precondition far-field boundary based on riemann invariants.
// 1 -- Turkel's simplified far-field boundary condition.
int ifLowSpeedPrecon = 0;
double Kprec = 3.0;
int preconFarfieldBCMethod = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# CFD Control Parameter # # CFD Control Parameter #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions. // 0 -- the nondimensional conditions.
// 1 -- the flight conditions. // 1 -- the flight conditions.
// 2 -- the experiment conditions. // 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions. // 3 -- the subsonic boundary conditions. (Useless!)
// 4 -- the condition that the velocity, temperature and density are given. // 4 -- the condition that the velocity, temperature and density are given.
// 5 -- the condition that the velocity, temperature and pressure are given. // 5 -- the condition that the velocity, temperature and pressure are given.
//flowInitMethod: Flow field initialization method.
// 0 -- The entire flow field is initialized according to Infinite velocity.
// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m. // 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. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// freestream_vibration_temperature: Dimensional freestream vibration temperature. // freestream_vibration_temperature: Dimensional freestream vibration temperature.
@ -303,11 +314,11 @@ int compressible = 1;
// condition is radiation equilibrium temperature, and 0.8 is the default value. // condition is radiation equilibrium temperature, and 0.8 is the default value.
// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol.
// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on.
int directionMethod = 0; int directionMethod = 0;
double refMachNumber = 0.73; double refMachNumber = 0.73;
double attackd = 2.79; double attackd = 2.79;
double angleSlide = 0.00; double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0; int inflowParaType = 0;
double refReNumber = 6.5e6; double refReNumber = 6.5e6;
@ -321,14 +332,6 @@ double freestream_vibration_temperature = 300.00;
//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). //double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2).
//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). //double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)).
//int inflowParaType = 3;
//int nsubsonicInlet = 1;
//int nsubsonicOutlet = 1;
//string inLetFileName = "./bin/subsonicInlet.hypara";
//string outLetFileName = "./bin/subsonicOutlet.hypara";
//double refDimensionalTemperature = 288.144;
//double refDimensionalPressure = 1.01313E05;
// The velocity, temperature and density are fixed. // The velocity, temperature and density are fixed.
//int inflowParaType = 4; //int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0; //double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed. // The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6; //int inflowParaType = 6;
//double refDimensionalTemperature = 293; //double refDimensionalTemperature = 293.0;
//double refDimensionalPressure = 8886.06; //double refDimensionalPressure = 8886.06;
// The velocity, temperature and pressure are read from file.
//int inflowParaType = 7;
//string weatherDataFilePath = "./WRFData/";
//double longitude = 110.95
//double latitude = 19.61;
double wallTemperature = -1.0; double wallTemperature = -1.0;
double radiationCoef = 0.8; double radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter. double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol. double refMolecularWeight = 28.9644; // unit of g/mol.
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Spatial Discretisation # # Spatial Discretisation #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
#******************************************************************* #************************************************************************
# Struct Solver * # Struct Solver *
#******************************************************************* #************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid. // inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid. // Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f". // -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe". // -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid. // isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default) // 0 -- NO. (default)
// 1 -- Yes. // 1 -- Yes.
// str_limiter_name: Limiter of struct grid. // str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". // -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter. // -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version. // -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" // -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe"; string inviscidSchemeName = "roe";
int isWennScheme = 0; int isWennScheme = 0;
string str_limiter_name = "vanalbada"; string str_limiter_name = "vanalbada";
#******************************************************************* #************************************************************************
# UnStruct Solver or Common * # UnStruct Solver or Common *
#******************************************************************* #************************************************************************
// viscousType: Viscous model. // viscousType: Viscous model.
// 0 -- Euler. // 0 -- Euler.
// 1 -- Lamilar. // 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES. // 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. // uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// Using this when solve Unstructered grid or hybrid. // Using this when solve Unstructered grid or hybrid.
// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle". // -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle",
// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+".
// uns_limiter_name: Limiter of Unstruct grid. // uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod". // -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st". // -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter. // -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term. // uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2". // -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used. // 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// It is used to scale the default Roe entropy fix coefficients. // It is used to scale the default Roe entropy fix coefficients.
// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 // AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0.
//int viscousType = 0; //int viscousType = 0;
//string viscousName = "Euler"; //string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0; double AusmpwPlusLimiter = 1.0;
//----------------------------------------------------------------------- #************************************************************************
# Temporal Discretisation # # Temporal Discretisation *
//----------------------------------------------------------------------- #************************************************************************
// iunsteady: Steady or unsteady. // iunsteady: Steady or unsteady.
// 0 -- steady. // 0 -- steady.
// 1 -- unsteay. // 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration. // 6 -- Jacobian iteration.
// 7 -- Line LU-SGS. // 7 -- Line LU-SGS.
// 8 -- Matrix LU-SGS. // 8 -- Matrix LU-SGS.
// 9 -- GMRES.
// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. // iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation.
// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. // Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method.
// CFLStart: Started cfl number. // CFLStart: Started cfl number.
// CFLEnd: End cfl number. // CFLEnd: End cfl number.
// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. // CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd.
// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration.
// OriginalTscheme : Used for LUSGS and GMres hybrid computing.
// useLUSGSprecond: Initialize flow field for GMRES.
// 0 --Initialize by first order Jacobian matrix.
// 1 --Initialize by LUSGS.
// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field.
// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) // ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. // swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. // nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function. // 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step. // RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step. // lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0; int iunsteady = 0;
double physicalTimeStep = 0.01; double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001; double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000; int startStatisticStep = 800000;
double statisticalTimePeriod = -1.0; double statisticalTimePeriod = -1.0;
int statisticMethod = 0; int statisticMethod = 0;
int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2.
int methodOfDualTime = 3; int methodOfDualTime = 3;
int min_sub_iter = 50; int min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01; double CFLStart = 0.01;
double CFLEnd = 10.0; double CFLEnd = 10.0;
int CFLVaryStep = 500; int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2; double pMaxForCFL = 0.2;
double pMinForCFL = 0.1; double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2; double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01; double visl_min = 0.01;
double turbCFLScale = 1.0; double turbCFLScale = 1.0;
double csrv = 2.0; double csrv = 1.0;
double timemax = 1.0e10; double timemax = 1.0e10;
double dtsave = -1.0; double dtsave = -1.0;
int maxale = 10; int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4; //int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
#************************************************************************
//----------------------------------------------------------------------- # File In or Out *
# File In or Out # #************************************************************************
//-----------------------------------------------------------------------
// numberOfGridGroups: The number of grid groups. // numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path, // gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory. // which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance. // nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance. // 0 -- Compute wall distance.
// 1 -- Not compute. // 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. // protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. // wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1; int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts"; string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = ""; string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat"; string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat"; string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat"; string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat"; string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat"; string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt"; string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat"; string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.dat"; string protectionFile1 = "results/flow1.dat";
string wall_heatfluxfile = "results/wall_heatflux.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat";
string protectionTurbFile0 = "results/turb0.dat";
string protectionTurbFile1 = "results/turb1.dat";
string protectionTransitionFile0 = "results/transition0.dat";
string protectionTransitionFile1 = "results/transition1.dat";
int nDumpSurfaceInfo = 0; int nDumpSurfaceInfo = 0;
string wall_varfile = ""; string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat"; string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat"; string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt"; string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile. // visualfileType: The file type of visualfile.
// 0 -- Tecplot binary. // 0 -- Tecplot binary.
// 1 -- Tecplot ASCII. // 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1; int visualfileType = 1;
// samplefileMode: The dump mode of sample file. // samplefileMode: The dump mode of sample file.
@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0];
// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36),
// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40),
// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), // -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81) // -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- specific heat ratio(gama, 56) // -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big. // Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition---------------- //-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall. // nVisualWallVariables: The number of visual variables on wall.
// visualWallVariables : dumped variable types, listed as following: // visualWallVariables : dumped variable types, listed as following:
// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), // -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4),
// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), // -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8),
// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), // -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11),
// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) // -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15),
// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) // -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19),
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) // -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8; int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
@ -739,7 +761,9 @@ int dumpStandardModel = 0;
// 1 -- Real cell where the probe is located. // 1 -- Real cell where the probe is located.
// nProbeVariables: Number of variables want to be dumped for probes monitered. // nProbeVariables: Number of variables want to be dumped for probes monitered.
// probeVariables : Variable types dumped, listed as following: // probeVariables : Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). // -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9),
// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12).
// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!!
// probeVariables order must from small to big. // probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0; int searchCellsMethod = 0;
int nProbeVariables = 7; int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0; int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter # #************************************************************************
//----------------------------------------------------------------------- # Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence. // turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source. // kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original. // 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type // transitionType: transition model type
// 0 -- none. // 0 -- none.
// 2 -- gama-re-theta. // 2 -- gama-re-theta.
// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition // turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition.
// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not // freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not.
int turbInterval = 1; int turbInterval = 1;
int turbOrderStruct = 2; int turbOrderStruct = 2;
int kindOfTurbSource = 0; int kindOfTurbSource = 0;
int mod_turb_res = 0; int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3; double freeStreamViscosity = 1.0e-3;
double muoo = 3.0; double muoo = 3.0;
double kwoo = 5.0; double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0; int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0; double freeDecayXLocation = 0.0;
int compressibleCorrection = 0; int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1; int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max. // maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10; double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0; int monitor_vistmax = 0;
//----------------------------------------------------------------------- #************************************************************************
# LES Parameter # # LES Parameter *
//----------------------------------------------------------------------- #************************************************************************
// iLES: Create LESSolver or not. // iLES: Create LESSolver or not.
// = 1 - Create LESSolver; // = 1 -- Create LESSolver;
// != 1 - not. // != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb. // amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random 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. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter; // = 0 -- in only first sub-iter;
// != 0 - in every sub-iter. // != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not. // ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not. // ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not; // = 0 -- not;
// != 0 - Add body force. // != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not. // bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb. // utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model. // sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom"; // = "dsmCom";
// = "wale"; // = "wale";
// = "sigma". // = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); // deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3); // = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti. // = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function; // wallDampingFunctionType: = 0 -- no wall function;
// = 1 - van Driest; // = 1 -- van Driest;
// = 2 - developed by Dr. Deng Xiaobing; // = 2 -- developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli. // = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type. // turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul; // = 0 -- mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul; // = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 - mu_total = max(mut ,0)+ mul. // = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model. // smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model. // waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not. // filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average 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. // isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0; int iLES = 0;
string sgsmodel = "smagorinsky"; string sgsmodel = "smagorinsky";
int deltaFunctionType = 2; int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1; int averageWidth = 1;
int monitorNegativeConstant = 0; int monitorNegativeConstant = 0;
//----------------------------------------------------------------------- #************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas # # Other Parameters for Hypersonic Non-equilibrium Gas *
//----------------------------------------------------------------------- #************************************************************************
// dg_high_order: // dg_high_order:
// 0 -- generic order accuracy. // 0 -- generic order accuracy.
// 1 -- high order accuracy. // 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes. // 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files. // 1 -- gas model is imported from library files.
// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver,
// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver.
// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps.
// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual.
// nm: Equation number of the physics, but is out of commision now. // nm: Equation number of the physics, but is out of commision now.
// 4 -- for 2D. // 4 -- for 2D.
// 5 -- for 3D. // 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas. // 0 -- perfect gas.
// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component.
// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. // nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. // nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. // nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSlipBCModel: The computational model of slip boundary conditions. // nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip. // 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions. // 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions. // 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model. // 1 -- One-temperature model.
// 2 -- Two-temperature model. // 2 -- Two-temperature model.
// 3 -- Three-temperature model. // 3 -- Three-temperature model.
// isUseNoneqCond:
// 0 -- compute the source terms without any conditions.
// 1 -- compute the source terms using the non-equilibrium condition.
// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value.
// nIdealState: whether take all gas species as ideal gas for gas-mixture process. // nIdealState: whether take all gas species as ideal gas for gas-mixture process.
// 0 -- No. // 0 -- No.
// 1 -- Yes. // 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method. // 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the polynomial fitting method. // 1 -- the energy term is computed using the polynomial fitting method.
// 2 -- the energy term is computed using the piecewise polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method.
@ -946,14 +965,13 @@ int monitorNegativeConstant = 0;
// 1.0 -- proposed by Maxwell. // 1.0 -- proposed by Maxwell.
// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. // sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall.
// 1.146 -- proposed for an additional "fictitious" velocity slip. // 1.146 -- proposed for an additional "fictitious" velocity slip.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. // chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. // spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. // staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions. // nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 0 -- not freeze, the chemical reaction sources will be calculated. // 0 -- not freeze, the chemical reaction sources will be calculated.
// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te // 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.
// veTemperatureMin: The minimum of Tv and Te.
// maxViscous: the maximum of Viscous. // maxViscous: the maximum of Viscous.
// trTemperatureMin: the minimum value of trTemperature. // trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature. // veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species // nSpeciesLimit: limitter of gas species
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction // nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0. // 0 -- method 0.
// 1 -- method 1. // 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid // nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef // nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource // nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource // nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori.) // 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New) // 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature. // nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs // 0 -- not used.
// 0 -- not used // 1 -- used.
// 1 -- used // nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// nDiagonalModified: Modified on Diagonal // 1 -- new.
// 0 -- not used // nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 1 -- Ori. // 0 -- not used.
// 2 -- new // 1 -- new.
// nGradPrimtiveMethod: // nGradPrimtiveMethod:
// 0 -- Ori. // 0 -- Ori.
// 1 -- new // 1 -- new.
// nAblation: // nAblation:
// 0 -- The wall ablation is not computed. // 0 -- The wall ablation is not computed.
// 1 -- The wall ablation is computed. // 1 -- The wall ablation is computed.
@ -1017,8 +1033,8 @@ int monitorNegativeConstant = 0;
// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. // "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. // "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting. // "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©. // for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©. // for unstruct solver mixing multi-species<65><73>O2 NO CO CO2 H2 N2 Air CH4<48><34>.
// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // For self-definition model, the gasfile is used to indicate the file path of the new gas model.
// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma.
// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation.
// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation.
// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation.
// useHyflowSetting : Setting for HyFLOW GUI.
// 0 -- PHengLEI
// 1 -- HyFLOW
// nProtectData: Use the continuation file data protection mechanism. // nProtectData: Use the continuation file data protection mechanism.
// 0 -- no // 0 -- no.
// 1 -- yes // 1 -- yes.
// nTvChange: Judge whether the Tv equals Ttr.
// 0 -- yes.
// 1 -- no.
// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions.
// nFraction: the initial fractions type of species.
// 0 -- mass fraction.
// 1 -- mole fraction.
int dg_high_order = 0; int dg_high_order = 0;
int iapplication = 0; int iapplication = 0;
int isAdaptiveSolver = 0; int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1; double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0; double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0; double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0; int nDebug = 0;
int nSpeciesLimit = 1; int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5; int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1; int veTemperatureMinModified = 1;
int nDiagonalModified = 0; int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1; int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1; int nInviscidFluxModify = 1;
int nQlLimitMethod = 2; int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1; int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0; int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0; int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0; int nAblation = 0;
int isInjection = 0; int isInjection = 0;
int nViscosityModel = 0; int nViscosityModel = 0;
int nMarsModel = 0; int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5"; string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; //string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2"; string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2"; //string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0"; //string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0; int nContinueModel = 0;
int nChemicalFlowStep = 0; int nChemicalFlowStep = 0;
int ifStartFromPerfectGasResults = 0; int ifStartFromPerfectGasResults = 0;
int isUseNoneqCond = 0;
double frozenCondition = 0.01;
int nLeakageMonitor = 0;
double totalLeakageVolume = 1000.0;
double monitorThresholdValue = 0.05;
double sprayFactor = 0.0;
######################################################################### #########################################################################
// Multi-Grid parameters. // Multi-Grid parameters.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order. // 1 -- zero order.
// 2 -- first-order. (default) // 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit. // mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1; int nMGLevel = 1;
int MGCoarsestIteration = 1; int MGCoarsestIteration = 1;
int MGPreIteration = 1; int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat"; string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
######################################################################### #************************************************************************
# High Order Struct Solver # # High Order Struct Solver *
######################################################################### #************************************************************************
// isFVMOrFDM: // isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method. // 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method. // 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not. // codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-overlapping grid. // 0 -- NON-overlapping grid.
// 1 -- Overlapping grid. // 1 -- Overlapping grid.
// oversetInterpolationMethod: the method of overset interpolation while field simulation // oversetInterpolationMethod: the method of overset interpolation while field simulation.
// 0 -- set the acceptor cell value by donor cell value. // 0 -- set the acceptor cell value by donor cell value.
// 1 -- set the acceptor cell value by distance weight of donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value.
// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated.
// 0 -- no.
// 1 -- yes.
// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in
// the current overset grid(only for three dimension).
// 0 -- no.
// 1 -- yes.
// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid.
// 0 -- no.
// 1 -- yes.
// walldistMainZone: The initial value of background grid which does not exist wall boundary condition.
// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell.
// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region.
// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary.
// 0 -- one layer.
// 1 -- two layers.
// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region.
// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure.
// 0 -- no.
// 1 -- yes.
int codeOfOversetGrid = 0; int codeOfOversetGrid = 0;
int oversetInterpolationMethod = 0; int oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0; int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0; int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0; int outTecplotOverset = 0;
int outPutOversetVisualization = 0; int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2; int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------ // ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0; double referenceVelocity = 1.0;
double referenceDensity = 1.0; double referenceDensity = 1.0;
int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
int strategyForGCLSource = 0; //0-present; 1-Ahn; int strategyForGCLSource = 0; // 0-present; 1-Ahn.
//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton // 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton.
int methodForKineticEquation = 0; int methodForKineticEquation = 0;
double relaxParameterOfKinetic = 1.0; double relaxParameterOfKinetic = 1.0;
######################################################################### #************************************************************************
# motive information # # motive information *
######################################################################### #************************************************************************
int numberOfMovingBodies = 1; int numberOfMovingBodies = 1;
############################## body0 ############################## ############################## body0 ##############################
//mass of parts // mass of parts.
double mass_0 = 1.0; double mass_0 = 1.0;
//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz // gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_0 = 0.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz.
double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
//initial six DOF position information of parts. xc yc zc // initial six DOF position information of parts. xc yc zc.
double massCenter_0[] = 0.0, 0.0, 0.0; double massCenter_0[] = 0.0, 0.0, 0.0;
//initial six DOF position information of parts. angleX angleY angleZ // if reset mass center while restart.
int resetMassCenter_0 = 0;
// position offset of parts. dx dy dz.
double massCenterDxyz_0[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_0[] = 0.0, 0.0, 0.0; double attitudeAngle_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. vc vy vz // initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_0[] = 0.0, 0.0, 0.0; double massCenterVelocity_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. omigX omigY omigZ // initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_0[] = 0.0, 0.0, 0.0; double angularVelocity_0[] = 0.0, 0.0, 0.0;
// the object that the parts belong to. // the object that the parts belong to.
int fartherIndex_0 = -1; int fartherIndex_0 = -1;
//the assembly position of the parts. xc yc zc angleX angleY angleZ // the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
// the move pattern of the parts. // the move pattern of the parts.
// -1 given motion partten. // -1 given motion partten.
@ -1349,23 +1403,24 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0
int RBDMethod_0 = 0; int RBDMethod_0 = 0;
double amplitude_0 = 0.0; double amplitude_0 = 0.0;
double reduceFrequency_0 = 0.0; double reduceFrequency_0 = 0.0;
//direction of rotation // direction of rotation.
// 1 -- clockwise from the point of view along the positive x axis. // 1 -- clockwise from the point of view along the positive x axis.
// -1 -- anticlockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1; int direction_0 = -1;
double rotateFrequency_0 = 0.0; double rotateFrequency_0 = 0.0;
//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; //string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter";
//additional force (system axis) fX fY fZ // dimensional physical time for additional force(s).
double addedForceTime_0[] = 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_0[] = 0.0, 0.0, 0.0; double addedForce_0[] = 0.0, 0.0, 0.0;
//additional moment of Force (system axis) mX mY mZ // additional moment(inertia system) mX mY mZ.
double addedMoment_0[] = 0.0, 0.0, 0.0; double addedMoment_0[] = 0.0, 0.0, 0.0;
// the deformation method of the parts. // the deformation method of the parts.
int morphing_0 = 0; int morphing_0 = 0;
// post indentify // post indentify.
int integralOrder = 4; int integralOrder = 4;
// ---------------- ATP read -------------------------------------------- // ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0; //@int inflowParaType = 0;
//@double refReNumber = 6.5e6; //@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0; //@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0; //@double refDimensionalDensity = 0;
//@string weatherDataFilePath = "./WRFData/";
######################################################################### //@double longitude = 110.95
# Old Parameter # //@double latitude = 19.61;
######################################################################### #************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0; int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
######################################################################### //double partialCFL[] = [0.0];
# Incompressible Parameter # //double partialSpeedCoef[] = [0.0];
######################################################################### //double partialSpeed[] = [0.0];
//double partialAttackd[] = [0.0];
//double partialSlide[] = [0.0];
//double partialPressure[] = [0.0];
//double partialTemperature[] = [0.0];
//double partialMassFractions[] = [0.0];
#************************************************************************
# Incompressible Parameter *
#************************************************************************
int isSolveEnergyEquation = 0; int isSolveEnergyEquation = 0;
int isSolveTurbEquation = 0; int isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0; int isSolveSpeciesEquation = 0;

View File

@ -4,9 +4,12 @@
// gridtype: Grid type for generation, conversion, reconstruction, merging. // gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid. // 0 -- Unstructured grid.
// 1 -- Structured grid. // 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process. // from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE. // -1 -- MULTI_TYPE.
// 1 -- PHengLEI, *.fts. // 1 -- PHengLEI, *.fts.
@ -18,7 +21,9 @@
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. // 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
// 8 -- GMSH, *.msh. // 8 -- GMSH, *.msh.
int gridtype = 0; int gridtype = 0;
int axisup = 1; int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
int from_gtype = 5; int from_gtype = 5;
######################################################################### #########################################################################

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows + // Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center + // China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 + // (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
########################################################################### ###########################################################################
# Default parameters for Grid conversion # # Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0; int multiblock = 0;
int iadapt = 0; int iadapt = 0;
int SymmetryFaceVector = 1; int SymmetryFaceVector = 1;
int gridReorder = 0; int gridReorder = 0;
int faceReorderMethod = 0; int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
int axisup = 1; // 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition".
// 0 -- Interface. (default) // 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver. // 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Grid data type # # Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1; int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas"; string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = ""; string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------ // ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction. which only support one direction.
// rotationAngle: The relative angle between two periodic face. // rotationAngle: The relative angle between two periodic face.
which is recorded in degrees. which is recorded in degrees.
int periodicType = 0; int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0]; double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0; double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid. // 2 -- refine structured grid.
// maxproc: The number of partition zones that want to be divided into. // maxproc: The number of partition zones that want to be divided into.
// numberOfMultifile: The number of partition grid files that want to be dumped out. // numberOfMultifile: The number of partition grid files that want to be dumped out.
int pgridtype = 0; int pgridtype = 0;
int maxproc = 4; int maxproc = 4;
int numberOfMultifile = 1; int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1]; int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy: // parallelStrategy:
//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. // 0 -- each zone is assigned to the one that defined in grid partition procedure.
//! -# 1 : random assigned for each zone or by some else ways. // 1 -- random assigned for each zone or by some else ways.
int parallelStrategy = 1; int parallelStrategy = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance. // 1 -- perfect balance.
// maxproc -- perfect imbalance. // maxproc -- perfect imbalance.
// 1.05 -- recommended. // 1.05 -- recommended.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int npartmethod = 1; int npartmethod = 1;
int parallelPartitionMethod = 2; int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. // intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual file 'res.dat' saved. // intervalStepRes: The step intervals for residual file 'res.dat' saved.
// 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 maxSimuStep = 20000; int maxSimuStep = 20000;
int intervalStepFlow = 1000; int intervalStepFlow = 1000;
int intervalStepPlot = 1000; int intervalStepPlot = 1000;
int intervalStepSample = 1000; int intervalStepSample = 1000;
int intervalStepForce = 100; int intervalStepForce = 100;
int intervalStepRes = 10; int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible: // compressible:
// 0 -- incompressible flow. // 0 -- incompressible flow.
// 1 -- compressible flow. (default) // 1 -- compressible flow. (default)
int compressible = 1; int compressible = 1;
// 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)
// Kprec: The coefficient K for the cut-off velocity.
// 1.0~3.0 is suggested. (default, 3.0)
// preconFarfieldBCMethod: The precondition method for farfield boundary condition.
// 0 -- precondition far-field boundary based on riemann invariants.
// 1 -- Turkel's simplified far-field boundary condition.
int ifLowSpeedPrecon = 0;
double Kprec = 3.0;
int preconFarfieldBCMethod = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# CFD Control Parameter # # CFD Control Parameter #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions. // 0 -- the nondimensional conditions.
// 1 -- the flight conditions. // 1 -- the flight conditions.
// 2 -- the experiment conditions. // 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions. // 3 -- the subsonic boundary conditions. (Useless!)
// 4 -- the condition that the velocity, temperature and density are given. // 4 -- the condition that the velocity, temperature and density are given.
// 5 -- the condition that the velocity, temperature and pressure are given. // 5 -- the condition that the velocity, temperature and pressure are given.
//flowInitMethod: Flow field initialization method.
// 0 -- The entire flow field is initialized according to Infinite velocity.
// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m. // 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. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// freestream_vibration_temperature: Dimensional freestream vibration temperature. // freestream_vibration_temperature: Dimensional freestream vibration temperature.
@ -303,11 +314,11 @@ int compressible = 1;
// condition is radiation equilibrium temperature, and 0.8 is the default value. // condition is radiation equilibrium temperature, and 0.8 is the default value.
// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol.
// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on.
int directionMethod = 0; int directionMethod = 0;
double refMachNumber = 0.73; double refMachNumber = 0.73;
double attackd = 2.79; double attackd = 2.79;
double angleSlide = 0.00; double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0; int inflowParaType = 0;
double refReNumber = 6.5e6; double refReNumber = 6.5e6;
@ -321,14 +332,6 @@ double freestream_vibration_temperature = 300.00;
//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). //double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2).
//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). //double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)).
//int inflowParaType = 3;
//int nsubsonicInlet = 1;
//int nsubsonicOutlet = 1;
//string inLetFileName = "./bin/subsonicInlet.hypara";
//string outLetFileName = "./bin/subsonicOutlet.hypara";
//double refDimensionalTemperature = 288.144;
//double refDimensionalPressure = 1.01313E05;
// The velocity, temperature and density are fixed. // The velocity, temperature and density are fixed.
//int inflowParaType = 4; //int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0; //double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed. // The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6; //int inflowParaType = 6;
//double refDimensionalTemperature = 293; //double refDimensionalTemperature = 293.0;
//double refDimensionalPressure = 8886.06; //double refDimensionalPressure = 8886.06;
// The velocity, temperature and pressure are read from file.
//int inflowParaType = 7;
//string weatherDataFilePath = "./WRFData/";
//double longitude = 110.95
//double latitude = 19.61;
double wallTemperature = -1.0; double wallTemperature = -1.0;
double radiationCoef = 0.8; double radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter. double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol. double refMolecularWeight = 28.9644; // unit of g/mol.
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Spatial Discretisation # # Spatial Discretisation #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
#******************************************************************* #************************************************************************
# Struct Solver * # Struct Solver *
#******************************************************************* #************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid. // inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid. // Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f". // -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe". // -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid. // isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default) // 0 -- NO. (default)
// 1 -- Yes. // 1 -- Yes.
// str_limiter_name: Limiter of struct grid. // str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". // -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter. // -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version. // -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" // -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe"; string inviscidSchemeName = "roe";
int isWennScheme = 0; int isWennScheme = 0;
string str_limiter_name = "vanalbada"; string str_limiter_name = "vanalbada";
#******************************************************************* #************************************************************************
# UnStruct Solver or Common * # UnStruct Solver or Common *
#******************************************************************* #************************************************************************
// viscousType: Viscous model. // viscousType: Viscous model.
// 0 -- Euler. // 0 -- Euler.
// 1 -- Lamilar. // 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES. // 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. // uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// Using this when solve Unstructered grid or hybrid. // Using this when solve Unstructered grid or hybrid.
// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle". // -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle",
// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+".
// uns_limiter_name: Limiter of Unstruct grid. // uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod". // -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st". // -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter. // -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term. // uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2". // -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used. // 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// It is used to scale the default Roe entropy fix coefficients. // It is used to scale the default Roe entropy fix coefficients.
// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 // AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0.
//int viscousType = 0; //int viscousType = 0;
//string viscousName = "Euler"; //string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0; double AusmpwPlusLimiter = 1.0;
//----------------------------------------------------------------------- #************************************************************************
# Temporal Discretisation # # Temporal Discretisation *
//----------------------------------------------------------------------- #************************************************************************
// iunsteady: Steady or unsteady. // iunsteady: Steady or unsteady.
// 0 -- steady. // 0 -- steady.
// 1 -- unsteay. // 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration. // 6 -- Jacobian iteration.
// 7 -- Line LU-SGS. // 7 -- Line LU-SGS.
// 8 -- Matrix LU-SGS. // 8 -- Matrix LU-SGS.
// 9 -- GMRES.
// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. // iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation.
// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. // Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method.
// CFLStart: Started cfl number. // CFLStart: Started cfl number.
// CFLEnd: End cfl number. // CFLEnd: End cfl number.
// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. // CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd.
// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration.
// OriginalTscheme : Used for LUSGS and GMres hybrid computing.
// useLUSGSprecond: Initialize flow field for GMRES.
// 0 --Initialize by first order Jacobian matrix.
// 1 --Initialize by LUSGS.
// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field.
// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) // ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. // swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. // nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function. // 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step. // RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step. // lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0; int iunsteady = 0;
double physicalTimeStep = 0.01; double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001; double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000; int startStatisticStep = 800000;
double statisticalTimePeriod = -1.0; double statisticalTimePeriod = -1.0;
int statisticMethod = 0; int statisticMethod = 0;
int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2.
int methodOfDualTime = 3; int methodOfDualTime = 3;
int min_sub_iter = 50; int min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01; double CFLStart = 0.01;
double CFLEnd = 10.0; double CFLEnd = 10.0;
int CFLVaryStep = 500; int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2; double pMaxForCFL = 0.2;
double pMinForCFL = 0.1; double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2; double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01; double visl_min = 0.01;
double turbCFLScale = 1.0; double turbCFLScale = 1.0;
double csrv = 2.0; double csrv = 1.0;
double timemax = 1.0e10; double timemax = 1.0e10;
double dtsave = -1.0; double dtsave = -1.0;
int maxale = 10; int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4; //int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
#************************************************************************
//----------------------------------------------------------------------- # File In or Out *
# File In or Out # #************************************************************************
//-----------------------------------------------------------------------
// numberOfGridGroups: The number of grid groups. // numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path, // gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory. // which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance. // nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance. // 0 -- Compute wall distance.
// 1 -- Not compute. // 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. // protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. // wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1; int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts"; string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = ""; string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat"; string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat"; string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat"; string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat"; string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat"; string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt"; string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat"; string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.dat"; string protectionFile1 = "results/flow1.dat";
string wall_heatfluxfile = "results/wall_heatflux.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat";
string protectionTurbFile0 = "results/turb0.dat";
string protectionTurbFile1 = "results/turb1.dat";
string protectionTransitionFile0 = "results/transition0.dat";
string protectionTransitionFile1 = "results/transition1.dat";
int nDumpSurfaceInfo = 0; int nDumpSurfaceInfo = 0;
string wall_varfile = ""; string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat"; string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat"; string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt"; string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile. // visualfileType: The file type of visualfile.
// 0 -- Tecplot binary. // 0 -- Tecplot binary.
// 1 -- Tecplot ASCII. // 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1; int visualfileType = 1;
// samplefileMode: The dump mode of sample file. // samplefileMode: The dump mode of sample file.
@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0];
// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36),
// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40),
// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), // -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81) // -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- specific heat ratio(gama, 56) // -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big. // Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition---------------- //-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall. // nVisualWallVariables: The number of visual variables on wall.
// visualWallVariables : dumped variable types, listed as following: // visualWallVariables : dumped variable types, listed as following:
// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), // -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4),
// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), // -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8),
// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), // -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11),
// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) // -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15),
// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) // -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19),
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) // -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8; int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
@ -739,7 +761,9 @@ int dumpStandardModel = 0;
// 1 -- Real cell where the probe is located. // 1 -- Real cell where the probe is located.
// nProbeVariables: Number of variables want to be dumped for probes monitered. // nProbeVariables: Number of variables want to be dumped for probes monitered.
// probeVariables : Variable types dumped, listed as following: // probeVariables : Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). // -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9),
// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12).
// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!!
// probeVariables order must from small to big. // probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0; int searchCellsMethod = 0;
int nProbeVariables = 7; int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0; int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter # #************************************************************************
//----------------------------------------------------------------------- # Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence. // turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source. // kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original. // 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type // transitionType: transition model type
// 0 -- none. // 0 -- none.
// 2 -- gama-re-theta. // 2 -- gama-re-theta.
// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition // turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition.
// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not // freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not.
int turbInterval = 1; int turbInterval = 1;
int turbOrderStruct = 2; int turbOrderStruct = 2;
int kindOfTurbSource = 0; int kindOfTurbSource = 0;
int mod_turb_res = 0; int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3; double freeStreamViscosity = 1.0e-3;
double muoo = 3.0; double muoo = 3.0;
double kwoo = 5.0; double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0; int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0; double freeDecayXLocation = 0.0;
int compressibleCorrection = 0; int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1; int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max. // maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10; double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0; int monitor_vistmax = 0;
//----------------------------------------------------------------------- #************************************************************************
# LES Parameter # # LES Parameter *
//----------------------------------------------------------------------- #************************************************************************
// iLES: Create LESSolver or not. // iLES: Create LESSolver or not.
// = 1 - Create LESSolver; // = 1 -- Create LESSolver;
// != 1 - not. // != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb. // amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random 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. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter; // = 0 -- in only first sub-iter;
// != 0 - in every sub-iter. // != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not. // ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not. // ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not; // = 0 -- not;
// != 0 - Add body force. // != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not. // bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb. // utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model. // sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom"; // = "dsmCom";
// = "wale"; // = "wale";
// = "sigma". // = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); // deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3); // = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti. // = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function; // wallDampingFunctionType: = 0 -- no wall function;
// = 1 - van Driest; // = 1 -- van Driest;
// = 2 - developed by Dr. Deng Xiaobing; // = 2 -- developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli. // = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type. // turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul; // = 0 -- mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul; // = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 - mu_total = max(mut ,0)+ mul. // = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model. // smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model. // waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not. // filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average 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. // isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0; int iLES = 0;
string sgsmodel = "smagorinsky"; string sgsmodel = "smagorinsky";
int deltaFunctionType = 2; int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1; int averageWidth = 1;
int monitorNegativeConstant = 0; int monitorNegativeConstant = 0;
//----------------------------------------------------------------------- #************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas # # Other Parameters for Hypersonic Non-equilibrium Gas *
//----------------------------------------------------------------------- #************************************************************************
// dg_high_order: // dg_high_order:
// 0 -- generic order accuracy. // 0 -- generic order accuracy.
// 1 -- high order accuracy. // 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes. // 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files. // 1 -- gas model is imported from library files.
// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver,
// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver.
// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps.
// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual.
// nm: Equation number of the physics, but is out of commision now. // nm: Equation number of the physics, but is out of commision now.
// 4 -- for 2D. // 4 -- for 2D.
// 5 -- for 3D. // 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas. // 0 -- perfect gas.
// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component.
// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. // nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. // nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. // nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSlipBCModel: The computational model of slip boundary conditions. // nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip. // 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions. // 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions. // 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model. // 1 -- One-temperature model.
// 2 -- Two-temperature model. // 2 -- Two-temperature model.
// 3 -- Three-temperature model. // 3 -- Three-temperature model.
// isUseNoneqCond:
// 0 -- compute the source terms without any conditions.
// 1 -- compute the source terms using the non-equilibrium condition.
// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value.
// nIdealState: whether take all gas species as ideal gas for gas-mixture process. // nIdealState: whether take all gas species as ideal gas for gas-mixture process.
// 0 -- No. // 0 -- No.
// 1 -- Yes. // 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method. // 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the polynomial fitting method. // 1 -- the energy term is computed using the polynomial fitting method.
// 2 -- the energy term is computed using the piecewise polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method.
@ -946,14 +965,13 @@ int monitorNegativeConstant = 0;
// 1.0 -- proposed by Maxwell. // 1.0 -- proposed by Maxwell.
// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. // sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall.
// 1.146 -- proposed for an additional "fictitious" velocity slip. // 1.146 -- proposed for an additional "fictitious" velocity slip.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. // chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. // spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. // staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions. // nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 0 -- not freeze, the chemical reaction sources will be calculated. // 0 -- not freeze, the chemical reaction sources will be calculated.
// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te // 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.
// veTemperatureMin: The minimum of Tv and Te.
// maxViscous: the maximum of Viscous. // maxViscous: the maximum of Viscous.
// trTemperatureMin: the minimum value of trTemperature. // trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature. // veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species // nSpeciesLimit: limitter of gas species
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction // nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0. // 0 -- method 0.
// 1 -- method 1. // 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid // nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef // nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource // nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource // nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori.) // 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New) // 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature. // nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs // 0 -- not used.
// 0 -- not used // 1 -- used.
// 1 -- used // nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// nDiagonalModified: Modified on Diagonal // 1 -- new.
// 0 -- not used // nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 1 -- Ori. // 0 -- not used.
// 2 -- new // 1 -- new.
// nGradPrimtiveMethod: // nGradPrimtiveMethod:
// 0 -- Ori. // 0 -- Ori.
// 1 -- new // 1 -- new.
// nAblation: // nAblation:
// 0 -- The wall ablation is not computed. // 0 -- The wall ablation is not computed.
// 1 -- The wall ablation is computed. // 1 -- The wall ablation is computed.
@ -1017,8 +1033,8 @@ int monitorNegativeConstant = 0;
// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. // "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. // "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting. // "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©. // for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©. // for unstruct solver mixing multi-species<65><73>O2 NO CO CO2 H2 N2 Air CH4<48><34>.
// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // For self-definition model, the gasfile is used to indicate the file path of the new gas model.
// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma.
// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation.
// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation.
// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation.
// useHyflowSetting : Setting for HyFLOW GUI.
// 0 -- PHengLEI
// 1 -- HyFLOW
// nProtectData: Use the continuation file data protection mechanism. // nProtectData: Use the continuation file data protection mechanism.
// 0 -- no // 0 -- no.
// 1 -- yes // 1 -- yes.
// nTvChange: Judge whether the Tv equals Ttr.
// 0 -- yes.
// 1 -- no.
// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions.
// nFraction: the initial fractions type of species.
// 0 -- mass fraction.
// 1 -- mole fraction.
int dg_high_order = 0; int dg_high_order = 0;
int iapplication = 0; int iapplication = 0;
int isAdaptiveSolver = 0; int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1; double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0; double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0; double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0; int nDebug = 0;
int nSpeciesLimit = 1; int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5; int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1; int veTemperatureMinModified = 1;
int nDiagonalModified = 0; int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1; int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1; int nInviscidFluxModify = 1;
int nQlLimitMethod = 2; int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1; int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0; int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0; int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0; int nAblation = 0;
int isInjection = 0; int isInjection = 0;
int nViscosityModel = 0; int nViscosityModel = 0;
int nMarsModel = 0; int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5"; string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; //string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2"; string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2"; //string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0"; //string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0; int nContinueModel = 0;
int nChemicalFlowStep = 0; int nChemicalFlowStep = 0;
int ifStartFromPerfectGasResults = 0; int ifStartFromPerfectGasResults = 0;
int isUseNoneqCond = 0;
double frozenCondition = 0.01;
int nLeakageMonitor = 0;
double totalLeakageVolume = 1000.0;
double monitorThresholdValue = 0.05;
double sprayFactor = 0.0;
######################################################################### #########################################################################
// Multi-Grid parameters. // Multi-Grid parameters.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order. // 1 -- zero order.
// 2 -- first-order. (default) // 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit. // mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1; int nMGLevel = 1;
int MGCoarsestIteration = 1; int MGCoarsestIteration = 1;
int MGPreIteration = 1; int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat"; string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
######################################################################### #************************************************************************
# High Order Struct Solver # # High Order Struct Solver *
######################################################################### #************************************************************************
// isFVMOrFDM: // isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method. // 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method. // 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not. // codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-overlapping grid. // 0 -- NON-overlapping grid.
// 1 -- Overlapping grid. // 1 -- Overlapping grid.
// oversetInterpolationMethod: the method of overset interpolation while field simulation // oversetInterpolationMethod: the method of overset interpolation while field simulation.
// 0 -- set the acceptor cell value by donor cell value. // 0 -- set the acceptor cell value by donor cell value.
// 1 -- set the acceptor cell value by distance weight of donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value.
// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated.
// 0 -- no.
// 1 -- yes.
// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in
// the current overset grid(only for three dimension).
// 0 -- no.
// 1 -- yes.
// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid.
// 0 -- no.
// 1 -- yes.
// walldistMainZone: The initial value of background grid which does not exist wall boundary condition.
// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell.
// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region.
// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary.
// 0 -- one layer.
// 1 -- two layers.
// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region.
// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure.
// 0 -- no.
// 1 -- yes.
int codeOfOversetGrid = 0; int codeOfOversetGrid = 0;
int oversetInterpolationMethod = 0; int oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0; int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0; int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0; int outTecplotOverset = 0;
int outPutOversetVisualization = 0; int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2; int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------ // ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0; double referenceVelocity = 1.0;
double referenceDensity = 1.0; double referenceDensity = 1.0;
int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
int strategyForGCLSource = 0; //0-present; 1-Ahn; int strategyForGCLSource = 0; // 0-present; 1-Ahn.
//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton // 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton.
int methodForKineticEquation = 0; int methodForKineticEquation = 0;
double relaxParameterOfKinetic = 1.0; double relaxParameterOfKinetic = 1.0;
######################################################################### #************************************************************************
# motive information # # motive information *
######################################################################### #************************************************************************
int numberOfMovingBodies = 1; int numberOfMovingBodies = 1;
############################## body0 ############################## ############################## body0 ##############################
//mass of parts // mass of parts.
double mass_0 = 1.0; double mass_0 = 1.0;
//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz // gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_0 = 0.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz.
double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
//initial six DOF position information of parts. xc yc zc // initial six DOF position information of parts. xc yc zc.
double massCenter_0[] = 0.0, 0.0, 0.0; double massCenter_0[] = 0.0, 0.0, 0.0;
//initial six DOF position information of parts. angleX angleY angleZ // if reset mass center while restart.
int resetMassCenter_0 = 0;
// position offset of parts. dx dy dz.
double massCenterDxyz_0[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_0[] = 0.0, 0.0, 0.0; double attitudeAngle_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. vc vy vz // initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_0[] = 0.0, 0.0, 0.0; double massCenterVelocity_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. omigX omigY omigZ // initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_0[] = 0.0, 0.0, 0.0; double angularVelocity_0[] = 0.0, 0.0, 0.0;
// the object that the parts belong to. // the object that the parts belong to.
int fartherIndex_0 = -1; int fartherIndex_0 = -1;
//the assembly position of the parts. xc yc zc angleX angleY angleZ // the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
// the move pattern of the parts. // the move pattern of the parts.
// -1 given motion partten. // -1 given motion partten.
@ -1349,23 +1403,24 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0
int RBDMethod_0 = 0; int RBDMethod_0 = 0;
double amplitude_0 = 0.0; double amplitude_0 = 0.0;
double reduceFrequency_0 = 0.0; double reduceFrequency_0 = 0.0;
//direction of rotation // direction of rotation.
// 1 -- clockwise from the point of view along the positive x axis. // 1 -- clockwise from the point of view along the positive x axis.
// -1 -- anticlockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1; int direction_0 = -1;
double rotateFrequency_0 = 0.0; double rotateFrequency_0 = 0.0;
//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; //string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter";
//additional force (system axis) fX fY fZ // dimensional physical time for additional force(s).
double addedForceTime_0[] = 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_0[] = 0.0, 0.0, 0.0; double addedForce_0[] = 0.0, 0.0, 0.0;
//additional moment of Force (system axis) mX mY mZ // additional moment(inertia system) mX mY mZ.
double addedMoment_0[] = 0.0, 0.0, 0.0; double addedMoment_0[] = 0.0, 0.0, 0.0;
// the deformation method of the parts. // the deformation method of the parts.
int morphing_0 = 0; int morphing_0 = 0;
// post indentify // post indentify.
int integralOrder = 4; int integralOrder = 4;
// ---------------- ATP read -------------------------------------------- // ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0; //@int inflowParaType = 0;
//@double refReNumber = 6.5e6; //@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0; //@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0; //@double refDimensionalDensity = 0;
//@string weatherDataFilePath = "./WRFData/";
######################################################################### //@double longitude = 110.95
# Old Parameter # //@double latitude = 19.61;
######################################################################### #************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0; int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
######################################################################### //double partialCFL[] = [0.0];
# Incompressible Parameter # //double partialSpeedCoef[] = [0.0];
######################################################################### //double partialSpeed[] = [0.0];
//double partialAttackd[] = [0.0];
//double partialSlide[] = [0.0];
//double partialPressure[] = [0.0];
//double partialTemperature[] = [0.0];
//double partialMassFractions[] = [0.0];
#************************************************************************
# Incompressible Parameter *
#************************************************************************
int isSolveEnergyEquation = 0; int isSolveEnergyEquation = 0;
int isSolveTurbEquation = 0; int isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0; int isSolveSpeciesEquation = 0;

View File

@ -4,9 +4,12 @@
// gridtype: Grid type for generation, conversion, reconstruction, merging. // gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid. // 0 -- Unstructured grid.
// 1 -- Structured grid. // 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process. // from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE. // -1 -- MULTI_TYPE.
// 1 -- PHengLEI, *.fts. // 1 -- PHengLEI, *.fts.
@ -18,7 +21,9 @@
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. // 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
// 8 -- GMSH, *.msh. // 8 -- GMSH, *.msh.
int gridtype = 0; int gridtype = 0;
int axisup = 2; int nAxisRotateTimes = 1;
int axisRotateOrder[] = [1];
double axisRotateAngles[]= [90.0];
int from_gtype = 2; int from_gtype = 2;
######################################################################### #########################################################################

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows + // Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center + // China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 + // (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
########################################################################### ###########################################################################
# Default parameters for Grid conversion # # Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0; int multiblock = 0;
int iadapt = 0; int iadapt = 0;
int SymmetryFaceVector = 1; int SymmetryFaceVector = 1;
int gridReorder = 0; int gridReorder = 0;
int faceReorderMethod = 0; int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
int axisup = 1; // 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition".
// 0 -- Interface. (default) // 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver. // 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Grid data type # # Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1; int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas"; string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = ""; string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------ // ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction. which only support one direction.
// rotationAngle: The relative angle between two periodic face. // rotationAngle: The relative angle between two periodic face.
which is recorded in degrees. which is recorded in degrees.
int periodicType = 0; int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0]; double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0; double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid. // 2 -- refine structured grid.
// maxproc: The number of partition zones that want to be divided into. // maxproc: The number of partition zones that want to be divided into.
// numberOfMultifile: The number of partition grid files that want to be dumped out. // numberOfMultifile: The number of partition grid files that want to be dumped out.
int pgridtype = 0; int pgridtype = 0;
int maxproc = 4; int maxproc = 4;
int numberOfMultifile = 1; int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1]; int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy: // parallelStrategy:
//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. // 0 -- each zone is assigned to the one that defined in grid partition procedure.
//! -# 1 : random assigned for each zone or by some else ways. // 1 -- random assigned for each zone or by some else ways.
int parallelStrategy = 1; int parallelStrategy = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance. // 1 -- perfect balance.
// maxproc -- perfect imbalance. // maxproc -- perfect imbalance.
// 1.05 -- recommended. // 1.05 -- recommended.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int npartmethod = 1; int npartmethod = 1;
int parallelPartitionMethod = 2; int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. // intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual file 'res.dat' saved. // intervalStepRes: The step intervals for residual file 'res.dat' saved.
// 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 maxSimuStep = 20000; int maxSimuStep = 20000;
int intervalStepFlow = 1000; int intervalStepFlow = 1000;
int intervalStepPlot = 1000; int intervalStepPlot = 1000;
int intervalStepSample = 1000; int intervalStepSample = 1000;
int intervalStepForce = 100; int intervalStepForce = 100;
int intervalStepRes = 10; int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible: // compressible:
// 0 -- incompressible flow. // 0 -- incompressible flow.
// 1 -- compressible flow. (default) // 1 -- compressible flow. (default)
int compressible = 1; int compressible = 1;
// 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)
// Kprec: The coefficient K for the cut-off velocity.
// 1.0~3.0 is suggested. (default, 3.0)
// preconFarfieldBCMethod: The precondition method for farfield boundary condition.
// 0 -- precondition far-field boundary based on riemann invariants.
// 1 -- Turkel's simplified far-field boundary condition.
int ifLowSpeedPrecon = 0;
double Kprec = 3.0;
int preconFarfieldBCMethod = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# CFD Control Parameter # # CFD Control Parameter #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions. // 0 -- the nondimensional conditions.
// 1 -- the flight conditions. // 1 -- the flight conditions.
// 2 -- the experiment conditions. // 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions. // 3 -- the subsonic boundary conditions. (Useless!)
// 4 -- the condition that the velocity, temperature and density are given. // 4 -- the condition that the velocity, temperature and density are given.
// 5 -- the condition that the velocity, temperature and pressure are given. // 5 -- the condition that the velocity, temperature and pressure are given.
//flowInitMethod: Flow field initialization method.
// 0 -- The entire flow field is initialized according to Infinite velocity.
// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m. // 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. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// freestream_vibration_temperature: Dimensional freestream vibration temperature. // freestream_vibration_temperature: Dimensional freestream vibration temperature.
@ -303,11 +314,11 @@ int compressible = 1;
// condition is radiation equilibrium temperature, and 0.8 is the default value. // condition is radiation equilibrium temperature, and 0.8 is the default value.
// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol.
// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on.
int directionMethod = 0; int directionMethod = 0;
double refMachNumber = 0.73; double refMachNumber = 0.73;
double attackd = 2.79; double attackd = 2.79;
double angleSlide = 0.00; double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0; int inflowParaType = 0;
double refReNumber = 6.5e6; double refReNumber = 6.5e6;
@ -321,14 +332,6 @@ double freestream_vibration_temperature = 300.00;
//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). //double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2).
//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). //double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)).
//int inflowParaType = 3;
//int nsubsonicInlet = 1;
//int nsubsonicOutlet = 1;
//string inLetFileName = "./bin/subsonicInlet.hypara";
//string outLetFileName = "./bin/subsonicOutlet.hypara";
//double refDimensionalTemperature = 288.144;
//double refDimensionalPressure = 1.01313E05;
// The velocity, temperature and density are fixed. // The velocity, temperature and density are fixed.
//int inflowParaType = 4; //int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0; //double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed. // The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6; //int inflowParaType = 6;
//double refDimensionalTemperature = 293; //double refDimensionalTemperature = 293.0;
//double refDimensionalPressure = 8886.06; //double refDimensionalPressure = 8886.06;
// The velocity, temperature and pressure are read from file.
//int inflowParaType = 7;
//string weatherDataFilePath = "./WRFData/";
//double longitude = 110.95
//double latitude = 19.61;
double wallTemperature = -1.0; double wallTemperature = -1.0;
double radiationCoef = 0.8; double radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter. double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol. double refMolecularWeight = 28.9644; // unit of g/mol.
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Spatial Discretisation # # Spatial Discretisation #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
#******************************************************************* #************************************************************************
# Struct Solver * # Struct Solver *
#******************************************************************* #************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid. // inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid. // Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f". // -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe". // -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid. // isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default) // 0 -- NO. (default)
// 1 -- Yes. // 1 -- Yes.
// str_limiter_name: Limiter of struct grid. // str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". // -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter. // -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version. // -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" // -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe"; string inviscidSchemeName = "roe";
int isWennScheme = 0; int isWennScheme = 0;
string str_limiter_name = "vanalbada"; string str_limiter_name = "vanalbada";
#******************************************************************* #************************************************************************
# UnStruct Solver or Common * # UnStruct Solver or Common *
#******************************************************************* #************************************************************************
// viscousType: Viscous model. // viscousType: Viscous model.
// 0 -- Euler. // 0 -- Euler.
// 1 -- Lamilar. // 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES. // 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. // uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// Using this when solve Unstructered grid or hybrid. // Using this when solve Unstructered grid or hybrid.
// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle". // -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle",
// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+".
// uns_limiter_name: Limiter of Unstruct grid. // uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod". // -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st". // -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter. // -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term. // uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2". // -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used. // 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// It is used to scale the default Roe entropy fix coefficients. // It is used to scale the default Roe entropy fix coefficients.
// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 // AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0.
//int viscousType = 0; //int viscousType = 0;
//string viscousName = "Euler"; //string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0; double AusmpwPlusLimiter = 1.0;
//----------------------------------------------------------------------- #************************************************************************
# Temporal Discretisation # # Temporal Discretisation *
//----------------------------------------------------------------------- #************************************************************************
// iunsteady: Steady or unsteady. // iunsteady: Steady or unsteady.
// 0 -- steady. // 0 -- steady.
// 1 -- unsteay. // 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration. // 6 -- Jacobian iteration.
// 7 -- Line LU-SGS. // 7 -- Line LU-SGS.
// 8 -- Matrix LU-SGS. // 8 -- Matrix LU-SGS.
// 9 -- GMRES.
// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. // iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation.
// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. // Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method.
// CFLStart: Started cfl number. // CFLStart: Started cfl number.
// CFLEnd: End cfl number. // CFLEnd: End cfl number.
// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. // CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd.
// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration.
// OriginalTscheme : Used for LUSGS and GMres hybrid computing.
// useLUSGSprecond: Initialize flow field for GMRES.
// 0 --Initialize by first order Jacobian matrix.
// 1 --Initialize by LUSGS.
// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field.
// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) // ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. // swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. // nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function. // 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step. // RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step. // lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0; int iunsteady = 0;
double physicalTimeStep = 0.01; double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001; double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000; int startStatisticStep = 800000;
double statisticalTimePeriod = -1.0; double statisticalTimePeriod = -1.0;
int statisticMethod = 0; int statisticMethod = 0;
int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2.
int methodOfDualTime = 3; int methodOfDualTime = 3;
int min_sub_iter = 50; int min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01; double CFLStart = 0.01;
double CFLEnd = 10.0; double CFLEnd = 10.0;
int CFLVaryStep = 500; int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2; double pMaxForCFL = 0.2;
double pMinForCFL = 0.1; double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2; double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01; double visl_min = 0.01;
double turbCFLScale = 1.0; double turbCFLScale = 1.0;
double csrv = 2.0; double csrv = 1.0;
double timemax = 1.0e10; double timemax = 1.0e10;
double dtsave = -1.0; double dtsave = -1.0;
int maxale = 10; int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4; //int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
#************************************************************************
//----------------------------------------------------------------------- # File In or Out *
# File In or Out # #************************************************************************
//-----------------------------------------------------------------------
// numberOfGridGroups: The number of grid groups. // numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path, // gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory. // which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance. // nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance. // 0 -- Compute wall distance.
// 1 -- Not compute. // 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. // protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. // wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1; int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts"; string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = ""; string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat"; string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat"; string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat"; string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat"; string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat"; string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt"; string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat"; string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.dat"; string protectionFile1 = "results/flow1.dat";
string wall_heatfluxfile = "results/wall_heatflux.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat";
string protectionTurbFile0 = "results/turb0.dat";
string protectionTurbFile1 = "results/turb1.dat";
string protectionTransitionFile0 = "results/transition0.dat";
string protectionTransitionFile1 = "results/transition1.dat";
int nDumpSurfaceInfo = 0; int nDumpSurfaceInfo = 0;
string wall_varfile = ""; string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat"; string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat"; string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt"; string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile. // visualfileType: The file type of visualfile.
// 0 -- Tecplot binary. // 0 -- Tecplot binary.
// 1 -- Tecplot ASCII. // 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1; int visualfileType = 1;
// samplefileMode: The dump mode of sample file. // samplefileMode: The dump mode of sample file.
@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0];
// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36),
// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40),
// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), // -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81) // -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- specific heat ratio(gama, 56) // -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big. // Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition---------------- //-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall. // nVisualWallVariables: The number of visual variables on wall.
// visualWallVariables : dumped variable types, listed as following: // visualWallVariables : dumped variable types, listed as following:
// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), // -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4),
// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), // -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8),
// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), // -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11),
// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) // -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15),
// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) // -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19),
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) // -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8; int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
@ -739,7 +761,9 @@ int dumpStandardModel = 0;
// 1 -- Real cell where the probe is located. // 1 -- Real cell where the probe is located.
// nProbeVariables: Number of variables want to be dumped for probes monitered. // nProbeVariables: Number of variables want to be dumped for probes monitered.
// probeVariables : Variable types dumped, listed as following: // probeVariables : Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). // -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9),
// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12).
// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!!
// probeVariables order must from small to big. // probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0; int searchCellsMethod = 0;
int nProbeVariables = 7; int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0; int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter # #************************************************************************
//----------------------------------------------------------------------- # Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence. // turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source. // kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original. // 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type // transitionType: transition model type
// 0 -- none. // 0 -- none.
// 2 -- gama-re-theta. // 2 -- gama-re-theta.
// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition // turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition.
// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not // freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not.
int turbInterval = 1; int turbInterval = 1;
int turbOrderStruct = 2; int turbOrderStruct = 2;
int kindOfTurbSource = 0; int kindOfTurbSource = 0;
int mod_turb_res = 0; int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3; double freeStreamViscosity = 1.0e-3;
double muoo = 3.0; double muoo = 3.0;
double kwoo = 5.0; double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0; int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0; double freeDecayXLocation = 0.0;
int compressibleCorrection = 0; int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1; int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max. // maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10; double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0; int monitor_vistmax = 0;
//----------------------------------------------------------------------- #************************************************************************
# LES Parameter # # LES Parameter *
//----------------------------------------------------------------------- #************************************************************************
// iLES: Create LESSolver or not. // iLES: Create LESSolver or not.
// = 1 - Create LESSolver; // = 1 -- Create LESSolver;
// != 1 - not. // != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb. // amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random 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. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter; // = 0 -- in only first sub-iter;
// != 0 - in every sub-iter. // != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not. // ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not. // ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not; // = 0 -- not;
// != 0 - Add body force. // != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not. // bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb. // utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model. // sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom"; // = "dsmCom";
// = "wale"; // = "wale";
// = "sigma". // = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); // deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3); // = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti. // = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function; // wallDampingFunctionType: = 0 -- no wall function;
// = 1 - van Driest; // = 1 -- van Driest;
// = 2 - developed by Dr. Deng Xiaobing; // = 2 -- developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli. // = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type. // turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul; // = 0 -- mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul; // = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 - mu_total = max(mut ,0)+ mul. // = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model. // smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model. // waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not. // filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average 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. // isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0; int iLES = 0;
string sgsmodel = "smagorinsky"; string sgsmodel = "smagorinsky";
int deltaFunctionType = 2; int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1; int averageWidth = 1;
int monitorNegativeConstant = 0; int monitorNegativeConstant = 0;
//----------------------------------------------------------------------- #************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas # # Other Parameters for Hypersonic Non-equilibrium Gas *
//----------------------------------------------------------------------- #************************************************************************
// dg_high_order: // dg_high_order:
// 0 -- generic order accuracy. // 0 -- generic order accuracy.
// 1 -- high order accuracy. // 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes. // 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files. // 1 -- gas model is imported from library files.
// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver,
// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver.
// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps.
// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual.
// nm: Equation number of the physics, but is out of commision now. // nm: Equation number of the physics, but is out of commision now.
// 4 -- for 2D. // 4 -- for 2D.
// 5 -- for 3D. // 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas. // 0 -- perfect gas.
// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component.
// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. // nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. // nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. // nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSlipBCModel: The computational model of slip boundary conditions. // nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip. // 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions. // 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions. // 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model. // 1 -- One-temperature model.
// 2 -- Two-temperature model. // 2 -- Two-temperature model.
// 3 -- Three-temperature model. // 3 -- Three-temperature model.
// isUseNoneqCond:
// 0 -- compute the source terms without any conditions.
// 1 -- compute the source terms using the non-equilibrium condition.
// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value.
// nIdealState: whether take all gas species as ideal gas for gas-mixture process. // nIdealState: whether take all gas species as ideal gas for gas-mixture process.
// 0 -- No. // 0 -- No.
// 1 -- Yes. // 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method. // 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the polynomial fitting method. // 1 -- the energy term is computed using the polynomial fitting method.
// 2 -- the energy term is computed using the piecewise polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method.
@ -946,14 +965,13 @@ int monitorNegativeConstant = 0;
// 1.0 -- proposed by Maxwell. // 1.0 -- proposed by Maxwell.
// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. // sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall.
// 1.146 -- proposed for an additional "fictitious" velocity slip. // 1.146 -- proposed for an additional "fictitious" velocity slip.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. // chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. // spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. // staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions. // nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 0 -- not freeze, the chemical reaction sources will be calculated. // 0 -- not freeze, the chemical reaction sources will be calculated.
// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te // 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.
// veTemperatureMin: The minimum of Tv and Te.
// maxViscous: the maximum of Viscous. // maxViscous: the maximum of Viscous.
// trTemperatureMin: the minimum value of trTemperature. // trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature. // veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species // nSpeciesLimit: limitter of gas species
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction // nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0. // 0 -- method 0.
// 1 -- method 1. // 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid // nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef // nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource // nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource // nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori.) // 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New) // 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature. // nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs // 0 -- not used.
// 0 -- not used // 1 -- used.
// 1 -- used // nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// nDiagonalModified: Modified on Diagonal // 1 -- new.
// 0 -- not used // nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 1 -- Ori. // 0 -- not used.
// 2 -- new // 1 -- new.
// nGradPrimtiveMethod: // nGradPrimtiveMethod:
// 0 -- Ori. // 0 -- Ori.
// 1 -- new // 1 -- new.
// nAblation: // nAblation:
// 0 -- The wall ablation is not computed. // 0 -- The wall ablation is not computed.
// 1 -- The wall ablation is computed. // 1 -- The wall ablation is computed.
@ -1017,8 +1033,8 @@ int monitorNegativeConstant = 0;
// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. // "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. // "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting. // "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©. // for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©. // for unstruct solver mixing multi-species<65><73>O2 NO CO CO2 H2 N2 Air CH4<48><34>.
// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // For self-definition model, the gasfile is used to indicate the file path of the new gas model.
// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma.
// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation.
// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation.
// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation.
// useHyflowSetting : Setting for HyFLOW GUI.
// 0 -- PHengLEI
// 1 -- HyFLOW
// nProtectData: Use the continuation file data protection mechanism. // nProtectData: Use the continuation file data protection mechanism.
// 0 -- no // 0 -- no.
// 1 -- yes // 1 -- yes.
// nTvChange: Judge whether the Tv equals Ttr.
// 0 -- yes.
// 1 -- no.
// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions.
// nFraction: the initial fractions type of species.
// 0 -- mass fraction.
// 1 -- mole fraction.
int dg_high_order = 0; int dg_high_order = 0;
int iapplication = 0; int iapplication = 0;
int isAdaptiveSolver = 0; int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1; double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0; double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0; double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0; int nDebug = 0;
int nSpeciesLimit = 1; int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5; int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1; int veTemperatureMinModified = 1;
int nDiagonalModified = 0; int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1; int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1; int nInviscidFluxModify = 1;
int nQlLimitMethod = 2; int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1; int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0; int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0; int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0; int nAblation = 0;
int isInjection = 0; int isInjection = 0;
int nViscosityModel = 0; int nViscosityModel = 0;
int nMarsModel = 0; int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5"; string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; //string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2"; string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2"; //string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0"; //string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0; int nContinueModel = 0;
int nChemicalFlowStep = 0; int nChemicalFlowStep = 0;
int ifStartFromPerfectGasResults = 0; int ifStartFromPerfectGasResults = 0;
int isUseNoneqCond = 0;
double frozenCondition = 0.01;
int nLeakageMonitor = 0;
double totalLeakageVolume = 1000.0;
double monitorThresholdValue = 0.05;
double sprayFactor = 0.0;
######################################################################### #########################################################################
// Multi-Grid parameters. // Multi-Grid parameters.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order. // 1 -- zero order.
// 2 -- first-order. (default) // 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit. // mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1; int nMGLevel = 1;
int MGCoarsestIteration = 1; int MGCoarsestIteration = 1;
int MGPreIteration = 1; int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat"; string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
######################################################################### #************************************************************************
# High Order Struct Solver # # High Order Struct Solver *
######################################################################### #************************************************************************
// isFVMOrFDM: // isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method. // 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method. // 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not. // codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-overlapping grid. // 0 -- NON-overlapping grid.
// 1 -- Overlapping grid. // 1 -- Overlapping grid.
// oversetInterpolationMethod: the method of overset interpolation while field simulation // oversetInterpolationMethod: the method of overset interpolation while field simulation.
// 0 -- set the acceptor cell value by donor cell value. // 0 -- set the acceptor cell value by donor cell value.
// 1 -- set the acceptor cell value by distance weight of donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value.
// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated.
// 0 -- no.
// 1 -- yes.
// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in
// the current overset grid(only for three dimension).
// 0 -- no.
// 1 -- yes.
// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid.
// 0 -- no.
// 1 -- yes.
// walldistMainZone: The initial value of background grid which does not exist wall boundary condition.
// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell.
// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region.
// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary.
// 0 -- one layer.
// 1 -- two layers.
// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region.
// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure.
// 0 -- no.
// 1 -- yes.
int codeOfOversetGrid = 0; int codeOfOversetGrid = 0;
int oversetInterpolationMethod = 0; int oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0; int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0; int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0; int outTecplotOverset = 0;
int outPutOversetVisualization = 0; int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2; int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------ // ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0; double referenceVelocity = 1.0;
double referenceDensity = 1.0; double referenceDensity = 1.0;
int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
int strategyForGCLSource = 0; //0-present; 1-Ahn; int strategyForGCLSource = 0; // 0-present; 1-Ahn.
//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton // 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton.
int methodForKineticEquation = 0; int methodForKineticEquation = 0;
double relaxParameterOfKinetic = 1.0; double relaxParameterOfKinetic = 1.0;
######################################################################### #************************************************************************
# motive information # # motive information *
######################################################################### #************************************************************************
int numberOfMovingBodies = 1; int numberOfMovingBodies = 1;
############################## body0 ############################## ############################## body0 ##############################
//mass of parts // mass of parts.
double mass_0 = 1.0; double mass_0 = 1.0;
//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz // gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_0 = 0.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz.
double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
//initial six DOF position information of parts. xc yc zc // initial six DOF position information of parts. xc yc zc.
double massCenter_0[] = 0.0, 0.0, 0.0; double massCenter_0[] = 0.0, 0.0, 0.0;
//initial six DOF position information of parts. angleX angleY angleZ // if reset mass center while restart.
int resetMassCenter_0 = 0;
// position offset of parts. dx dy dz.
double massCenterDxyz_0[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_0[] = 0.0, 0.0, 0.0; double attitudeAngle_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. vc vy vz // initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_0[] = 0.0, 0.0, 0.0; double massCenterVelocity_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. omigX omigY omigZ // initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_0[] = 0.0, 0.0, 0.0; double angularVelocity_0[] = 0.0, 0.0, 0.0;
// the object that the parts belong to. // the object that the parts belong to.
int fartherIndex_0 = -1; int fartherIndex_0 = -1;
//the assembly position of the parts. xc yc zc angleX angleY angleZ // the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
// the move pattern of the parts. // the move pattern of the parts.
// -1 given motion partten. // -1 given motion partten.
@ -1349,23 +1403,24 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0
int RBDMethod_0 = 0; int RBDMethod_0 = 0;
double amplitude_0 = 0.0; double amplitude_0 = 0.0;
double reduceFrequency_0 = 0.0; double reduceFrequency_0 = 0.0;
//direction of rotation // direction of rotation.
// 1 -- clockwise from the point of view along the positive x axis. // 1 -- clockwise from the point of view along the positive x axis.
// -1 -- anticlockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1; int direction_0 = -1;
double rotateFrequency_0 = 0.0; double rotateFrequency_0 = 0.0;
//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; //string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter";
//additional force (system axis) fX fY fZ // dimensional physical time for additional force(s).
double addedForceTime_0[] = 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_0[] = 0.0, 0.0, 0.0; double addedForce_0[] = 0.0, 0.0, 0.0;
//additional moment of Force (system axis) mX mY mZ // additional moment(inertia system) mX mY mZ.
double addedMoment_0[] = 0.0, 0.0, 0.0; double addedMoment_0[] = 0.0, 0.0, 0.0;
// the deformation method of the parts. // the deformation method of the parts.
int morphing_0 = 0; int morphing_0 = 0;
// post indentify // post indentify.
int integralOrder = 4; int integralOrder = 4;
// ---------------- ATP read -------------------------------------------- // ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0; //@int inflowParaType = 0;
//@double refReNumber = 6.5e6; //@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0; //@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0; //@double refDimensionalDensity = 0;
//@string weatherDataFilePath = "./WRFData/";
######################################################################### //@double longitude = 110.95
# Old Parameter # //@double latitude = 19.61;
######################################################################### #************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0; int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
######################################################################### //double partialCFL[] = [0.0];
# Incompressible Parameter # //double partialSpeedCoef[] = [0.0];
######################################################################### //double partialSpeed[] = [0.0];
//double partialAttackd[] = [0.0];
//double partialSlide[] = [0.0];
//double partialPressure[] = [0.0];
//double partialTemperature[] = [0.0];
//double partialMassFractions[] = [0.0];
#************************************************************************
# Incompressible Parameter *
#************************************************************************
int isSolveEnergyEquation = 0; int isSolveEnergyEquation = 0;
int isSolveTurbEquation = 0; int isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0; int isSolveSpeciesEquation = 0;

View File

@ -4,9 +4,12 @@
// gridtype: Grid type for generation, conversion, reconstruction, merging. // gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid. // 0 -- Unstructured grid.
// 1 -- Structured grid. // 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process. // from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE. // -1 -- MULTI_TYPE.
// 1 -- PHengLEI, *.fts. // 1 -- PHengLEI, *.fts.
@ -18,7 +21,9 @@
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. // 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
// 8 -- GMSH, *.msh. // 8 -- GMSH, *.msh.
int gridtype = 0; int gridtype = 0;
int axisup = 1; int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
int from_gtype = 5; int from_gtype = 5;
######################################################################### #########################################################################

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows + // Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center + // China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 + // (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
########################################################################### ###########################################################################
# Default parameters for Grid conversion # # Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0; int multiblock = 0;
int iadapt = 0; int iadapt = 0;
int SymmetryFaceVector = 1; int SymmetryFaceVector = 1;
int gridReorder = 0; int gridReorder = 0;
int faceReorderMethod = 0; int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
int axisup = 1; // 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition".
// 0 -- Interface. (default) // 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver. // 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Grid data type # # Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1; int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas"; string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = ""; string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------ // ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction. which only support one direction.
// rotationAngle: The relative angle between two periodic face. // rotationAngle: The relative angle between two periodic face.
which is recorded in degrees. which is recorded in degrees.
int periodicType = 0; int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0]; double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0; double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid. // 2 -- refine structured grid.
// maxproc: The number of partition zones that want to be divided into. // maxproc: The number of partition zones that want to be divided into.
// numberOfMultifile: The number of partition grid files that want to be dumped out. // numberOfMultifile: The number of partition grid files that want to be dumped out.
int pgridtype = 0; int pgridtype = 0;
int maxproc = 4; int maxproc = 4;
int numberOfMultifile = 1; int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1]; int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy: // parallelStrategy:
//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. // 0 -- each zone is assigned to the one that defined in grid partition procedure.
//! -# 1 : random assigned for each zone or by some else ways. // 1 -- random assigned for each zone or by some else ways.
int parallelStrategy = 1; int parallelStrategy = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance. // 1 -- perfect balance.
// maxproc -- perfect imbalance. // maxproc -- perfect imbalance.
// 1.05 -- recommended. // 1.05 -- recommended.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int npartmethod = 1; int npartmethod = 1;
int parallelPartitionMethod = 2; int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. // intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual file 'res.dat' saved. // intervalStepRes: The step intervals for residual file 'res.dat' saved.
// 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 maxSimuStep = 20000; int maxSimuStep = 20000;
int intervalStepFlow = 1000; int intervalStepFlow = 1000;
int intervalStepPlot = 1000; int intervalStepPlot = 1000;
int intervalStepSample = 1000; int intervalStepSample = 1000;
int intervalStepForce = 100; int intervalStepForce = 100;
int intervalStepRes = 10; int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible: // compressible:
// 0 -- incompressible flow. // 0 -- incompressible flow.
// 1 -- compressible flow. (default) // 1 -- compressible flow. (default)
int compressible = 1; int compressible = 1;
// 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)
// Kprec: The coefficient K for the cut-off velocity.
// 1.0~3.0 is suggested. (default, 3.0)
// preconFarfieldBCMethod: The precondition method for farfield boundary condition.
// 0 -- precondition far-field boundary based on riemann invariants.
// 1 -- Turkel's simplified far-field boundary condition.
int ifLowSpeedPrecon = 0;
double Kprec = 3.0;
int preconFarfieldBCMethod = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# CFD Control Parameter # # CFD Control Parameter #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions. // 0 -- the nondimensional conditions.
// 1 -- the flight conditions. // 1 -- the flight conditions.
// 2 -- the experiment conditions. // 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions. // 3 -- the subsonic boundary conditions. (Useless!)
// 4 -- the condition that the velocity, temperature and density are given. // 4 -- the condition that the velocity, temperature and density are given.
// 5 -- the condition that the velocity, temperature and pressure are given. // 5 -- the condition that the velocity, temperature and pressure are given.
//flowInitMethod: Flow field initialization method.
// 0 -- The entire flow field is initialized according to Infinite velocity.
// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m. // 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. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// freestream_vibration_temperature: Dimensional freestream vibration temperature. // freestream_vibration_temperature: Dimensional freestream vibration temperature.
@ -303,11 +314,11 @@ int compressible = 1;
// condition is radiation equilibrium temperature, and 0.8 is the default value. // condition is radiation equilibrium temperature, and 0.8 is the default value.
// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol.
// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on.
int directionMethod = 0; int directionMethod = 0;
double refMachNumber = 0.73; double refMachNumber = 0.73;
double attackd = 2.79; double attackd = 2.79;
double angleSlide = 0.00; double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0; int inflowParaType = 0;
double refReNumber = 6.5e6; double refReNumber = 6.5e6;
@ -321,14 +332,6 @@ double freestream_vibration_temperature = 300.00;
//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). //double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2).
//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). //double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)).
//int inflowParaType = 3;
//int nsubsonicInlet = 1;
//int nsubsonicOutlet = 1;
//string inLetFileName = "./bin/subsonicInlet.hypara";
//string outLetFileName = "./bin/subsonicOutlet.hypara";
//double refDimensionalTemperature = 288.144;
//double refDimensionalPressure = 1.01313E05;
// The velocity, temperature and density are fixed. // The velocity, temperature and density are fixed.
//int inflowParaType = 4; //int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0; //double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed. // The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6; //int inflowParaType = 6;
//double refDimensionalTemperature = 293; //double refDimensionalTemperature = 293.0;
//double refDimensionalPressure = 8886.06; //double refDimensionalPressure = 8886.06;
// The velocity, temperature and pressure are read from file.
//int inflowParaType = 7;
//string weatherDataFilePath = "./WRFData/";
//double longitude = 110.95
//double latitude = 19.61;
double wallTemperature = -1.0; double wallTemperature = -1.0;
double radiationCoef = 0.8; double radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter. double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol. double refMolecularWeight = 28.9644; // unit of g/mol.
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Spatial Discretisation # # Spatial Discretisation #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
#******************************************************************* #************************************************************************
# Struct Solver * # Struct Solver *
#******************************************************************* #************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid. // inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid. // Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f". // -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe". // -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid. // isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default) // 0 -- NO. (default)
// 1 -- Yes. // 1 -- Yes.
// str_limiter_name: Limiter of struct grid. // str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". // -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter. // -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version. // -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" // -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe"; string inviscidSchemeName = "roe";
int isWennScheme = 0; int isWennScheme = 0;
string str_limiter_name = "vanalbada"; string str_limiter_name = "vanalbada";
#******************************************************************* #************************************************************************
# UnStruct Solver or Common * # UnStruct Solver or Common *
#******************************************************************* #************************************************************************
// viscousType: Viscous model. // viscousType: Viscous model.
// 0 -- Euler. // 0 -- Euler.
// 1 -- Lamilar. // 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES. // 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. // uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// Using this when solve Unstructered grid or hybrid. // Using this when solve Unstructered grid or hybrid.
// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle". // -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle",
// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+".
// uns_limiter_name: Limiter of Unstruct grid. // uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod". // -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st". // -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter. // -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term. // uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2". // -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used. // 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// It is used to scale the default Roe entropy fix coefficients. // It is used to scale the default Roe entropy fix coefficients.
// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 // AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0.
//int viscousType = 0; //int viscousType = 0;
//string viscousName = "Euler"; //string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0; double AusmpwPlusLimiter = 1.0;
//----------------------------------------------------------------------- #************************************************************************
# Temporal Discretisation # # Temporal Discretisation *
//----------------------------------------------------------------------- #************************************************************************
// iunsteady: Steady or unsteady. // iunsteady: Steady or unsteady.
// 0 -- steady. // 0 -- steady.
// 1 -- unsteay. // 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration. // 6 -- Jacobian iteration.
// 7 -- Line LU-SGS. // 7 -- Line LU-SGS.
// 8 -- Matrix LU-SGS. // 8 -- Matrix LU-SGS.
// 9 -- GMRES.
// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. // iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation.
// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. // Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method.
// CFLStart: Started cfl number. // CFLStart: Started cfl number.
// CFLEnd: End cfl number. // CFLEnd: End cfl number.
// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. // CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd.
// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration.
// OriginalTscheme : Used for LUSGS and GMres hybrid computing.
// useLUSGSprecond: Initialize flow field for GMRES.
// 0 --Initialize by first order Jacobian matrix.
// 1 --Initialize by LUSGS.
// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field.
// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) // ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. // swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. // nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function. // 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step. // RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step. // lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0; int iunsteady = 0;
double physicalTimeStep = 0.01; double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001; double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000; int startStatisticStep = 800000;
double statisticalTimePeriod = -1.0; double statisticalTimePeriod = -1.0;
int statisticMethod = 0; int statisticMethod = 0;
int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2.
int methodOfDualTime = 3; int methodOfDualTime = 3;
int min_sub_iter = 50; int min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01; double CFLStart = 0.01;
double CFLEnd = 10.0; double CFLEnd = 10.0;
int CFLVaryStep = 500; int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2; double pMaxForCFL = 0.2;
double pMinForCFL = 0.1; double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2; double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01; double visl_min = 0.01;
double turbCFLScale = 1.0; double turbCFLScale = 1.0;
double csrv = 2.0; double csrv = 1.0;
double timemax = 1.0e10; double timemax = 1.0e10;
double dtsave = -1.0; double dtsave = -1.0;
int maxale = 10; int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4; //int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
#************************************************************************
//----------------------------------------------------------------------- # File In or Out *
# File In or Out # #************************************************************************
//-----------------------------------------------------------------------
// numberOfGridGroups: The number of grid groups. // numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path, // gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory. // which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance. // nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance. // 0 -- Compute wall distance.
// 1 -- Not compute. // 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. // protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. // wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1; int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts"; string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = ""; string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat"; string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat"; string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat"; string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat"; string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat"; string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt"; string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat"; string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.dat"; string protectionFile1 = "results/flow1.dat";
string wall_heatfluxfile = "results/wall_heatflux.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat";
string protectionTurbFile0 = "results/turb0.dat";
string protectionTurbFile1 = "results/turb1.dat";
string protectionTransitionFile0 = "results/transition0.dat";
string protectionTransitionFile1 = "results/transition1.dat";
int nDumpSurfaceInfo = 0; int nDumpSurfaceInfo = 0;
string wall_varfile = ""; string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat"; string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat"; string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt"; string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile. // visualfileType: The file type of visualfile.
// 0 -- Tecplot binary. // 0 -- Tecplot binary.
// 1 -- Tecplot ASCII. // 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1; int visualfileType = 1;
// samplefileMode: The dump mode of sample file. // samplefileMode: The dump mode of sample file.
@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0];
// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36),
// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40),
// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), // -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81) // -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- specific heat ratio(gama, 56) // -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big. // Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition---------------- //-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall. // nVisualWallVariables: The number of visual variables on wall.
// visualWallVariables : dumped variable types, listed as following: // visualWallVariables : dumped variable types, listed as following:
// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), // -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4),
// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), // -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8),
// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), // -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11),
// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) // -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15),
// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) // -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19),
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) // -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8; int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
@ -739,7 +761,9 @@ int dumpStandardModel = 0;
// 1 -- Real cell where the probe is located. // 1 -- Real cell where the probe is located.
// nProbeVariables: Number of variables want to be dumped for probes monitered. // nProbeVariables: Number of variables want to be dumped for probes monitered.
// probeVariables : Variable types dumped, listed as following: // probeVariables : Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). // -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9),
// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12).
// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!!
// probeVariables order must from small to big. // probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0; int searchCellsMethod = 0;
int nProbeVariables = 7; int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0; int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter # #************************************************************************
//----------------------------------------------------------------------- # Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence. // turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source. // kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original. // 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type // transitionType: transition model type
// 0 -- none. // 0 -- none.
// 2 -- gama-re-theta. // 2 -- gama-re-theta.
// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition // turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition.
// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not // freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not.
int turbInterval = 1; int turbInterval = 1;
int turbOrderStruct = 2; int turbOrderStruct = 2;
int kindOfTurbSource = 0; int kindOfTurbSource = 0;
int mod_turb_res = 0; int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3; double freeStreamViscosity = 1.0e-3;
double muoo = 3.0; double muoo = 3.0;
double kwoo = 5.0; double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0; int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0; double freeDecayXLocation = 0.0;
int compressibleCorrection = 0; int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1; int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max. // maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10; double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0; int monitor_vistmax = 0;
//----------------------------------------------------------------------- #************************************************************************
# LES Parameter # # LES Parameter *
//----------------------------------------------------------------------- #************************************************************************
// iLES: Create LESSolver or not. // iLES: Create LESSolver or not.
// = 1 - Create LESSolver; // = 1 -- Create LESSolver;
// != 1 - not. // != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb. // amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random 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. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter; // = 0 -- in only first sub-iter;
// != 0 - in every sub-iter. // != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not. // ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not. // ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not; // = 0 -- not;
// != 0 - Add body force. // != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not. // bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb. // utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model. // sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom"; // = "dsmCom";
// = "wale"; // = "wale";
// = "sigma". // = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); // deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3); // = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti. // = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function; // wallDampingFunctionType: = 0 -- no wall function;
// = 1 - van Driest; // = 1 -- van Driest;
// = 2 - developed by Dr. Deng Xiaobing; // = 2 -- developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli. // = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type. // turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul; // = 0 -- mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul; // = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 - mu_total = max(mut ,0)+ mul. // = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model. // smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model. // waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not. // filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average 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. // isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0; int iLES = 0;
string sgsmodel = "smagorinsky"; string sgsmodel = "smagorinsky";
int deltaFunctionType = 2; int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1; int averageWidth = 1;
int monitorNegativeConstant = 0; int monitorNegativeConstant = 0;
//----------------------------------------------------------------------- #************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas # # Other Parameters for Hypersonic Non-equilibrium Gas *
//----------------------------------------------------------------------- #************************************************************************
// dg_high_order: // dg_high_order:
// 0 -- generic order accuracy. // 0 -- generic order accuracy.
// 1 -- high order accuracy. // 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes. // 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files. // 1 -- gas model is imported from library files.
// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver,
// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver.
// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps.
// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual.
// nm: Equation number of the physics, but is out of commision now. // nm: Equation number of the physics, but is out of commision now.
// 4 -- for 2D. // 4 -- for 2D.
// 5 -- for 3D. // 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas. // 0 -- perfect gas.
// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component.
// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. // nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. // nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. // nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSlipBCModel: The computational model of slip boundary conditions. // nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip. // 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions. // 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions. // 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model. // 1 -- One-temperature model.
// 2 -- Two-temperature model. // 2 -- Two-temperature model.
// 3 -- Three-temperature model. // 3 -- Three-temperature model.
// isUseNoneqCond:
// 0 -- compute the source terms without any conditions.
// 1 -- compute the source terms using the non-equilibrium condition.
// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value.
// nIdealState: whether take all gas species as ideal gas for gas-mixture process. // nIdealState: whether take all gas species as ideal gas for gas-mixture process.
// 0 -- No. // 0 -- No.
// 1 -- Yes. // 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method. // 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the polynomial fitting method. // 1 -- the energy term is computed using the polynomial fitting method.
// 2 -- the energy term is computed using the piecewise polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method.
@ -946,14 +965,13 @@ int monitorNegativeConstant = 0;
// 1.0 -- proposed by Maxwell. // 1.0 -- proposed by Maxwell.
// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. // sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall.
// 1.146 -- proposed for an additional "fictitious" velocity slip. // 1.146 -- proposed for an additional "fictitious" velocity slip.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. // chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. // spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. // staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions. // nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 0 -- not freeze, the chemical reaction sources will be calculated. // 0 -- not freeze, the chemical reaction sources will be calculated.
// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te // 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.
// veTemperatureMin: The minimum of Tv and Te.
// maxViscous: the maximum of Viscous. // maxViscous: the maximum of Viscous.
// trTemperatureMin: the minimum value of trTemperature. // trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature. // veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species // nSpeciesLimit: limitter of gas species
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction // nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0. // 0 -- method 0.
// 1 -- method 1. // 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid // nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef // nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource // nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource // nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori.) // 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New) // 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature. // nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs // 0 -- not used.
// 0 -- not used // 1 -- used.
// 1 -- used // nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// nDiagonalModified: Modified on Diagonal // 1 -- new.
// 0 -- not used // nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 1 -- Ori. // 0 -- not used.
// 2 -- new // 1 -- new.
// nGradPrimtiveMethod: // nGradPrimtiveMethod:
// 0 -- Ori. // 0 -- Ori.
// 1 -- new // 1 -- new.
// nAblation: // nAblation:
// 0 -- The wall ablation is not computed. // 0 -- The wall ablation is not computed.
// 1 -- The wall ablation is computed. // 1 -- The wall ablation is computed.
@ -1017,8 +1033,8 @@ int monitorNegativeConstant = 0;
// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. // "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. // "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting. // "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©. // for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©. // for unstruct solver mixing multi-species<65><73>O2 NO CO CO2 H2 N2 Air CH4<48><34>.
// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // For self-definition model, the gasfile is used to indicate the file path of the new gas model.
// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma.
// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation.
// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation.
// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation.
// useHyflowSetting : Setting for HyFLOW GUI.
// 0 -- PHengLEI
// 1 -- HyFLOW
// nProtectData: Use the continuation file data protection mechanism. // nProtectData: Use the continuation file data protection mechanism.
// 0 -- no // 0 -- no.
// 1 -- yes // 1 -- yes.
// nTvChange: Judge whether the Tv equals Ttr.
// 0 -- yes.
// 1 -- no.
// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions.
// nFraction: the initial fractions type of species.
// 0 -- mass fraction.
// 1 -- mole fraction.
int dg_high_order = 0; int dg_high_order = 0;
int iapplication = 0; int iapplication = 0;
int isAdaptiveSolver = 0; int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1; double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0; double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0; double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0; int nDebug = 0;
int nSpeciesLimit = 1; int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5; int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1; int veTemperatureMinModified = 1;
int nDiagonalModified = 0; int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1; int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1; int nInviscidFluxModify = 1;
int nQlLimitMethod = 2; int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1; int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0; int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0; int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0; int nAblation = 0;
int isInjection = 0; int isInjection = 0;
int nViscosityModel = 0; int nViscosityModel = 0;
int nMarsModel = 0; int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5"; string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; //string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2"; string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2"; //string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0"; //string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0; int nContinueModel = 0;
int nChemicalFlowStep = 0; int nChemicalFlowStep = 0;
int ifStartFromPerfectGasResults = 0; int ifStartFromPerfectGasResults = 0;
int isUseNoneqCond = 0;
double frozenCondition = 0.01;
int nLeakageMonitor = 0;
double totalLeakageVolume = 1000.0;
double monitorThresholdValue = 0.05;
double sprayFactor = 0.0;
######################################################################### #########################################################################
// Multi-Grid parameters. // Multi-Grid parameters.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order. // 1 -- zero order.
// 2 -- first-order. (default) // 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit. // mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1; int nMGLevel = 1;
int MGCoarsestIteration = 1; int MGCoarsestIteration = 1;
int MGPreIteration = 1; int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat"; string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
######################################################################### #************************************************************************
# High Order Struct Solver # # High Order Struct Solver *
######################################################################### #************************************************************************
// isFVMOrFDM: // isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method. // 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method. // 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not. // codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-overlapping grid. // 0 -- NON-overlapping grid.
// 1 -- Overlapping grid. // 1 -- Overlapping grid.
// oversetInterpolationMethod: the method of overset interpolation while field simulation // oversetInterpolationMethod: the method of overset interpolation while field simulation.
// 0 -- set the acceptor cell value by donor cell value. // 0 -- set the acceptor cell value by donor cell value.
// 1 -- set the acceptor cell value by distance weight of donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value.
// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated.
// 0 -- no.
// 1 -- yes.
// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in
// the current overset grid(only for three dimension).
// 0 -- no.
// 1 -- yes.
// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid.
// 0 -- no.
// 1 -- yes.
// walldistMainZone: The initial value of background grid which does not exist wall boundary condition.
// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell.
// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region.
// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary.
// 0 -- one layer.
// 1 -- two layers.
// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region.
// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure.
// 0 -- no.
// 1 -- yes.
int codeOfOversetGrid = 0; int codeOfOversetGrid = 0;
int oversetInterpolationMethod = 0; int oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0; int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0; int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0; int outTecplotOverset = 0;
int outPutOversetVisualization = 0; int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2; int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------ // ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0; double referenceVelocity = 1.0;
double referenceDensity = 1.0; double referenceDensity = 1.0;
int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
int strategyForGCLSource = 0; //0-present; 1-Ahn; int strategyForGCLSource = 0; // 0-present; 1-Ahn.
//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton // 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton.
int methodForKineticEquation = 0; int methodForKineticEquation = 0;
double relaxParameterOfKinetic = 1.0; double relaxParameterOfKinetic = 1.0;
######################################################################### #************************************************************************
# motive information # # motive information *
######################################################################### #************************************************************************
int numberOfMovingBodies = 1; int numberOfMovingBodies = 1;
############################## body0 ############################## ############################## body0 ##############################
//mass of parts // mass of parts.
double mass_0 = 1.0; double mass_0 = 1.0;
//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz // gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_0 = 0.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz.
double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
//initial six DOF position information of parts. xc yc zc // initial six DOF position information of parts. xc yc zc.
double massCenter_0[] = 0.0, 0.0, 0.0; double massCenter_0[] = 0.0, 0.0, 0.0;
//initial six DOF position information of parts. angleX angleY angleZ // if reset mass center while restart.
int resetMassCenter_0 = 0;
// position offset of parts. dx dy dz.
double massCenterDxyz_0[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_0[] = 0.0, 0.0, 0.0; double attitudeAngle_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. vc vy vz // initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_0[] = 0.0, 0.0, 0.0; double massCenterVelocity_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. omigX omigY omigZ // initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_0[] = 0.0, 0.0, 0.0; double angularVelocity_0[] = 0.0, 0.0, 0.0;
// the object that the parts belong to. // the object that the parts belong to.
int fartherIndex_0 = -1; int fartherIndex_0 = -1;
//the assembly position of the parts. xc yc zc angleX angleY angleZ // the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
// the move pattern of the parts. // the move pattern of the parts.
// -1 given motion partten. // -1 given motion partten.
@ -1349,23 +1403,24 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0
int RBDMethod_0 = 0; int RBDMethod_0 = 0;
double amplitude_0 = 0.0; double amplitude_0 = 0.0;
double reduceFrequency_0 = 0.0; double reduceFrequency_0 = 0.0;
//direction of rotation // direction of rotation.
// 1 -- clockwise from the point of view along the positive x axis. // 1 -- clockwise from the point of view along the positive x axis.
// -1 -- anticlockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1; int direction_0 = -1;
double rotateFrequency_0 = 0.0; double rotateFrequency_0 = 0.0;
//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; //string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter";
//additional force (system axis) fX fY fZ // dimensional physical time for additional force(s).
double addedForceTime_0[] = 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_0[] = 0.0, 0.0, 0.0; double addedForce_0[] = 0.0, 0.0, 0.0;
//additional moment of Force (system axis) mX mY mZ // additional moment(inertia system) mX mY mZ.
double addedMoment_0[] = 0.0, 0.0, 0.0; double addedMoment_0[] = 0.0, 0.0, 0.0;
// the deformation method of the parts. // the deformation method of the parts.
int morphing_0 = 0; int morphing_0 = 0;
// post indentify // post indentify.
int integralOrder = 4; int integralOrder = 4;
// ---------------- ATP read -------------------------------------------- // ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0; //@int inflowParaType = 0;
//@double refReNumber = 6.5e6; //@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0; //@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0; //@double refDimensionalDensity = 0;
//@string weatherDataFilePath = "./WRFData/";
######################################################################### //@double longitude = 110.95
# Old Parameter # //@double latitude = 19.61;
######################################################################### #************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0; int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
######################################################################### //double partialCFL[] = [0.0];
# Incompressible Parameter # //double partialSpeedCoef[] = [0.0];
######################################################################### //double partialSpeed[] = [0.0];
//double partialAttackd[] = [0.0];
//double partialSlide[] = [0.0];
//double partialPressure[] = [0.0];
//double partialTemperature[] = [0.0];
//double partialMassFractions[] = [0.0];
#************************************************************************
# Incompressible Parameter *
#************************************************************************
int isSolveEnergyEquation = 0; int isSolveEnergyEquation = 0;
int isSolveTurbEquation = 0; int isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0; int isSolveSpeciesEquation = 0;

View File

@ -4,9 +4,12 @@
// gridtype: Grid type for generation, conversion, reconstruction, merging. // gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid. // 0 -- Unstructured grid.
// 1 -- Structured grid. // 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process. // from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE. // -1 -- MULTI_TYPE.
// 1 -- PHengLEI, *.fts. // 1 -- PHengLEI, *.fts.
@ -18,7 +21,9 @@
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. // 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
// 8 -- GMSH, *.msh. // 8 -- GMSH, *.msh.
int gridtype = 0; int gridtype = 0;
int axisup = 1; int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
int from_gtype = 2; int from_gtype = 2;
######################################################################### #########################################################################

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows + // Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center + // China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 + // (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
########################################################################### ###########################################################################
# Default parameters for Grid conversion # # Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0; int multiblock = 0;
int iadapt = 0; int iadapt = 0;
int SymmetryFaceVector = 1; int SymmetryFaceVector = 1;
int gridReorder = 0; int gridReorder = 0;
int faceReorderMethod = 0; int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
int axisup = 1; // 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition".
// 0 -- Interface. (default) // 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver. // 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Grid data type # # Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1; int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas"; string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = ""; string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------ // ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction. which only support one direction.
// rotationAngle: The relative angle between two periodic face. // rotationAngle: The relative angle between two periodic face.
which is recorded in degrees. which is recorded in degrees.
int periodicType = 0; int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0]; double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0; double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid. // 2 -- refine structured grid.
// maxproc: The number of partition zones that want to be divided into. // maxproc: The number of partition zones that want to be divided into.
// numberOfMultifile: The number of partition grid files that want to be dumped out. // numberOfMultifile: The number of partition grid files that want to be dumped out.
int pgridtype = 0; int pgridtype = 0;
int maxproc = 4; int maxproc = 4;
int numberOfMultifile = 1; int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1]; int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy: // parallelStrategy:
//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. // 0 -- each zone is assigned to the one that defined in grid partition procedure.
//! -# 1 : random assigned for each zone or by some else ways. // 1 -- random assigned for each zone or by some else ways.
int parallelStrategy = 1; int parallelStrategy = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance. // 1 -- perfect balance.
// maxproc -- perfect imbalance. // maxproc -- perfect imbalance.
// 1.05 -- recommended. // 1.05 -- recommended.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int npartmethod = 1; int npartmethod = 1;
int parallelPartitionMethod = 2; int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. // intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual file 'res.dat' saved. // intervalStepRes: The step intervals for residual file 'res.dat' saved.
// 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 maxSimuStep = 20000; int maxSimuStep = 20000;
int intervalStepFlow = 1000; int intervalStepFlow = 1000;
int intervalStepPlot = 1000; int intervalStepPlot = 1000;
int intervalStepSample = 1000; int intervalStepSample = 1000;
int intervalStepForce = 100; int intervalStepForce = 100;
int intervalStepRes = 10; int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible: // compressible:
// 0 -- incompressible flow. // 0 -- incompressible flow.
// 1 -- compressible flow. (default) // 1 -- compressible flow. (default)
int compressible = 1; int compressible = 1;
// 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)
// Kprec: The coefficient K for the cut-off velocity.
// 1.0~3.0 is suggested. (default, 3.0)
// preconFarfieldBCMethod: The precondition method for farfield boundary condition.
// 0 -- precondition far-field boundary based on riemann invariants.
// 1 -- Turkel's simplified far-field boundary condition.
int ifLowSpeedPrecon = 0;
double Kprec = 3.0;
int preconFarfieldBCMethod = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# CFD Control Parameter # # CFD Control Parameter #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions. // 0 -- the nondimensional conditions.
// 1 -- the flight conditions. // 1 -- the flight conditions.
// 2 -- the experiment conditions. // 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions. // 3 -- the subsonic boundary conditions. (Useless!)
// 4 -- the condition that the velocity, temperature and density are given. // 4 -- the condition that the velocity, temperature and density are given.
// 5 -- the condition that the velocity, temperature and pressure are given. // 5 -- the condition that the velocity, temperature and pressure are given.
//flowInitMethod: Flow field initialization method.
// 0 -- The entire flow field is initialized according to Infinite velocity.
// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m. // 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. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// freestream_vibration_temperature: Dimensional freestream vibration temperature. // freestream_vibration_temperature: Dimensional freestream vibration temperature.
@ -303,11 +314,11 @@ int compressible = 1;
// condition is radiation equilibrium temperature, and 0.8 is the default value. // condition is radiation equilibrium temperature, and 0.8 is the default value.
// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol.
// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on.
int directionMethod = 0; int directionMethod = 0;
double refMachNumber = 0.73; double refMachNumber = 0.73;
double attackd = 2.79; double attackd = 2.79;
double angleSlide = 0.00; double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0; int inflowParaType = 0;
double refReNumber = 6.5e6; double refReNumber = 6.5e6;
@ -321,14 +332,6 @@ double freestream_vibration_temperature = 300.00;
//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). //double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2).
//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). //double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)).
//int inflowParaType = 3;
//int nsubsonicInlet = 1;
//int nsubsonicOutlet = 1;
//string inLetFileName = "./bin/subsonicInlet.hypara";
//string outLetFileName = "./bin/subsonicOutlet.hypara";
//double refDimensionalTemperature = 288.144;
//double refDimensionalPressure = 1.01313E05;
// The velocity, temperature and density are fixed. // The velocity, temperature and density are fixed.
//int inflowParaType = 4; //int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0; //double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed. // The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6; //int inflowParaType = 6;
//double refDimensionalTemperature = 293; //double refDimensionalTemperature = 293.0;
//double refDimensionalPressure = 8886.06; //double refDimensionalPressure = 8886.06;
// The velocity, temperature and pressure are read from file.
//int inflowParaType = 7;
//string weatherDataFilePath = "./WRFData/";
//double longitude = 110.95
//double latitude = 19.61;
double wallTemperature = -1.0; double wallTemperature = -1.0;
double radiationCoef = 0.8; double radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter. double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol. double refMolecularWeight = 28.9644; // unit of g/mol.
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Spatial Discretisation # # Spatial Discretisation #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
#******************************************************************* #************************************************************************
# Struct Solver * # Struct Solver *
#******************************************************************* #************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid. // inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid. // Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f". // -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe". // -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid. // isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default) // 0 -- NO. (default)
// 1 -- Yes. // 1 -- Yes.
// str_limiter_name: Limiter of struct grid. // str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". // -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter. // -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version. // -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" // -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe"; string inviscidSchemeName = "roe";
int isWennScheme = 0; int isWennScheme = 0;
string str_limiter_name = "vanalbada"; string str_limiter_name = "vanalbada";
#******************************************************************* #************************************************************************
# UnStruct Solver or Common * # UnStruct Solver or Common *
#******************************************************************* #************************************************************************
// viscousType: Viscous model. // viscousType: Viscous model.
// 0 -- Euler. // 0 -- Euler.
// 1 -- Lamilar. // 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES. // 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. // uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// Using this when solve Unstructered grid or hybrid. // Using this when solve Unstructered grid or hybrid.
// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle". // -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle",
// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+".
// uns_limiter_name: Limiter of Unstruct grid. // uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod". // -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st". // -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter. // -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term. // uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2". // -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used. // 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// It is used to scale the default Roe entropy fix coefficients. // It is used to scale the default Roe entropy fix coefficients.
// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 // AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0.
//int viscousType = 0; //int viscousType = 0;
//string viscousName = "Euler"; //string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0; double AusmpwPlusLimiter = 1.0;
//----------------------------------------------------------------------- #************************************************************************
# Temporal Discretisation # # Temporal Discretisation *
//----------------------------------------------------------------------- #************************************************************************
// iunsteady: Steady or unsteady. // iunsteady: Steady or unsteady.
// 0 -- steady. // 0 -- steady.
// 1 -- unsteay. // 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration. // 6 -- Jacobian iteration.
// 7 -- Line LU-SGS. // 7 -- Line LU-SGS.
// 8 -- Matrix LU-SGS. // 8 -- Matrix LU-SGS.
// 9 -- GMRES.
// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. // iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation.
// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. // Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method.
// CFLStart: Started cfl number. // CFLStart: Started cfl number.
// CFLEnd: End cfl number. // CFLEnd: End cfl number.
// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. // CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd.
// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration.
// OriginalTscheme : Used for LUSGS and GMres hybrid computing.
// useLUSGSprecond: Initialize flow field for GMRES.
// 0 --Initialize by first order Jacobian matrix.
// 1 --Initialize by LUSGS.
// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field.
// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) // ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. // swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. // nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function. // 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step. // RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step. // lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0; int iunsteady = 0;
double physicalTimeStep = 0.01; double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001; double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000; int startStatisticStep = 800000;
double statisticalTimePeriod = -1.0; double statisticalTimePeriod = -1.0;
int statisticMethod = 0; int statisticMethod = 0;
int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2.
int methodOfDualTime = 3; int methodOfDualTime = 3;
int min_sub_iter = 50; int min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01; double CFLStart = 0.01;
double CFLEnd = 10.0; double CFLEnd = 10.0;
int CFLVaryStep = 500; int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2; double pMaxForCFL = 0.2;
double pMinForCFL = 0.1; double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2; double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01; double visl_min = 0.01;
double turbCFLScale = 1.0; double turbCFLScale = 1.0;
double csrv = 2.0; double csrv = 1.0;
double timemax = 1.0e10; double timemax = 1.0e10;
double dtsave = -1.0; double dtsave = -1.0;
int maxale = 10; int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4; //int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
#************************************************************************
//----------------------------------------------------------------------- # File In or Out *
# File In or Out # #************************************************************************
//-----------------------------------------------------------------------
// numberOfGridGroups: The number of grid groups. // numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path, // gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory. // which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance. // nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance. // 0 -- Compute wall distance.
// 1 -- Not compute. // 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. // protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. // wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1; int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts"; string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = ""; string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat"; string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat"; string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat"; string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat"; string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat"; string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt"; string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat"; string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.dat"; string protectionFile1 = "results/flow1.dat";
string wall_heatfluxfile = "results/wall_heatflux.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat";
string protectionTurbFile0 = "results/turb0.dat";
string protectionTurbFile1 = "results/turb1.dat";
string protectionTransitionFile0 = "results/transition0.dat";
string protectionTransitionFile1 = "results/transition1.dat";
int nDumpSurfaceInfo = 0; int nDumpSurfaceInfo = 0;
string wall_varfile = ""; string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat"; string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat"; string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt"; string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile. // visualfileType: The file type of visualfile.
// 0 -- Tecplot binary. // 0 -- Tecplot binary.
// 1 -- Tecplot ASCII. // 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1; int visualfileType = 1;
// samplefileMode: The dump mode of sample file. // samplefileMode: The dump mode of sample file.
@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0];
// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36),
// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40),
// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), // -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81) // -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- specific heat ratio(gama, 56) // -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big. // Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition---------------- //-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall. // nVisualWallVariables: The number of visual variables on wall.
// visualWallVariables : dumped variable types, listed as following: // visualWallVariables : dumped variable types, listed as following:
// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), // -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4),
// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), // -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8),
// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), // -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11),
// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) // -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15),
// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) // -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19),
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) // -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8; int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
@ -739,7 +761,9 @@ int dumpStandardModel = 0;
// 1 -- Real cell where the probe is located. // 1 -- Real cell where the probe is located.
// nProbeVariables: Number of variables want to be dumped for probes monitered. // nProbeVariables: Number of variables want to be dumped for probes monitered.
// probeVariables : Variable types dumped, listed as following: // probeVariables : Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). // -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9),
// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12).
// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!!
// probeVariables order must from small to big. // probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0; int searchCellsMethod = 0;
int nProbeVariables = 7; int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0; int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter # #************************************************************************
//----------------------------------------------------------------------- # Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence. // turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source. // kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original. // 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type // transitionType: transition model type
// 0 -- none. // 0 -- none.
// 2 -- gama-re-theta. // 2 -- gama-re-theta.
// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition // turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition.
// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not // freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not.
int turbInterval = 1; int turbInterval = 1;
int turbOrderStruct = 2; int turbOrderStruct = 2;
int kindOfTurbSource = 0; int kindOfTurbSource = 0;
int mod_turb_res = 0; int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3; double freeStreamViscosity = 1.0e-3;
double muoo = 3.0; double muoo = 3.0;
double kwoo = 5.0; double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0; int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0; double freeDecayXLocation = 0.0;
int compressibleCorrection = 0; int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1; int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max. // maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10; double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0; int monitor_vistmax = 0;
//----------------------------------------------------------------------- #************************************************************************
# LES Parameter # # LES Parameter *
//----------------------------------------------------------------------- #************************************************************************
// iLES: Create LESSolver or not. // iLES: Create LESSolver or not.
// = 1 - Create LESSolver; // = 1 -- Create LESSolver;
// != 1 - not. // != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb. // amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random 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. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter; // = 0 -- in only first sub-iter;
// != 0 - in every sub-iter. // != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not. // ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not. // ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not; // = 0 -- not;
// != 0 - Add body force. // != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not. // bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb. // utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model. // sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom"; // = "dsmCom";
// = "wale"; // = "wale";
// = "sigma". // = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); // deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3); // = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti. // = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function; // wallDampingFunctionType: = 0 -- no wall function;
// = 1 - van Driest; // = 1 -- van Driest;
// = 2 - developed by Dr. Deng Xiaobing; // = 2 -- developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli. // = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type. // turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul; // = 0 -- mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul; // = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 - mu_total = max(mut ,0)+ mul. // = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model. // smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model. // waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not. // filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average 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. // isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0; int iLES = 0;
string sgsmodel = "smagorinsky"; string sgsmodel = "smagorinsky";
int deltaFunctionType = 2; int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1; int averageWidth = 1;
int monitorNegativeConstant = 0; int monitorNegativeConstant = 0;
//----------------------------------------------------------------------- #************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas # # Other Parameters for Hypersonic Non-equilibrium Gas *
//----------------------------------------------------------------------- #************************************************************************
// dg_high_order: // dg_high_order:
// 0 -- generic order accuracy. // 0 -- generic order accuracy.
// 1 -- high order accuracy. // 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes. // 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files. // 1 -- gas model is imported from library files.
// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver,
// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver.
// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps.
// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual.
// nm: Equation number of the physics, but is out of commision now. // nm: Equation number of the physics, but is out of commision now.
// 4 -- for 2D. // 4 -- for 2D.
// 5 -- for 3D. // 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas. // 0 -- perfect gas.
// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component.
// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. // nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. // nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. // nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSlipBCModel: The computational model of slip boundary conditions. // nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip. // 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions. // 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions. // 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model. // 1 -- One-temperature model.
// 2 -- Two-temperature model. // 2 -- Two-temperature model.
// 3 -- Three-temperature model. // 3 -- Three-temperature model.
// isUseNoneqCond:
// 0 -- compute the source terms without any conditions.
// 1 -- compute the source terms using the non-equilibrium condition.
// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value.
// nIdealState: whether take all gas species as ideal gas for gas-mixture process. // nIdealState: whether take all gas species as ideal gas for gas-mixture process.
// 0 -- No. // 0 -- No.
// 1 -- Yes. // 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method. // 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the polynomial fitting method. // 1 -- the energy term is computed using the polynomial fitting method.
// 2 -- the energy term is computed using the piecewise polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method.
@ -946,14 +965,13 @@ int monitorNegativeConstant = 0;
// 1.0 -- proposed by Maxwell. // 1.0 -- proposed by Maxwell.
// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. // sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall.
// 1.146 -- proposed for an additional "fictitious" velocity slip. // 1.146 -- proposed for an additional "fictitious" velocity slip.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. // chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. // spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. // staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions. // nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 0 -- not freeze, the chemical reaction sources will be calculated. // 0 -- not freeze, the chemical reaction sources will be calculated.
// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te // 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.
// veTemperatureMin: The minimum of Tv and Te.
// maxViscous: the maximum of Viscous. // maxViscous: the maximum of Viscous.
// trTemperatureMin: the minimum value of trTemperature. // trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature. // veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species // nSpeciesLimit: limitter of gas species
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction // nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0. // 0 -- method 0.
// 1 -- method 1. // 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid // nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef // nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource // nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource // nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori.) // 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New) // 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature. // nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs // 0 -- not used.
// 0 -- not used // 1 -- used.
// 1 -- used // nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// nDiagonalModified: Modified on Diagonal // 1 -- new.
// 0 -- not used // nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 1 -- Ori. // 0 -- not used.
// 2 -- new // 1 -- new.
// nGradPrimtiveMethod: // nGradPrimtiveMethod:
// 0 -- Ori. // 0 -- Ori.
// 1 -- new // 1 -- new.
// nAblation: // nAblation:
// 0 -- The wall ablation is not computed. // 0 -- The wall ablation is not computed.
// 1 -- The wall ablation is computed. // 1 -- The wall ablation is computed.
@ -1017,8 +1033,8 @@ int monitorNegativeConstant = 0;
// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. // "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. // "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting. // "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©. // for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©. // for unstruct solver mixing multi-species<65><73>O2 NO CO CO2 H2 N2 Air CH4<48><34>.
// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // For self-definition model, the gasfile is used to indicate the file path of the new gas model.
// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma.
// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation.
// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation.
// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation.
// useHyflowSetting : Setting for HyFLOW GUI.
// 0 -- PHengLEI
// 1 -- HyFLOW
// nProtectData: Use the continuation file data protection mechanism. // nProtectData: Use the continuation file data protection mechanism.
// 0 -- no // 0 -- no.
// 1 -- yes // 1 -- yes.
// nTvChange: Judge whether the Tv equals Ttr.
// 0 -- yes.
// 1 -- no.
// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions.
// nFraction: the initial fractions type of species.
// 0 -- mass fraction.
// 1 -- mole fraction.
int dg_high_order = 0; int dg_high_order = 0;
int iapplication = 0; int iapplication = 0;
int isAdaptiveSolver = 0; int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1; double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0; double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0; double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0; int nDebug = 0;
int nSpeciesLimit = 1; int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5; int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1; int veTemperatureMinModified = 1;
int nDiagonalModified = 0; int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1; int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1; int nInviscidFluxModify = 1;
int nQlLimitMethod = 2; int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1; int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0; int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0; int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0; int nAblation = 0;
int isInjection = 0; int isInjection = 0;
int nViscosityModel = 0; int nViscosityModel = 0;
int nMarsModel = 0; int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5"; string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; //string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2"; string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2"; //string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0"; //string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0; int nContinueModel = 0;
int nChemicalFlowStep = 0; int nChemicalFlowStep = 0;
int ifStartFromPerfectGasResults = 0; int ifStartFromPerfectGasResults = 0;
int isUseNoneqCond = 0;
double frozenCondition = 0.01;
int nLeakageMonitor = 0;
double totalLeakageVolume = 1000.0;
double monitorThresholdValue = 0.05;
double sprayFactor = 0.0;
######################################################################### #########################################################################
// Multi-Grid parameters. // Multi-Grid parameters.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order. // 1 -- zero order.
// 2 -- first-order. (default) // 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit. // mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1; int nMGLevel = 1;
int MGCoarsestIteration = 1; int MGCoarsestIteration = 1;
int MGPreIteration = 1; int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat"; string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
######################################################################### #************************************************************************
# High Order Struct Solver # # High Order Struct Solver *
######################################################################### #************************************************************************
// isFVMOrFDM: // isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method. // 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method. // 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not. // codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-overlapping grid. // 0 -- NON-overlapping grid.
// 1 -- Overlapping grid. // 1 -- Overlapping grid.
// oversetInterpolationMethod: the method of overset interpolation while field simulation // oversetInterpolationMethod: the method of overset interpolation while field simulation.
// 0 -- set the acceptor cell value by donor cell value. // 0 -- set the acceptor cell value by donor cell value.
// 1 -- set the acceptor cell value by distance weight of donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value.
// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated.
// 0 -- no.
// 1 -- yes.
// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in
// the current overset grid(only for three dimension).
// 0 -- no.
// 1 -- yes.
// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid.
// 0 -- no.
// 1 -- yes.
// walldistMainZone: The initial value of background grid which does not exist wall boundary condition.
// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell.
// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region.
// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary.
// 0 -- one layer.
// 1 -- two layers.
// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region.
// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure.
// 0 -- no.
// 1 -- yes.
int codeOfOversetGrid = 0; int codeOfOversetGrid = 0;
int oversetInterpolationMethod = 0; int oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0; int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0; int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0; int outTecplotOverset = 0;
int outPutOversetVisualization = 0; int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2; int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------ // ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0; double referenceVelocity = 1.0;
double referenceDensity = 1.0; double referenceDensity = 1.0;
int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
int strategyForGCLSource = 0; //0-present; 1-Ahn; int strategyForGCLSource = 0; // 0-present; 1-Ahn.
//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton // 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton.
int methodForKineticEquation = 0; int methodForKineticEquation = 0;
double relaxParameterOfKinetic = 1.0; double relaxParameterOfKinetic = 1.0;
######################################################################### #************************************************************************
# motive information # # motive information *
######################################################################### #************************************************************************
int numberOfMovingBodies = 1; int numberOfMovingBodies = 1;
############################## body0 ############################## ############################## body0 ##############################
//mass of parts // mass of parts.
double mass_0 = 1.0; double mass_0 = 1.0;
//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz // gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_0 = 0.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz.
double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
//initial six DOF position information of parts. xc yc zc // initial six DOF position information of parts. xc yc zc.
double massCenter_0[] = 0.0, 0.0, 0.0; double massCenter_0[] = 0.0, 0.0, 0.0;
//initial six DOF position information of parts. angleX angleY angleZ // if reset mass center while restart.
int resetMassCenter_0 = 0;
// position offset of parts. dx dy dz.
double massCenterDxyz_0[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_0[] = 0.0, 0.0, 0.0; double attitudeAngle_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. vc vy vz // initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_0[] = 0.0, 0.0, 0.0; double massCenterVelocity_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. omigX omigY omigZ // initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_0[] = 0.0, 0.0, 0.0; double angularVelocity_0[] = 0.0, 0.0, 0.0;
// the object that the parts belong to. // the object that the parts belong to.
int fartherIndex_0 = -1; int fartherIndex_0 = -1;
//the assembly position of the parts. xc yc zc angleX angleY angleZ // the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
// the move pattern of the parts. // the move pattern of the parts.
// -1 given motion partten. // -1 given motion partten.
@ -1349,23 +1403,24 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0
int RBDMethod_0 = 0; int RBDMethod_0 = 0;
double amplitude_0 = 0.0; double amplitude_0 = 0.0;
double reduceFrequency_0 = 0.0; double reduceFrequency_0 = 0.0;
//direction of rotation // direction of rotation.
// 1 -- clockwise from the point of view along the positive x axis. // 1 -- clockwise from the point of view along the positive x axis.
// -1 -- anticlockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1; int direction_0 = -1;
double rotateFrequency_0 = 0.0; double rotateFrequency_0 = 0.0;
//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; //string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter";
//additional force (system axis) fX fY fZ // dimensional physical time for additional force(s).
double addedForceTime_0[] = 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_0[] = 0.0, 0.0, 0.0; double addedForce_0[] = 0.0, 0.0, 0.0;
//additional moment of Force (system axis) mX mY mZ // additional moment(inertia system) mX mY mZ.
double addedMoment_0[] = 0.0, 0.0, 0.0; double addedMoment_0[] = 0.0, 0.0, 0.0;
// the deformation method of the parts. // the deformation method of the parts.
int morphing_0 = 0; int morphing_0 = 0;
// post indentify // post indentify.
int integralOrder = 4; int integralOrder = 4;
// ---------------- ATP read -------------------------------------------- // ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0; //@int inflowParaType = 0;
//@double refReNumber = 6.5e6; //@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0; //@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0; //@double refDimensionalDensity = 0;
//@string weatherDataFilePath = "./WRFData/";
######################################################################### //@double longitude = 110.95
# Old Parameter # //@double latitude = 19.61;
######################################################################### #************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0; int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
######################################################################### //double partialCFL[] = [0.0];
# Incompressible Parameter # //double partialSpeedCoef[] = [0.0];
######################################################################### //double partialSpeed[] = [0.0];
//double partialAttackd[] = [0.0];
//double partialSlide[] = [0.0];
//double partialPressure[] = [0.0];
//double partialTemperature[] = [0.0];
//double partialMassFractions[] = [0.0];
#************************************************************************
# Incompressible Parameter *
#************************************************************************
int isSolveEnergyEquation = 0; int isSolveEnergyEquation = 0;
int isSolveTurbEquation = 0; int isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0; int isSolveSpeciesEquation = 0;

View File

@ -4,9 +4,12 @@
// gridtype: Grid type for generation, conversion, reconstruction, merging. // gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid. // 0 -- Unstructured grid.
// 1 -- Structured grid. // 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process. // from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE. // -1 -- MULTI_TYPE.
// 1 -- PHengLEI, *.fts. // 1 -- PHengLEI, *.fts.
@ -18,7 +21,9 @@
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. // 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
// 8 -- GMSH, *.msh. // 8 -- GMSH, *.msh.
int gridtype = 0; int gridtype = 0;
int axisup = 2; int nAxisRotateTimes = 1;
int axisRotateOrder[] = [1];
double axisRotateAngles[]= [90.0];
int from_gtype = 2; int from_gtype = 2;
######################################################################### #########################################################################

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows + // Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center + // China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 + // (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
########################################################################### ###########################################################################
# Default parameters for Grid conversion # # Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0; int multiblock = 0;
int iadapt = 0; int iadapt = 0;
int SymmetryFaceVector = 1; int SymmetryFaceVector = 1;
int gridReorder = 0; int gridReorder = 0;
int faceReorderMethod = 0; int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
int axisup = 1; // 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition".
// 0 -- Interface. (default) // 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver. // 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Grid data type # # Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1; int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas"; string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = ""; string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------ // ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction. which only support one direction.
// rotationAngle: The relative angle between two periodic face. // rotationAngle: The relative angle between two periodic face.
which is recorded in degrees. which is recorded in degrees.
int periodicType = 0; int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0]; double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0; double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid. // 2 -- refine structured grid.
// maxproc: The number of partition zones that want to be divided into. // maxproc: The number of partition zones that want to be divided into.
// numberOfMultifile: The number of partition grid files that want to be dumped out. // numberOfMultifile: The number of partition grid files that want to be dumped out.
int pgridtype = 0; int pgridtype = 0;
int maxproc = 4; int maxproc = 4;
int numberOfMultifile = 1; int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1]; int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy: // parallelStrategy:
//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. // 0 -- each zone is assigned to the one that defined in grid partition procedure.
//! -# 1 : random assigned for each zone or by some else ways. // 1 -- random assigned for each zone or by some else ways.
int parallelStrategy = 1; int parallelStrategy = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance. // 1 -- perfect balance.
// maxproc -- perfect imbalance. // maxproc -- perfect imbalance.
// 1.05 -- recommended. // 1.05 -- recommended.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int npartmethod = 1; int npartmethod = 1;
int parallelPartitionMethod = 2; int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. // intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual file 'res.dat' saved. // intervalStepRes: The step intervals for residual file 'res.dat' saved.
// 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 maxSimuStep = 20000; int maxSimuStep = 20000;
int intervalStepFlow = 1000; int intervalStepFlow = 1000;
int intervalStepPlot = 1000; int intervalStepPlot = 1000;
int intervalStepSample = 1000; int intervalStepSample = 1000;
int intervalStepForce = 100; int intervalStepForce = 100;
int intervalStepRes = 10; int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible: // compressible:
// 0 -- incompressible flow. // 0 -- incompressible flow.
// 1 -- compressible flow. (default) // 1 -- compressible flow. (default)
int compressible = 1; int compressible = 1;
// 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)
// Kprec: The coefficient K for the cut-off velocity.
// 1.0~3.0 is suggested. (default, 3.0)
// preconFarfieldBCMethod: The precondition method for farfield boundary condition.
// 0 -- precondition far-field boundary based on riemann invariants.
// 1 -- Turkel's simplified far-field boundary condition.
int ifLowSpeedPrecon = 0;
double Kprec = 3.0;
int preconFarfieldBCMethod = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# CFD Control Parameter # # CFD Control Parameter #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions. // 0 -- the nondimensional conditions.
// 1 -- the flight conditions. // 1 -- the flight conditions.
// 2 -- the experiment conditions. // 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions. // 3 -- the subsonic boundary conditions. (Useless!)
// 4 -- the condition that the velocity, temperature and density are given. // 4 -- the condition that the velocity, temperature and density are given.
// 5 -- the condition that the velocity, temperature and pressure are given. // 5 -- the condition that the velocity, temperature and pressure are given.
//flowInitMethod: Flow field initialization method.
// 0 -- The entire flow field is initialized according to Infinite velocity.
// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m. // 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. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// freestream_vibration_temperature: Dimensional freestream vibration temperature. // freestream_vibration_temperature: Dimensional freestream vibration temperature.
@ -303,11 +314,11 @@ int compressible = 1;
// condition is radiation equilibrium temperature, and 0.8 is the default value. // condition is radiation equilibrium temperature, and 0.8 is the default value.
// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol.
// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on.
int directionMethod = 0; int directionMethod = 0;
double refMachNumber = 0.73; double refMachNumber = 0.73;
double attackd = 2.79; double attackd = 2.79;
double angleSlide = 0.00; double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0; int inflowParaType = 0;
double refReNumber = 6.5e6; double refReNumber = 6.5e6;
@ -321,14 +332,6 @@ double freestream_vibration_temperature = 300.00;
//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). //double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2).
//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). //double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)).
//int inflowParaType = 3;
//int nsubsonicInlet = 1;
//int nsubsonicOutlet = 1;
//string inLetFileName = "./bin/subsonicInlet.hypara";
//string outLetFileName = "./bin/subsonicOutlet.hypara";
//double refDimensionalTemperature = 288.144;
//double refDimensionalPressure = 1.01313E05;
// The velocity, temperature and density are fixed. // The velocity, temperature and density are fixed.
//int inflowParaType = 4; //int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0; //double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed. // The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6; //int inflowParaType = 6;
//double refDimensionalTemperature = 293; //double refDimensionalTemperature = 293.0;
//double refDimensionalPressure = 8886.06; //double refDimensionalPressure = 8886.06;
// The velocity, temperature and pressure are read from file.
//int inflowParaType = 7;
//string weatherDataFilePath = "./WRFData/";
//double longitude = 110.95
//double latitude = 19.61;
double wallTemperature = -1.0; double wallTemperature = -1.0;
double radiationCoef = 0.8; double radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter. double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol. double refMolecularWeight = 28.9644; // unit of g/mol.
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Spatial Discretisation # # Spatial Discretisation #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
#******************************************************************* #************************************************************************
# Struct Solver * # Struct Solver *
#******************************************************************* #************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid. // inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid. // Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f". // -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe". // -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid. // isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default) // 0 -- NO. (default)
// 1 -- Yes. // 1 -- Yes.
// str_limiter_name: Limiter of struct grid. // str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". // -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter. // -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version. // -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" // -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe"; string inviscidSchemeName = "roe";
int isWennScheme = 0; int isWennScheme = 0;
string str_limiter_name = "vanalbada"; string str_limiter_name = "vanalbada";
#******************************************************************* #************************************************************************
# UnStruct Solver or Common * # UnStruct Solver or Common *
#******************************************************************* #************************************************************************
// viscousType: Viscous model. // viscousType: Viscous model.
// 0 -- Euler. // 0 -- Euler.
// 1 -- Lamilar. // 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES. // 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. // uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// Using this when solve Unstructered grid or hybrid. // Using this when solve Unstructered grid or hybrid.
// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle". // -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle",
// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+".
// uns_limiter_name: Limiter of Unstruct grid. // uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod". // -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st". // -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter. // -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term. // uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2". // -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used. // 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// It is used to scale the default Roe entropy fix coefficients. // It is used to scale the default Roe entropy fix coefficients.
// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 // AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0.
//int viscousType = 0; //int viscousType = 0;
//string viscousName = "Euler"; //string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0; double AusmpwPlusLimiter = 1.0;
//----------------------------------------------------------------------- #************************************************************************
# Temporal Discretisation # # Temporal Discretisation *
//----------------------------------------------------------------------- #************************************************************************
// iunsteady: Steady or unsteady. // iunsteady: Steady or unsteady.
// 0 -- steady. // 0 -- steady.
// 1 -- unsteay. // 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration. // 6 -- Jacobian iteration.
// 7 -- Line LU-SGS. // 7 -- Line LU-SGS.
// 8 -- Matrix LU-SGS. // 8 -- Matrix LU-SGS.
// 9 -- GMRES.
// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. // iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation.
// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. // Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method.
// CFLStart: Started cfl number. // CFLStart: Started cfl number.
// CFLEnd: End cfl number. // CFLEnd: End cfl number.
// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. // CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd.
// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration.
// OriginalTscheme : Used for LUSGS and GMres hybrid computing.
// useLUSGSprecond: Initialize flow field for GMRES.
// 0 --Initialize by first order Jacobian matrix.
// 1 --Initialize by LUSGS.
// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field.
// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) // ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. // swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. // nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function. // 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step. // RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step. // lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0; int iunsteady = 0;
double physicalTimeStep = 0.01; double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001; double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000; int startStatisticStep = 800000;
double statisticalTimePeriod = -1.0; double statisticalTimePeriod = -1.0;
int statisticMethod = 0; int statisticMethod = 0;
int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2.
int methodOfDualTime = 3; int methodOfDualTime = 3;
int min_sub_iter = 50; int min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01; double CFLStart = 0.01;
double CFLEnd = 10.0; double CFLEnd = 10.0;
int CFLVaryStep = 500; int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2; double pMaxForCFL = 0.2;
double pMinForCFL = 0.1; double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2; double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01; double visl_min = 0.01;
double turbCFLScale = 1.0; double turbCFLScale = 1.0;
double csrv = 2.0; double csrv = 1.0;
double timemax = 1.0e10; double timemax = 1.0e10;
double dtsave = -1.0; double dtsave = -1.0;
int maxale = 10; int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4; //int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
#************************************************************************
//----------------------------------------------------------------------- # File In or Out *
# File In or Out # #************************************************************************
//-----------------------------------------------------------------------
// numberOfGridGroups: The number of grid groups. // numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path, // gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory. // which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance. // nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance. // 0 -- Compute wall distance.
// 1 -- Not compute. // 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. // protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. // wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1; int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts"; string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = ""; string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat"; string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat"; string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat"; string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat"; string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat"; string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt"; string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat"; string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.dat"; string protectionFile1 = "results/flow1.dat";
string wall_heatfluxfile = "results/wall_heatflux.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat";
string protectionTurbFile0 = "results/turb0.dat";
string protectionTurbFile1 = "results/turb1.dat";
string protectionTransitionFile0 = "results/transition0.dat";
string protectionTransitionFile1 = "results/transition1.dat";
int nDumpSurfaceInfo = 0; int nDumpSurfaceInfo = 0;
string wall_varfile = ""; string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat"; string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat"; string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt"; string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile. // visualfileType: The file type of visualfile.
// 0 -- Tecplot binary. // 0 -- Tecplot binary.
// 1 -- Tecplot ASCII. // 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1; int visualfileType = 1;
// samplefileMode: The dump mode of sample file. // samplefileMode: The dump mode of sample file.
@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0];
// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36),
// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40),
// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), // -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81) // -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- specific heat ratio(gama, 56) // -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big. // Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition---------------- //-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall. // nVisualWallVariables: The number of visual variables on wall.
// visualWallVariables : dumped variable types, listed as following: // visualWallVariables : dumped variable types, listed as following:
// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), // -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4),
// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), // -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8),
// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), // -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11),
// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) // -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15),
// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) // -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19),
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) // -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8; int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
@ -739,7 +761,9 @@ int dumpStandardModel = 0;
// 1 -- Real cell where the probe is located. // 1 -- Real cell where the probe is located.
// nProbeVariables: Number of variables want to be dumped for probes monitered. // nProbeVariables: Number of variables want to be dumped for probes monitered.
// probeVariables : Variable types dumped, listed as following: // probeVariables : Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). // -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9),
// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12).
// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!!
// probeVariables order must from small to big. // probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0; int searchCellsMethod = 0;
int nProbeVariables = 7; int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0; int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter # #************************************************************************
//----------------------------------------------------------------------- # Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence. // turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source. // kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original. // 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type // transitionType: transition model type
// 0 -- none. // 0 -- none.
// 2 -- gama-re-theta. // 2 -- gama-re-theta.
// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition // turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition.
// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not // freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not.
int turbInterval = 1; int turbInterval = 1;
int turbOrderStruct = 2; int turbOrderStruct = 2;
int kindOfTurbSource = 0; int kindOfTurbSource = 0;
int mod_turb_res = 0; int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3; double freeStreamViscosity = 1.0e-3;
double muoo = 3.0; double muoo = 3.0;
double kwoo = 5.0; double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0; int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0; double freeDecayXLocation = 0.0;
int compressibleCorrection = 0; int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1; int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max. // maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10; double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0; int monitor_vistmax = 0;
//----------------------------------------------------------------------- #************************************************************************
# LES Parameter # # LES Parameter *
//----------------------------------------------------------------------- #************************************************************************
// iLES: Create LESSolver or not. // iLES: Create LESSolver or not.
// = 1 - Create LESSolver; // = 1 -- Create LESSolver;
// != 1 - not. // != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb. // amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random 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. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter; // = 0 -- in only first sub-iter;
// != 0 - in every sub-iter. // != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not. // ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not. // ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not; // = 0 -- not;
// != 0 - Add body force. // != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not. // bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb. // utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model. // sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom"; // = "dsmCom";
// = "wale"; // = "wale";
// = "sigma". // = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); // deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3); // = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti. // = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function; // wallDampingFunctionType: = 0 -- no wall function;
// = 1 - van Driest; // = 1 -- van Driest;
// = 2 - developed by Dr. Deng Xiaobing; // = 2 -- developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli. // = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type. // turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul; // = 0 -- mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul; // = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 - mu_total = max(mut ,0)+ mul. // = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model. // smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model. // waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not. // filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average 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. // isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0; int iLES = 0;
string sgsmodel = "smagorinsky"; string sgsmodel = "smagorinsky";
int deltaFunctionType = 2; int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1; int averageWidth = 1;
int monitorNegativeConstant = 0; int monitorNegativeConstant = 0;
//----------------------------------------------------------------------- #************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas # # Other Parameters for Hypersonic Non-equilibrium Gas *
//----------------------------------------------------------------------- #************************************************************************
// dg_high_order: // dg_high_order:
// 0 -- generic order accuracy. // 0 -- generic order accuracy.
// 1 -- high order accuracy. // 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes. // 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files. // 1 -- gas model is imported from library files.
// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver,
// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver.
// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps.
// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual.
// nm: Equation number of the physics, but is out of commision now. // nm: Equation number of the physics, but is out of commision now.
// 4 -- for 2D. // 4 -- for 2D.
// 5 -- for 3D. // 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas. // 0 -- perfect gas.
// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component.
// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. // nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. // nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. // nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSlipBCModel: The computational model of slip boundary conditions. // nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip. // 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions. // 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions. // 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model. // 1 -- One-temperature model.
// 2 -- Two-temperature model. // 2 -- Two-temperature model.
// 3 -- Three-temperature model. // 3 -- Three-temperature model.
// isUseNoneqCond:
// 0 -- compute the source terms without any conditions.
// 1 -- compute the source terms using the non-equilibrium condition.
// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value.
// nIdealState: whether take all gas species as ideal gas for gas-mixture process. // nIdealState: whether take all gas species as ideal gas for gas-mixture process.
// 0 -- No. // 0 -- No.
// 1 -- Yes. // 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method. // 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the polynomial fitting method. // 1 -- the energy term is computed using the polynomial fitting method.
// 2 -- the energy term is computed using the piecewise polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method.
@ -946,14 +965,13 @@ int monitorNegativeConstant = 0;
// 1.0 -- proposed by Maxwell. // 1.0 -- proposed by Maxwell.
// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. // sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall.
// 1.146 -- proposed for an additional "fictitious" velocity slip. // 1.146 -- proposed for an additional "fictitious" velocity slip.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. // chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. // spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. // staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions. // nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 0 -- not freeze, the chemical reaction sources will be calculated. // 0 -- not freeze, the chemical reaction sources will be calculated.
// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te // 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.
// veTemperatureMin: The minimum of Tv and Te.
// maxViscous: the maximum of Viscous. // maxViscous: the maximum of Viscous.
// trTemperatureMin: the minimum value of trTemperature. // trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature. // veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species // nSpeciesLimit: limitter of gas species
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction // nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0. // 0 -- method 0.
// 1 -- method 1. // 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid // nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef // nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource // nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource // nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori.) // 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New) // 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature. // nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs // 0 -- not used.
// 0 -- not used // 1 -- used.
// 1 -- used // nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// nDiagonalModified: Modified on Diagonal // 1 -- new.
// 0 -- not used // nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 1 -- Ori. // 0 -- not used.
// 2 -- new // 1 -- new.
// nGradPrimtiveMethod: // nGradPrimtiveMethod:
// 0 -- Ori. // 0 -- Ori.
// 1 -- new // 1 -- new.
// nAblation: // nAblation:
// 0 -- The wall ablation is not computed. // 0 -- The wall ablation is not computed.
// 1 -- The wall ablation is computed. // 1 -- The wall ablation is computed.
@ -1017,8 +1033,8 @@ int monitorNegativeConstant = 0;
// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. // "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. // "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting. // "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©. // for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©. // for unstruct solver mixing multi-species<65><73>O2 NO CO CO2 H2 N2 Air CH4<48><34>.
// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // For self-definition model, the gasfile is used to indicate the file path of the new gas model.
// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma.
// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation.
// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation.
// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation.
// useHyflowSetting : Setting for HyFLOW GUI.
// 0 -- PHengLEI
// 1 -- HyFLOW
// nProtectData: Use the continuation file data protection mechanism. // nProtectData: Use the continuation file data protection mechanism.
// 0 -- no // 0 -- no.
// 1 -- yes // 1 -- yes.
// nTvChange: Judge whether the Tv equals Ttr.
// 0 -- yes.
// 1 -- no.
// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions.
// nFraction: the initial fractions type of species.
// 0 -- mass fraction.
// 1 -- mole fraction.
int dg_high_order = 0; int dg_high_order = 0;
int iapplication = 0; int iapplication = 0;
int isAdaptiveSolver = 0; int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1; double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0; double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0; double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0; int nDebug = 0;
int nSpeciesLimit = 1; int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5; int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1; int veTemperatureMinModified = 1;
int nDiagonalModified = 0; int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1; int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1; int nInviscidFluxModify = 1;
int nQlLimitMethod = 2; int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1; int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0; int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0; int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0; int nAblation = 0;
int isInjection = 0; int isInjection = 0;
int nViscosityModel = 0; int nViscosityModel = 0;
int nMarsModel = 0; int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5"; string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; //string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2"; string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2"; //string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0"; //string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0; int nContinueModel = 0;
int nChemicalFlowStep = 0; int nChemicalFlowStep = 0;
int ifStartFromPerfectGasResults = 0; int ifStartFromPerfectGasResults = 0;
int isUseNoneqCond = 0;
double frozenCondition = 0.01;
int nLeakageMonitor = 0;
double totalLeakageVolume = 1000.0;
double monitorThresholdValue = 0.05;
double sprayFactor = 0.0;
######################################################################### #########################################################################
// Multi-Grid parameters. // Multi-Grid parameters.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order. // 1 -- zero order.
// 2 -- first-order. (default) // 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit. // mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1; int nMGLevel = 1;
int MGCoarsestIteration = 1; int MGCoarsestIteration = 1;
int MGPreIteration = 1; int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat"; string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
######################################################################### #************************************************************************
# High Order Struct Solver # # High Order Struct Solver *
######################################################################### #************************************************************************
// isFVMOrFDM: // isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method. // 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method. // 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not. // codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-overlapping grid. // 0 -- NON-overlapping grid.
// 1 -- Overlapping grid. // 1 -- Overlapping grid.
// oversetInterpolationMethod: the method of overset interpolation while field simulation // oversetInterpolationMethod: the method of overset interpolation while field simulation.
// 0 -- set the acceptor cell value by donor cell value. // 0 -- set the acceptor cell value by donor cell value.
// 1 -- set the acceptor cell value by distance weight of donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value.
// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated.
// 0 -- no.
// 1 -- yes.
// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in
// the current overset grid(only for three dimension).
// 0 -- no.
// 1 -- yes.
// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid.
// 0 -- no.
// 1 -- yes.
// walldistMainZone: The initial value of background grid which does not exist wall boundary condition.
// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell.
// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region.
// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary.
// 0 -- one layer.
// 1 -- two layers.
// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region.
// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure.
// 0 -- no.
// 1 -- yes.
int codeOfOversetGrid = 0; int codeOfOversetGrid = 0;
int oversetInterpolationMethod = 0; int oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0; int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0; int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0; int outTecplotOverset = 0;
int outPutOversetVisualization = 0; int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2; int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------ // ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0; double referenceVelocity = 1.0;
double referenceDensity = 1.0; double referenceDensity = 1.0;
int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
int strategyForGCLSource = 0; //0-present; 1-Ahn; int strategyForGCLSource = 0; // 0-present; 1-Ahn.
//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton // 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton.
int methodForKineticEquation = 0; int methodForKineticEquation = 0;
double relaxParameterOfKinetic = 1.0; double relaxParameterOfKinetic = 1.0;
######################################################################### #************************************************************************
# motive information # # motive information *
######################################################################### #************************************************************************
int numberOfMovingBodies = 1; int numberOfMovingBodies = 1;
############################## body0 ############################## ############################## body0 ##############################
//mass of parts // mass of parts.
double mass_0 = 1.0; double mass_0 = 1.0;
//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz // gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_0 = 0.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz.
double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
//initial six DOF position information of parts. xc yc zc // initial six DOF position information of parts. xc yc zc.
double massCenter_0[] = 0.0, 0.0, 0.0; double massCenter_0[] = 0.0, 0.0, 0.0;
//initial six DOF position information of parts. angleX angleY angleZ // if reset mass center while restart.
int resetMassCenter_0 = 0;
// position offset of parts. dx dy dz.
double massCenterDxyz_0[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_0[] = 0.0, 0.0, 0.0; double attitudeAngle_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. vc vy vz // initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_0[] = 0.0, 0.0, 0.0; double massCenterVelocity_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. omigX omigY omigZ // initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_0[] = 0.0, 0.0, 0.0; double angularVelocity_0[] = 0.0, 0.0, 0.0;
// the object that the parts belong to. // the object that the parts belong to.
int fartherIndex_0 = -1; int fartherIndex_0 = -1;
//the assembly position of the parts. xc yc zc angleX angleY angleZ // the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
// the move pattern of the parts. // the move pattern of the parts.
// -1 given motion partten. // -1 given motion partten.
@ -1349,23 +1403,24 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0
int RBDMethod_0 = 0; int RBDMethod_0 = 0;
double amplitude_0 = 0.0; double amplitude_0 = 0.0;
double reduceFrequency_0 = 0.0; double reduceFrequency_0 = 0.0;
//direction of rotation // direction of rotation.
// 1 -- clockwise from the point of view along the positive x axis. // 1 -- clockwise from the point of view along the positive x axis.
// -1 -- anticlockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1; int direction_0 = -1;
double rotateFrequency_0 = 0.0; double rotateFrequency_0 = 0.0;
//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; //string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter";
//additional force (system axis) fX fY fZ // dimensional physical time for additional force(s).
double addedForceTime_0[] = 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_0[] = 0.0, 0.0, 0.0; double addedForce_0[] = 0.0, 0.0, 0.0;
//additional moment of Force (system axis) mX mY mZ // additional moment(inertia system) mX mY mZ.
double addedMoment_0[] = 0.0, 0.0, 0.0; double addedMoment_0[] = 0.0, 0.0, 0.0;
// the deformation method of the parts. // the deformation method of the parts.
int morphing_0 = 0; int morphing_0 = 0;
// post indentify // post indentify.
int integralOrder = 4; int integralOrder = 4;
// ---------------- ATP read -------------------------------------------- // ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0; //@int inflowParaType = 0;
//@double refReNumber = 6.5e6; //@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0; //@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0; //@double refDimensionalDensity = 0;
//@string weatherDataFilePath = "./WRFData/";
######################################################################### //@double longitude = 110.95
# Old Parameter # //@double latitude = 19.61;
######################################################################### #************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0; int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
######################################################################### //double partialCFL[] = [0.0];
# Incompressible Parameter # //double partialSpeedCoef[] = [0.0];
######################################################################### //double partialSpeed[] = [0.0];
//double partialAttackd[] = [0.0];
//double partialSlide[] = [0.0];
//double partialPressure[] = [0.0];
//double partialTemperature[] = [0.0];
//double partialMassFractions[] = [0.0];
#************************************************************************
# Incompressible Parameter *
#************************************************************************
int isSolveEnergyEquation = 0; int isSolveEnergyEquation = 0;
int isSolveTurbEquation = 0; int isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0; int isSolveSpeciesEquation = 0;

View File

@ -4,9 +4,12 @@
// gridtype: Grid type for generation, conversion, reconstruction, merging. // gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid. // 0 -- Unstructured grid.
// 1 -- Structured grid. // 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process. // from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE // -1 -- MULTI_TYPE
// 1 -- HyperFLOW( PHengLEI ), *.fts. // 1 -- HyperFLOW( PHengLEI ), *.fts.
@ -18,7 +21,9 @@
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. // 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
// 8 -- GMSH, *.msh. // 8 -- GMSH, *.msh.
int gridtype = 0; int gridtype = 0;
int axisup = 1; int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
int from_gtype = 2; int from_gtype = 2;
######################################################################### #########################################################################

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows + // Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center + // China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 + // (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
########################################################################### ###########################################################################
# Default parameters for Grid conversion # # Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0; int multiblock = 0;
int iadapt = 0; int iadapt = 0;
int SymmetryFaceVector = 1; int SymmetryFaceVector = 1;
int gridReorder = 0; int gridReorder = 0;
int faceReorderMethod = 0; int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
int axisup = 1; // 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
int nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition".
// 0 -- Interface. (default) // 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver. // 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Grid data type # # Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1; int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas"; string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = ""; string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------ // ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction. which only support one direction.
// rotationAngle: The relative angle between two periodic face. // rotationAngle: The relative angle between two periodic face.
which is recorded in degrees. which is recorded in degrees.
int periodicType = 0; int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0]; double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0; double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid. // 2 -- refine structured grid.
// maxproc: The number of partition zones that want to be divided into. // maxproc: The number of partition zones that want to be divided into.
// numberOfMultifile: The number of partition grid files that want to be dumped out. // numberOfMultifile: The number of partition grid files that want to be dumped out.
int pgridtype = 0; int pgridtype = 0;
int maxproc = 4; int maxproc = 4;
int numberOfMultifile = 1; int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1]; int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy: // parallelStrategy:
//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. // 0 -- each zone is assigned to the one that defined in grid partition procedure.
//! -# 1 : random assigned for each zone or by some else ways. // 1 -- random assigned for each zone or by some else ways.
int parallelStrategy = 1; int parallelStrategy = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance. // 1 -- perfect balance.
// maxproc -- perfect imbalance. // maxproc -- perfect imbalance.
// 1.05 -- recommended. // 1.05 -- recommended.
int omit_no_bound_bc = 0; int omit_no_bound_bc = 0;
int npartmethod = 1; int npartmethod = 1;
int parallelPartitionMethod = 2; int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. // intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual file 'res.dat' saved. // intervalStepRes: The step intervals for residual file 'res.dat' saved.
// 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 maxSimuStep = 20000; int maxSimuStep = 20000;
int intervalStepFlow = 1000; int intervalStepFlow = 1000;
int intervalStepPlot = 1000; int intervalStepPlot = 1000;
int intervalStepSample = 1000; int intervalStepSample = 1000;
int intervalStepForce = 100; int intervalStepForce = 100;
int intervalStepRes = 10; int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible: // compressible:
// 0 -- incompressible flow. // 0 -- incompressible flow.
// 1 -- compressible flow. (default) // 1 -- compressible flow. (default)
int compressible = 1; int compressible = 1;
// 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)
// Kprec: The coefficient K for the cut-off velocity.
// 1.0~3.0 is suggested. (default, 3.0)
// preconFarfieldBCMethod: The precondition method for farfield boundary condition.
// 0 -- precondition far-field boundary based on riemann invariants.
// 1 -- Turkel's simplified far-field boundary condition.
int ifLowSpeedPrecon = 0;
double Kprec = 3.0;
int preconFarfieldBCMethod = 1;
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# CFD Control Parameter # # CFD Control Parameter #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions. // 0 -- the nondimensional conditions.
// 1 -- the flight conditions. // 1 -- the flight conditions.
// 2 -- the experiment conditions. // 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions. // 3 -- the subsonic boundary conditions. (Useless!)
// 4 -- the condition that the velocity, temperature and density are given. // 4 -- the condition that the velocity, temperature and density are given.
// 5 -- the condition that the velocity, temperature and pressure are given. // 5 -- the condition that the velocity, temperature and pressure are given.
//flowInitMethod: Flow field initialization method.
// 0 -- The entire flow field is initialized according to Infinite velocity.
// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m. // 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. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// freestream_vibration_temperature: Dimensional freestream vibration temperature. // freestream_vibration_temperature: Dimensional freestream vibration temperature.
@ -303,11 +314,11 @@ int compressible = 1;
// condition is radiation equilibrium temperature, and 0.8 is the default value. // condition is radiation equilibrium temperature, and 0.8 is the default value.
// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol.
// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on.
int directionMethod = 0; int directionMethod = 0;
double refMachNumber = 0.73; double refMachNumber = 0.73;
double attackd = 2.79; double attackd = 2.79;
double angleSlide = 0.00; double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0; int inflowParaType = 0;
double refReNumber = 6.5e6; double refReNumber = 6.5e6;
@ -321,14 +332,6 @@ double freestream_vibration_temperature = 300.00;
//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). //double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2).
//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). //double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)).
//int inflowParaType = 3;
//int nsubsonicInlet = 1;
//int nsubsonicOutlet = 1;
//string inLetFileName = "./bin/subsonicInlet.hypara";
//string outLetFileName = "./bin/subsonicOutlet.hypara";
//double refDimensionalTemperature = 288.144;
//double refDimensionalPressure = 1.01313E05;
// The velocity, temperature and density are fixed. // The velocity, temperature and density are fixed.
//int inflowParaType = 4; //int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0; //double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed. // The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6; //int inflowParaType = 6;
//double refDimensionalTemperature = 293; //double refDimensionalTemperature = 293.0;
//double refDimensionalPressure = 8886.06; //double refDimensionalPressure = 8886.06;
// The velocity, temperature and pressure are read from file.
//int inflowParaType = 7;
//string weatherDataFilePath = "./WRFData/";
//double longitude = 110.95
//double latitude = 19.61;
double wallTemperature = -1.0; double wallTemperature = -1.0;
double radiationCoef = 0.8; double radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter. double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol. double refMolecularWeight = 28.9644; // unit of g/mol.
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
# Spatial Discretisation # # Spatial Discretisation #
//----------------------------------------------------------------------- //-----------------------------------------------------------------------
#******************************************************************* #************************************************************************
# Struct Solver * # Struct Solver *
#******************************************************************* #************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid. // inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid. // Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f". // -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe". // -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid. // isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default) // 0 -- NO. (default)
// 1 -- Yes. // 1 -- Yes.
// str_limiter_name: Limiter of struct grid. // str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". // -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter. // -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version. // -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" // -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe"; string inviscidSchemeName = "roe";
int isWennScheme = 0; int isWennScheme = 0;
string str_limiter_name = "vanalbada"; string str_limiter_name = "vanalbada";
#******************************************************************* #************************************************************************
# UnStruct Solver or Common * # UnStruct Solver or Common *
#******************************************************************* #************************************************************************
// viscousType: Viscous model. // viscousType: Viscous model.
// 0 -- Euler. // 0 -- Euler.
// 1 -- Lamilar. // 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES. // 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. // uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// Using this when solve Unstructered grid or hybrid. // Using this when solve Unstructered grid or hybrid.
// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle". // -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle",
// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+".
// uns_limiter_name: Limiter of Unstruct grid. // uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod". // -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st". // -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter. // -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term. // uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2". // -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used. // 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// It is used to scale the default Roe entropy fix coefficients. // It is used to scale the default Roe entropy fix coefficients.
// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 // AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0.
//int viscousType = 0; //int viscousType = 0;
//string viscousName = "Euler"; //string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0; double AusmpwPlusLimiter = 1.0;
//----------------------------------------------------------------------- #************************************************************************
# Temporal Discretisation # # Temporal Discretisation *
//----------------------------------------------------------------------- #************************************************************************
// iunsteady: Steady or unsteady. // iunsteady: Steady or unsteady.
// 0 -- steady. // 0 -- steady.
// 1 -- unsteay. // 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration. // 6 -- Jacobian iteration.
// 7 -- Line LU-SGS. // 7 -- Line LU-SGS.
// 8 -- Matrix LU-SGS. // 8 -- Matrix LU-SGS.
// 9 -- GMRES.
// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. // iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation.
// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. // Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method.
// CFLStart: Started cfl number. // CFLStart: Started cfl number.
// CFLEnd: End cfl number. // CFLEnd: End cfl number.
// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. // CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd.
// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration.
// OriginalTscheme : Used for LUSGS and GMres hybrid computing.
// useLUSGSprecond: Initialize flow field for GMRES.
// 0 --Initialize by first order Jacobian matrix.
// 1 --Initialize by LUSGS.
// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field.
// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) // ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. // swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. // nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function. // 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step. // RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step. // lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0; int iunsteady = 0;
double physicalTimeStep = 0.01; double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001; double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000; int startStatisticStep = 800000;
double statisticalTimePeriod = -1.0; double statisticalTimePeriod = -1.0;
int statisticMethod = 0; int statisticMethod = 0;
int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2.
int methodOfDualTime = 3; int methodOfDualTime = 3;
int min_sub_iter = 50; int min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01; double CFLStart = 0.01;
double CFLEnd = 10.0; double CFLEnd = 10.0;
int CFLVaryStep = 500; int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2; double pMaxForCFL = 0.2;
double pMinForCFL = 0.1; double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2; double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01; double visl_min = 0.01;
double turbCFLScale = 1.0; double turbCFLScale = 1.0;
double csrv = 2.0; double csrv = 1.0;
double timemax = 1.0e10; double timemax = 1.0e10;
double dtsave = -1.0; double dtsave = -1.0;
int maxale = 10; int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4; //int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
#************************************************************************
//----------------------------------------------------------------------- # File In or Out *
# File In or Out # #************************************************************************
//-----------------------------------------------------------------------
// numberOfGridGroups: The number of grid groups. // numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path, // gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory. // which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance. // nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance. // 0 -- Compute wall distance.
// 1 -- Not compute. // 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. // protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. // wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1; int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts"; string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = ""; string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat"; string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat"; string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat"; string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat"; string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat"; string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt"; string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat"; string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.dat"; string protectionFile1 = "results/flow1.dat";
string wall_heatfluxfile = "results/wall_heatflux.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat";
string protectionTurbFile0 = "results/turb0.dat";
string protectionTurbFile1 = "results/turb1.dat";
string protectionTransitionFile0 = "results/transition0.dat";
string protectionTransitionFile1 = "results/transition1.dat";
int nDumpSurfaceInfo = 0; int nDumpSurfaceInfo = 0;
string wall_varfile = ""; string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat"; string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat"; string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt"; string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile. // visualfileType: The file type of visualfile.
// 0 -- Tecplot binary. // 0 -- Tecplot binary.
// 1 -- Tecplot ASCII. // 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1; int visualfileType = 1;
// samplefileMode: The dump mode of sample file. // samplefileMode: The dump mode of sample file.
@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0];
// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36),
// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40),
// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), // -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81) // -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- specific heat ratio(gama, 56) // -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big. // Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition---------------- //-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall. // nVisualWallVariables: The number of visual variables on wall.
// visualWallVariables : dumped variable types, listed as following: // visualWallVariables : dumped variable types, listed as following:
// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), // -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4),
// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), // -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8),
// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), // -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11),
// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) // -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15),
// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) // -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19),
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) // -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8; int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
@ -739,7 +761,9 @@ int dumpStandardModel = 0;
// 1 -- Real cell where the probe is located. // 1 -- Real cell where the probe is located.
// nProbeVariables: Number of variables want to be dumped for probes monitered. // nProbeVariables: Number of variables want to be dumped for probes monitered.
// probeVariables : Variable types dumped, listed as following: // probeVariables : Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). // -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9),
// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12).
// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!!
// probeVariables order must from small to big. // probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0; int searchCellsMethod = 0;
int nProbeVariables = 7; int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0; int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter # #************************************************************************
//----------------------------------------------------------------------- # Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence. // turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source. // kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original. // 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type // transitionType: transition model type
// 0 -- none. // 0 -- none.
// 2 -- gama-re-theta. // 2 -- gama-re-theta.
// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition // turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition.
// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not // freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not.
int turbInterval = 1; int turbInterval = 1;
int turbOrderStruct = 2; int turbOrderStruct = 2;
int kindOfTurbSource = 0; int kindOfTurbSource = 0;
int mod_turb_res = 0; int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3; double freeStreamViscosity = 1.0e-3;
double muoo = 3.0; double muoo = 3.0;
double kwoo = 5.0; double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0; int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0; double freeDecayXLocation = 0.0;
int compressibleCorrection = 0; int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1; int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max. // maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10; double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0; int monitor_vistmax = 0;
//----------------------------------------------------------------------- #************************************************************************
# LES Parameter # # LES Parameter *
//----------------------------------------------------------------------- #************************************************************************
// iLES: Create LESSolver or not. // iLES: Create LESSolver or not.
// = 1 - Create LESSolver; // = 1 -- Create LESSolver;
// != 1 - not. // != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb. // amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random 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. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter; // = 0 -- in only first sub-iter;
// != 0 - in every sub-iter. // != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not. // ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not. // ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not; // = 0 -- not;
// != 0 - Add body force. // != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not. // bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb. // utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model. // sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom"; // = "dsmCom";
// = "wale"; // = "wale";
// = "sigma". // = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); // deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3); // = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti. // = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function; // wallDampingFunctionType: = 0 -- no wall function;
// = 1 - van Driest; // = 1 -- van Driest;
// = 2 - developed by Dr. Deng Xiaobing; // = 2 -- developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli. // = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type. // turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul; // = 0 -- mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul; // = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 - mu_total = max(mut ,0)+ mul. // = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model. // smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model. // waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not. // filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average 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. // isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0; int iLES = 0;
string sgsmodel = "smagorinsky"; string sgsmodel = "smagorinsky";
int deltaFunctionType = 2; int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1; int averageWidth = 1;
int monitorNegativeConstant = 0; int monitorNegativeConstant = 0;
//----------------------------------------------------------------------- #************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas # # Other Parameters for Hypersonic Non-equilibrium Gas *
//----------------------------------------------------------------------- #************************************************************************
// dg_high_order: // dg_high_order:
// 0 -- generic order accuracy. // 0 -- generic order accuracy.
// 1 -- high order accuracy. // 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes. // 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files. // 1 -- gas model is imported from library files.
// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver,
// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver.
// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps.
// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual.
// nm: Equation number of the physics, but is out of commision now. // nm: Equation number of the physics, but is out of commision now.
// 4 -- for 2D. // 4 -- for 2D.
// 5 -- for 3D. // 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas. // 0 -- perfect gas.
// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component.
// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. // nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. // nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. // nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction.
// the value equals to or is greater than 1, and 3 is for default value. // The value equals to or is greater than 1, and 3 is for default value.
// nSlipBCModel: The computational model of slip boundary conditions. // nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip. // 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions. // 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions. // 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model. // 1 -- One-temperature model.
// 2 -- Two-temperature model. // 2 -- Two-temperature model.
// 3 -- Three-temperature model. // 3 -- Three-temperature model.
// isUseNoneqCond:
// 0 -- compute the source terms without any conditions.
// 1 -- compute the source terms using the non-equilibrium condition.
// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value.
// nIdealState: whether take all gas species as ideal gas for gas-mixture process. // nIdealState: whether take all gas species as ideal gas for gas-mixture process.
// 0 -- No. // 0 -- No.
// 1 -- Yes. // 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method. // 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the polynomial fitting method. // 1 -- the energy term is computed using the polynomial fitting method.
// 2 -- the energy term is computed using the piecewise polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method.
@ -946,14 +965,13 @@ int monitorNegativeConstant = 0;
// 1.0 -- proposed by Maxwell. // 1.0 -- proposed by Maxwell.
// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. // sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall.
// 1.146 -- proposed for an additional "fictitious" velocity slip. // 1.146 -- proposed for an additional "fictitious" velocity slip.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. // chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. // spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. // staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions. // nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 0 -- not freeze, the chemical reaction sources will be calculated. // 0 -- not freeze, the chemical reaction sources will be calculated.
// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te // 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.
// veTemperatureMin: The minimum of Tv and Te.
// maxViscous: the maximum of Viscous. // maxViscous: the maximum of Viscous.
// trTemperatureMin: the minimum value of trTemperature. // trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature. // veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species // nSpeciesLimit: limitter of gas species
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction // nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0. // 0 -- method 0.
// 1 -- method 1. // 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid // nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef // nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource // nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used. // 0 -- not used.
// 1 -- used. // 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource // nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori.) // 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New) // 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature. // nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs // 0 -- not used.
// 0 -- not used // 1 -- used.
// 1 -- used // nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// nDiagonalModified: Modified on Diagonal // 1 -- new.
// 0 -- not used // nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 1 -- Ori. // 0 -- not used.
// 2 -- new // 1 -- new.
// nGradPrimtiveMethod: // nGradPrimtiveMethod:
// 0 -- Ori. // 0 -- Ori.
// 1 -- new // 1 -- new.
// nAblation: // nAblation:
// 0 -- The wall ablation is not computed. // 0 -- The wall ablation is not computed.
// 1 -- The wall ablation is computed. // 1 -- The wall ablation is computed.
@ -1017,8 +1033,8 @@ int monitorNegativeConstant = 0;
// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. // "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. // "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting. // "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©. // for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©. // for unstruct solver mixing multi-species<65><73>O2 NO CO CO2 H2 N2 Air CH4<48><34>.
// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // For self-definition model, the gasfile is used to indicate the file path of the new gas model.
// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma.
// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation.
// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation.
// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation.
// useHyflowSetting : Setting for HyFLOW GUI.
// 0 -- PHengLEI
// 1 -- HyFLOW
// nProtectData: Use the continuation file data protection mechanism. // nProtectData: Use the continuation file data protection mechanism.
// 0 -- no // 0 -- no.
// 1 -- yes // 1 -- yes.
// nTvChange: Judge whether the Tv equals Ttr.
// 0 -- yes.
// 1 -- no.
// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions.
// nFraction: the initial fractions type of species.
// 0 -- mass fraction.
// 1 -- mole fraction.
int dg_high_order = 0; int dg_high_order = 0;
int iapplication = 0; int iapplication = 0;
int isAdaptiveSolver = 0; int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1; double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0; double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0; double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0; int nDebug = 0;
int nSpeciesLimit = 1; int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5; int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1; int veTemperatureMinModified = 1;
int nDiagonalModified = 0; int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1; int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1; int nInviscidFluxModify = 1;
int nQlLimitMethod = 2; int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1; int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0; int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0; int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0; int nAblation = 0;
int isInjection = 0; int isInjection = 0;
int nViscosityModel = 0; int nViscosityModel = 0;
int nMarsModel = 0; int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5"; string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; //string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2"; string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2"; //string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0"; //string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0; int nContinueModel = 0;
int nChemicalFlowStep = 0; int nChemicalFlowStep = 0;
int ifStartFromPerfectGasResults = 0; int ifStartFromPerfectGasResults = 0;
int isUseNoneqCond = 0;
double frozenCondition = 0.01;
int nLeakageMonitor = 0;
double totalLeakageVolume = 1000.0;
double monitorThresholdValue = 0.05;
double sprayFactor = 0.0;
######################################################################### #########################################################################
// Multi-Grid parameters. // Multi-Grid parameters.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order. // 1 -- zero order.
// 2 -- first-order. (default) // 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit. // mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1; int nMGLevel = 1;
int MGCoarsestIteration = 1; int MGCoarsestIteration = 1;
int MGPreIteration = 1; int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat"; string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
######################################################################### #************************************************************************
# High Order Struct Solver # # High Order Struct Solver *
######################################################################### #************************************************************************
// isFVMOrFDM: // isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method. // 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method. // 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not. // codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-overlapping grid. // 0 -- NON-overlapping grid.
// 1 -- Overlapping grid. // 1 -- Overlapping grid.
// oversetInterpolationMethod: the method of overset interpolation while field simulation // oversetInterpolationMethod: the method of overset interpolation while field simulation.
// 0 -- set the acceptor cell value by donor cell value. // 0 -- set the acceptor cell value by donor cell value.
// 1 -- set the acceptor cell value by distance weight of donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value.
// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated.
// 0 -- no.
// 1 -- yes.
// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in
// the current overset grid(only for three dimension).
// 0 -- no.
// 1 -- yes.
// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid.
// 0 -- no.
// 1 -- yes.
// walldistMainZone: The initial value of background grid which does not exist wall boundary condition.
// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell.
// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region.
// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary.
// 0 -- one layer.
// 1 -- two layers.
// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region.
// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure.
// 0 -- no.
// 1 -- yes.
int codeOfOversetGrid = 0; int codeOfOversetGrid = 0;
int oversetInterpolationMethod = 0; int oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0; int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0; int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0; int outTecplotOverset = 0;
int outPutOversetVisualization = 0; int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2; int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------ // ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0; double referenceVelocity = 1.0;
double referenceDensity = 1.0; double referenceDensity = 1.0;
int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
int strategyForGCLSource = 0; //0-present; 1-Ahn; int strategyForGCLSource = 0; // 0-present; 1-Ahn.
//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton // 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton.
int methodForKineticEquation = 0; int methodForKineticEquation = 0;
double relaxParameterOfKinetic = 1.0; double relaxParameterOfKinetic = 1.0;
######################################################################### #************************************************************************
# motive information # # motive information *
######################################################################### #************************************************************************
int numberOfMovingBodies = 1; int numberOfMovingBodies = 1;
############################## body0 ############################## ############################## body0 ##############################
//mass of parts // mass of parts.
double mass_0 = 1.0; double mass_0 = 1.0;
//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz // gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_0 = 0.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz.
double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
//initial six DOF position information of parts. xc yc zc // initial six DOF position information of parts. xc yc zc.
double massCenter_0[] = 0.0, 0.0, 0.0; double massCenter_0[] = 0.0, 0.0, 0.0;
//initial six DOF position information of parts. angleX angleY angleZ // if reset mass center while restart.
int resetMassCenter_0 = 0;
// position offset of parts. dx dy dz.
double massCenterDxyz_0[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_0[] = 0.0, 0.0, 0.0; double attitudeAngle_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. vc vy vz // initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_0[] = 0.0, 0.0, 0.0; double massCenterVelocity_0[] = 0.0, 0.0, 0.0;
//initial six DOF move information of parts. omigX omigY omigZ // initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_0[] = 0.0, 0.0, 0.0; double angularVelocity_0[] = 0.0, 0.0, 0.0;
// the object that the parts belong to. // the object that the parts belong to.
int fartherIndex_0 = -1; int fartherIndex_0 = -1;
//the assembly position of the parts. xc yc zc angleX angleY angleZ // the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0;
// the move pattern of the parts. // the move pattern of the parts.
// -1 given motion partten. // -1 given motion partten.
@ -1349,23 +1403,24 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0
int RBDMethod_0 = 0; int RBDMethod_0 = 0;
double amplitude_0 = 0.0; double amplitude_0 = 0.0;
double reduceFrequency_0 = 0.0; double reduceFrequency_0 = 0.0;
//direction of rotation // direction of rotation.
// 1 -- clockwise from the point of view along the positive x axis. // 1 -- clockwise from the point of view along the positive x axis.
// -1 -- anticlockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1; int direction_0 = -1;
double rotateFrequency_0 = 0.0; double rotateFrequency_0 = 0.0;
//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; //string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter";
//additional force (system axis) fX fY fZ // dimensional physical time for additional force(s).
double addedForceTime_0[] = 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_0[] = 0.0, 0.0, 0.0; double addedForce_0[] = 0.0, 0.0, 0.0;
//additional moment of Force (system axis) mX mY mZ // additional moment(inertia system) mX mY mZ.
double addedMoment_0[] = 0.0, 0.0, 0.0; double addedMoment_0[] = 0.0, 0.0, 0.0;
// the deformation method of the parts. // the deformation method of the parts.
int morphing_0 = 0; int morphing_0 = 0;
// post indentify // post indentify.
int integralOrder = 4; int integralOrder = 4;
// ---------------- ATP read -------------------------------------------- // ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0; //@int inflowParaType = 0;
//@double refReNumber = 6.5e6; //@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0; //@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0; //@double refDimensionalDensity = 0;
//@string weatherDataFilePath = "./WRFData/";
######################################################################### //@double longitude = 110.95
# Old Parameter # //@double latitude = 19.61;
######################################################################### #************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0; int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
######################################################################### //double partialCFL[] = [0.0];
# Incompressible Parameter # //double partialSpeedCoef[] = [0.0];
######################################################################### //double partialSpeed[] = [0.0];
//double partialAttackd[] = [0.0];
//double partialSlide[] = [0.0];
//double partialPressure[] = [0.0];
//double partialTemperature[] = [0.0];
//double partialMassFractions[] = [0.0];
#************************************************************************
# Incompressible Parameter *
#************************************************************************
int isSolveEnergyEquation = 0; int isSolveEnergyEquation = 0;
int isSolveTurbEquation = 0; int isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0; int isSolveSpeciesEquation = 0;

View File

@ -4,9 +4,12 @@
// gridtype: Grid type for generation, conversion, reconstruction, merging. // gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid. // 0 -- Unstructured grid.
// 1 -- Structured grid. // 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion. // nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// 1 -- Y upward. (default) // axisRotateOrder : axis rotating order.
// 2 -- Z upward. // 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process. // from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE. // -1 -- MULTI_TYPE.
// 1 -- PHengLEI, *.fts. // 1 -- PHengLEI, *.fts.
@ -19,7 +22,9 @@
// 8 -- GMSH, *.msh. // 8 -- GMSH, *.msh.
// 9 -- Gridgen type of structured grid, *.dat/*.grd. // 9 -- Gridgen type of structured grid, *.dat/*.grd.
int gridtype = 0; int gridtype = 0;
int axisup = 2; int nAxisRotateTimes = 1;
int axisRotateOrder[] = [1];
double axisRotateAngles[]= [90.0];
int from_gtype = 2; int from_gtype = 2;
######################################################################### #########################################################################

View File

@ -45,9 +45,6 @@ string parafilename = "./bin/cfd_para_subsonic.hypara";
//int nsimutask = 14; //int nsimutask = 14;
//string parafilename = "./bin/integrative_solver.hypara"; //string parafilename = "./bin/integrative_solver.hypara";
//int nsimutask = 15;
//string parafilename = "./bin/gridcheck_solver.hypara";
//int nsimutask = 99; //int nsimutask = 99;
//string parafilename = "./bin/post_processing.hypara"; //string parafilename = "./bin/post_processing.hypara";

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,194 @@
#########################################################################
# 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 = 10000;
int intervalStepFlow = 1000;
int intervalStepPlot = 1000;
int intervalStepForce = 100;
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;
#########################################################################
# 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.2;
double attackd = 13;
double angleSlide = 0.00;
int inflowParaType = 0;
double refReNumber = 4271366;
double refDimensionalTemperature = 288.89;
//int inflowParaType = 1;
//double height = 0.001;
double gridScaleFactor = 0.0254;
double forceReferenceLengthSpanWise = 2.160371; // unit of meter.
double forceReferenceLength = 1.007; // unit of meter.
double forceReferenceArea = 2.046468; // unit of meter^2.
double TorqueRefX = 0.872287; // unit of meter.
double TorqueRefY = 0; // unit of meter.
double TorqueRefZ = 0.02413; // 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 str_limiter_name = "smooth";
#*******************************************************************
# 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 = 0;
double CFLEnd = 100.0;
int nLUSGSSweeps = 5;
#########################################################################
# 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 = 100;
#########################################################################
# 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/trap21_coarse_fixed__256.fts";
int plotFieldType = 0;
// ----------------- 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 = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
// 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;

View File

@ -0,0 +1,36 @@
#########################################################################
# Grid data type #
#########################################################################
// gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid.
// 1 -- Structured grid.
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// axisRotateOrder : axis rotating order.
// 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE.
// 1 -- PHengLEI, *.fts.
// 2 -- CGNS, *.cgns.
// 3 -- Plot3D type of structured grid, *.dat/*.grd.
// 4 -- Fieldview type of unstructured grid, *.dat/*.inp.
// 5 -- Fluent, *.cas/*.msh.
// 6 -- Ustar, mgrid.in.
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
// 8 -- GMSH, *.msh.
// 9 -- Gridgen type of structured grid, *.dat/*.grd.
int gridtype = 0;
int nAxisRotateTimes = 1;
int axisRotateOrder[] = [1];
double axisRotateAngles[] = [90.0];
int from_gtype = 2;
#########################################################################
# File path #
#########################################################################
// from_gfile: path of original data file for unstructure grid convert from.
// out_gfile: path of target file for grid convert to, *.fts type of file usually.
string from_gfile = "./grid/trap21_coarse_fixed.cgns";
string out_gfile = "./grid/trap21_coarse_fixed.fts";

View File

@ -0,0 +1,55 @@
string title = "PHengLEI Main Parameter Control File";
// IMPORTANT NOTICE: DON NOT MODIFY THE FOWLLOWING LINE.
string defaultParaFile = "./bin/cfd_para.hypara";
// ndim: Dimensional of the grid, 2 or 3.
// nparafile: the number of parameter files.
// nsimutask: simulation task type.
// 0 -- CFD Solver of NS or Turbulation.
// 1 -- Grid generation: for special typical cases, such as cylinder, flat plate, etc.
// Grid conversion: from other format to PHengLEI format (.fts).
// Grid reconstruction: such as grid adaptation.
// Grid merging: merge two blocks into one block.
// Grid repairing: repair the original grid in order to remove the negative volume cells.
// 2 -- Wall distance computation for turb-solver.
// 3 -- Grid partition.
int ndim = 3;
int nparafile = 1;
int nsimutask = 0;
string parafilename = "./bin/cfd_para_subsonic.hypara";
//string parafilename = "./bin/cfd_para_transonic.hypara";
//string parafilename = "./bin/cfd_para_supersonic.hypara";
//string parafilename = "./bin/cfd_para_hypersonic.hypara";
//string parafilename = "./bin/incompressible.hypara";
//int nsimutask = 1;
//string parafilename = "./bin/grid_para.hypara";
//int nsimutask = 2;
//string parafilename = "./bin/cfd_para.hypara";
//int nsimutask = 3;
//string parafilename = "./bin/partition.hypara";
//int nsimutask = 1;
//string parafilename = "./bin/grid_deform_para.hypara";
//int nsimutask = 5;
//string parafilename = "./bin/overset_grid_view.hypara";
//int nsimutask = 13;
//string parafilename = "./bin/lbm_para.hypara";
//int nsimutask = 14;
//string parafilename = "./bin/integrative_solver.hypara";
//int nsimutask = 99;
//string parafilename = "./bin/post_processing.hypara";
// ---------------- Advanced Parameters, DO NOT care it ----------------
int numberOfGridProcessor = 0;
// ATP read
//@string parafilename1 = ""
//@string parafilename2 = "";

View File

@ -0,0 +1,21 @@
// pgridtype: The grid type.
// 0 -- unstruct grid.
// 1 -- struct grid.
// maxproc: The number of partition zones that want to be divided into,
// which is equal to the number of CPU processors you want.
// Usually, 50~100 thousands structured cells per CPU-Core is suggested.
// 30~70 thousands unstructured cells per CPU-Core is suggested.
// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts).
// partition_grid_file: Target partition grid file(PHengLEI type, *.fts).
int pgridtype = 0;
int maxproc = 256;
string original_grid_file = "./grid/trap21_coarse_fixed.fts";
string partition_grid_file = "./grid/trap21_coarse_fixed__256.fts";
// numberOfMultigrid: Number of multi-grid levels, ONLY used for structured grid.
// 1 -- single level.
// 2 -- 2 level.
// N -- N level,..., et al.
int numberOfMultigrid = 1;

View File

@ -0,0 +1,5 @@
红山开源风雷算例库原始网格获取百度网盘链接:
链接http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA
提取码w47m
plot3D格式网格需同时下载.grd和.inp文件