新增LBM算例6个

This commit is contained in:
hechao 2023-06-19 11:06:28 +08:00
parent 9a0ac605d8
commit 6eff6a7e02
46 changed files with 7765 additions and 4878 deletions

View File

@ -1,60 +0,0 @@
# nBoundaryConditons : number of global boundary conditions.
# bcName : Boundary Condition Name.
# bcType(in PHengLEI): Boundary Condition Type.
# Account of how to set boundaryconditon.
# string bcName = "Farfield";
# {
# int bcType = 4;
# int inflowParaType = 1;
# double attackd = 0;
# double refReNumber = 6.5e6;
# double refMachNumber = 3.5;
# double angleSlide = 0;
# }
int nBoundaryConditons = 7;
string bcName = "SOLID_SURFACE";
{
int bcType = 2;
}
string bcName = "Wall_16";
{
int bcType = 16;
}
string bcName = "Wall_17";
{
int bcType = 17;
}
string bcName = "Wall_18";
{
int bcType = 18;
}
string bcName = "SYMMETRY";
{
int bcType = 3;
}
string bcName = "FARFIELD";
{
int bcType = 4;
}
string bcName = "POLE1";
{
int bcType = 71;
}
# 'bcType' is defined as following:
# 99: PERIODIC
# -2: WAKE
# -1: INTERFACE
# 0 : NO_BOUNDARY_CONDITION
# 1 : EXTRAPOLATION
# 2 : SOLID_SURFACE
# 3 : SYMMETRY
# 4 : FARFIELD
# 5 : INFLOW
# 6 : OUTFLOW
# 52: PRESSURE_INLET
# 62: PRESSURE_OUTLET
# 61: OUTFLOW_CONFINED
# 7 : POLE

View File

@ -1,17 +0,0 @@
int taskSelector = 1;
int codeOfLargeScale = 0;
int numberOfMultigrid = 1;
int numberOfProcessors = 4;
string originalGridFile = "./grid/30p30n_str_3D.grd";
string originalBoundaryFile = "./grid/30p30n_str_3D.inp";
int numberOfGridGroups = 4;
int zoneSpan[numberOfGridGroups] = 3,4,4,5;
int solidBcSize = 2;
int solidColorList[solidBcSize] = 2,4;
int outerBcSize = 3;
int outerColorList[outerBcSize] = 16,17,18;

View File

@ -1,2 +0,0 @@
针对本算例风雷代码cmake构建的时候需要勾选USE_OVERSET选项
该算例当前只支持2171版本

View File

@ -1,61 +0,0 @@
# nBoundaryConditions: Number of global boundary conditions.
# bcName : Boundary condition name.
# bcType(in PHengLEI): Boundary condition type.
# How to set boundary condition, for example:
# string bcName = "Wall";
# {
# int bcType = 2;
# int viscousType = 1;
# double wallTemperature = -1.0;
# double uWall = 0.0;
# double vWall = 0.0;
# double wWall = 0.0;
# }
# string bcName = "Inflow";
# {
# int bcType = 5;
# int inflowParaType = 0;
# double refMachNumber = 0.73;
# double attackd = 2.79;
# double angleSlide = 0.0;
# double refReNumber = 6.5e6;
# double refDimensionalTemperature = 288.15;
# }
# For more information, see examples/bin/boundary_condition.hypara file!!!
int nBoundaryConditions = 3;
string bcName = "wall";
{
string bodyName = "body";
int bcType = 2;
string flowType = "FLOW_SOLID_SURFACE";
}
string bcName = "inlet";
{
int bcType = 5;
string flowType = "FLOW_VELOCITY_INLET";
double flowU =0.9191874;
}
string bcName = "outlet";
{
int bcType = 6;
string flowType = "FLOW_PRESSURE_OUTLET";
double flowP =0;
}
# 'bcType' is defined as following:
# -2: WAKE
# -1: INTERFACE
# 0 : NO_BOUNDARY_CONDITION
# 1 : EXTRAPOLATION
# 2 : SOLID_SURFACE
# 3 : SYMMETRY
# 4 : FARFIELD
# 5 : INFLOW
# 6 : OUTFLOW
# 52: PRESSURE_INLET
# 62: PRESSURE_OUTLET
# 61: OUTFLOW_CONFINED
# 7 : POLE

View File

@ -1,215 +0,0 @@
#########################################################################
# General Control Parameter #
#########################################################################
// nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance.
// 1 -- Not compute.
// gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory.
// 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.
// intervalStepRes: The step intervals for residual 'res.dat' saved.
// 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.
// compressible: An indicator that distinguishes density base from pressure base. 0-incompressible, 1-compressible
// isUnsteady: An indicator that distinguishes unsteady problem from steady problem. 0-steady, 1-unsteady
// startTime: The initial time of the unsteady simulation.
// endTime: The end time of the unsteady simulation.
// dt: The time interval of the unsteady simulation.
// innerIter: The number of step for current time.
// OutputTimeStep: The interval step of output for unsteady simulation.
int nIsComputeWallDist = 1;
string gridfile = "./grid/back.fts";
int maxSimuStep = 2000;
int intervalStepFlow = 2000;
int intervalStepPlot = 1000;
int intervalStepRes = 10;
double gridScaleFactor = 1.0;
int compressible = 0;
int iunsteady = 0;
double startTime = 0.0;
double endTime = 30;
double dt = 0.1;
int innerIter = 10;
int OutputTimeStep = 5;
#########################################################################
# Post-Processing #
#########################################################################
// nVisualVariables: Number of variables want to be dumped for tecplot visualization.
// visualVariables : Variable types dumped, listed as following:
// -- U(22), V(23), W(24), P(25), CP(26), T(27), DEN(28), VIS(29), TE(31), ED(32), enthalpy(70)
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big.
int nVisualVariables = 4;
int visualVariables[] = [22, 23, 24, 25];
#########################################################################
# Flow Parameter #
#########################################################################
string FLOW[] = "FLOW";
// Initial value of variables or constant
double initRho = 1.0;
double initMu = 0.0001;
double initU = 0.9191874;
double initV = 0;
double initW = 0;
double initP = 0;
// Relaxing factor
double urfU = 0.4;
double urfV = 0.4;
double urfW = 0.4;
double urfP = 0.3;
double urfFlux = 0.4;
// Tolerance for governing equations
double resU = 1e-6;
double resV = 1e-6;
double resW = 1e-5;
double resP = 1e-5;
// Solver for solving linear system
// : CGS/GMRES/BiCGSTAB/AMG
string iterSolvU = "BiCGSTAB";
string iterSolvV = "BiCGSTAB";
string iterSolvW = "BiCGSTAB";
string iterSolvP = "AMG";
// Max Iter for solving linear system
int maxSweepU = 30;
int maxSweepV = 30;
int maxSweepW = 30;
int maxSweepP = 30;
// Tolerance for solving linear system
double iterSolvTolU = 1e-3;
double iterSolvTolV = 1e-3;
double iterSolvTolW = 1e-3;
double iterSolvTolP = 1e-2;
// Gradient Calculation
// : GAUSS/LSQ
string UGradCalc = "GAUSS";
string VGradCalc = "GAUSS";
string WGradCalc = "GAUSS";
string PGradCalc = "GAUSS";
// Convection scheme
// : UPWIND/CDS/QUICK/SUDS
string flowConvCalc = "UPWIND";
// Diffusion scheme(central difference)
// : NON_ORTHOGONAL
string flowDiffCalc = "NON_ORTHOGONAL";
// Transient scheme
// : CRANK_NICOLSON/IMPLICIT_2ND_ORDER/IMPLICIT_EULER
string flowTranCalc = "IMPLICIT_EULER";
// Source for flow
// : FLOW_DEFAULT/FLOW_GRAVITY
string flowSourceCalc[] = "FLOW_DEFAULT";
//string flowSourceCalc[] = "FLOW_DEFAULT FLOW_GRAVITY";
int bodyForceFlag = 0;
//double gravityX = 0.0;
//double gravityY = -9.81;
//double gravityZ = 0.0;
int isBoussinesq = 0;
#########################################################################
# Turbulence Parameter #
#########################################################################
// turb SA
//int viscousType = 11; //SPALART_ALLMARAS = 11, KEPSILON = 13
string TURB_SA[] = ["TURB_SA"];
string TURB_SA_SCALAR_NAME[] = ["kinetic"];
double urfMu = 1.0;
double kineticInitValue = 1.0;
string kineticConvCalc = "UPWIND";
string kineticDiffCalc = "NON_ORTHOGONAL";
string kineticSourceCalc[] = "TURB_SA_DEFAULT";
double kineticUrf = 1.0;
double kineticRes = 1e-6;
string turbIterSolv = "BiCGSTAB";
int turbMaxSweep = 30;
double turbIterSolvTol = 1e-12;
// turb K-EPSILON
//int viscousType = 13; //SPALART_ALLMARAS = 11, KEPSILON = 13
string TURB_K_EPSILON[] = ["TURB_K","TURB_EPSILON"];
string TURB_K_EPSILON_SCALAR_NAME[] = ["kinetic", "epsilon
string turbIterSolv = "BiCGSTAB";
int turbMaxSweep = 30;
double turbIterSolvTol = 1e-12;
string TURB_K[] = ["TURB_K"];
string TURB_K_SCALAR_NAME[] = ["kinetic"];
string TURB_EPSILON[] = ["TURB_EPSILON"];
string TURB_EPSILON_SCALAR_NAME[] = ["epsilon"];
double urfMu = 1.0;
// turb k
double kineticInitValue = 15.48;
string kineticConvCalc = "UPWIND";
string kineticDiffCalc = "NON_ORTHOGONAL";
string kineticSourceCalc[] = "TURB_K_DEFAULT";
double kineticUrf = 0.6;
double kineticRes = 1e-6;
// turb epsilon
double epsilonInitValue = 200.3;
string epsilonConvCalc = "UPWIND";
string epsilonDiffCalc = "NON_ORTHOGONAL";
string epsilonSourceCalc[] = "TURB_EPSILON_DEFAULT";
double epsilonUrf = 0.6;
double epsilonRes = 1e-6;
#########################################################################
# Energy Parameter #
#########################################################################
// energyType: The energy solver switch. 0-off, 1-on
// ENERGY[]: Solver binding for factory mode.
// ENERGY_SCALAR_NAME[]: The name of variable to be solved in energy equation.
// energyPrintName[]: The output on the screen during the solution.
int energyType = 0;
string ENERGY[] = ["ENERGY"];
string ENERGY_SCALAR_NAME[] = "enthalpy";
string energyPrintName[] = ["H"];
// Initial value of variables or constant
double initT = 273.0;
double initK = 0.026;
double initCPg = 1007.0;
double urfT = 0.8;
double urfH = 0.7;
double enthalpyInitValue = 0.21;
// Discrete schemes
string energyConvCalc = "UPWIND";
string energyDiffCalc = "NON_ORTHOGONAL";
string energySourceCalc[] = ["EMPTY"];
string energyGradCalc = "GAUSS";
string energyTranCalc = "IMPLICIT_EULER";
// Set for solving linear equations
string enthalpyIterSolv = "BiCGSTAB";
int enthalpyMaxSweep = 30;
double enthalpyIterSolvTol = 1e-12;
double enthalpyRes = 1e-6;

View File

@ -1,30 +0,0 @@
#########################################################################
# Grid data type #
#########################################################################
// gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid.
// 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion.
// 1 -- Y upward. (default)
// 2 -- Z upward.
// 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.
int gridtype = 0;
int axisup = 1;
int from_gtype = 5;
#########################################################################
# 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/back.cas";
string out_gfile = "./grid/back.fts";

View File

@ -1,52 +0,0 @@
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 = 2;
int nparafile = 1;
int nsimutask = 0;
string parafilename = "./bin/cfd_para_incompressible.hypara"
//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";
//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 = 1;
//string parafilename = "./bin/grid_refine_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

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

View File

@ -1,73 +0,0 @@
# nBoundaryConditions: Number of global boundary conditions.
# bcName : Boundary condition name.
# bcType(in PHengLEI): Boundary condition type.
# How to set boundary condition, for example:
# string bcName = "Wall";
# {
# int bcType = 2;
# int viscousType = 1;
# double wallTemperature = -1.0;
# double uWall = 0.0;
# double vWall = 0.0;
# double wWall = 0.0;
# }
# string bcName = "Inflow";
# {
# int bcType = 5;
# int inflowParaType = 0;
# double refMachNumber = 0.73;
# double attackd = 2.79;
# double angleSlide = 0.0;
# double refReNumber = 6.5e6;
# double refDimensionalTemperature = 288.15;
# }
# For more information, see examples/bin/boundary_condition.hypara file!!!
int nBoundaryConditions = 4;
string bcName = "bottomwall";
{
string bodyName = "body";
int bcType = 2;
string flowType = "FLOW_SOLID_SURFACE";
string energyBoundaryType = "ENERGY_WALL";
}
string bcName = "coldwall";
{
string bodyName = "body";
int bcType = 2;
string flowType = "FLOW_SOLID_SURFACE";
string energyBoundaryType = "ENERGY_WALL";
double T = 290.0;
}
string bcName = "hotwall";
{
string bodyName = "body";
int bcType = 2;
string flowType = "FLOW_SOLID_SURFACE";
string energyBoundaryType = "ENERGY_WALL";
double T = 305.0;
}
string bcName = "topwall";
{
string bodyName = "body";
int bcType = 2;
string flowType = "FLOW_SOLID_SURFACE";
string energyBoundaryType = "ENERGY_WALL";
}
# 'bcType' is defined as following:
# -2: WAKE
# -1: INTERFACE
# 0 : NO_BOUNDARY_CONDITION
# 1 : EXTRAPOLATION
# 2 : SOLID_SURFACE
# 3 : SYMMETRY
# 4 : FARFIELD
# 5 : INFLOW
# 6 : OUTFLOW
# 52: PRESSURE_INLET
# 62: PRESSURE_OUTLET
# 61: OUTFLOW_CONFINED
# 7 : POLE

View File

@ -1,214 +0,0 @@
#########################################################################
# General Control Parameter #
#########################################################################
// nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance.
// 1 -- Not compute.
// gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory.
// 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.
// intervalStepRes: The step intervals for residual 'res.dat' saved.
// 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.
// compressible: An indicator that distinguishes density base from pressure base. 0-incompressible, 1-compressible
// isUnsteady: An indicator that distinguishes unsteady problem from steady problem. 0-steady, 1-unsteady
// startTime: The initial time of the unsteady simulation.
// endTime: The end time of the unsteady simulation.
// dt: The time interval of the unsteady simulation.
// innerIter: The number of step for current time.
// OutputTimeStep: The interval step of output for unsteady simulation.
int nIsComputeWallDist = 1;
string gridfile = "./grid/run.fts";
int maxSimuStep = 10000;
int intervalStepFlow = 2000;
int intervalStepPlot = 1000;
int intervalStepRes = 10;
double gridScaleFactor = 1.0;
int compressible = 0;
int iunsteady = 0;
double startTime = 0.0;
double endTime = 20.0;
double dt = 0.1;
int innerIter = 10;
int OutputTimeStep = 5;
#########################################################################
# Post-Processing #
#########################################################################
// nVisualVariables: Number of variables want to be dumped for tecplot visualization.
// visualVariables : Variable types dumped, listed as following:
// -- U(22), V(23), W(24), P(25), CP(26), T(27), DEN(28), VIS(29), TE(31), ED(32), enthalpy(70)
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big.
int nVisualVariables = 6;
int visualVariables[] = [22, 23, 24, 25, 27, 70];
#########################################################################
# Flow Parameter #
#########################################################################
string FLOW[] = "FLOW";
// Initial value of variables or constant
double initRho = 1.1405;
double initMu = 1.7894e-5;
double initU = 0;
double initV = 0;
double initW = 0;
double initP = 0;
// Relaxing factor
double urfU = 0.7;
double urfV = 0.7;
double urfW = 0.7;
double urfP = 0.3;
double urfFlux = 0.0;
// Tolerance for governing equations
double resU = 1e-6;
double resV = 1e-6;
double resW = 1e-5;
double resP = 1e-5;
// Solver for solving linear system
// : CGS/GMRES/BiCGSTAB/AMG
string iterSolvU = "BiCGSTAB";
string iterSolvV = "BiCGSTAB";
string iterSolvW = "BiCGSTAB";
string iterSolvP = "GMRES";
// Max Iter for solving linear system
int maxSweepU = 30;
int maxSweepV = 30;
int maxSweepW = 30;
int maxSweepP = 30;
// Tolerance for solving linear system
double iterSolvTolU = 1e-3;
double iterSolvTolV = 1e-3;
double iterSolvTolW = 1e-3;
double iterSolvTolP = 1e-2;
// Gradient Calculation
// : GAUSS/LSQ
string UGradCalc = "GAUSS";
string VGradCalc = "GAUSS";
string WGradCalc = "GAUSS";
string PGradCalc = "GAUSS";
// Convection scheme
// : UPWIND/CDS/QUICK/SUDS
string flowConvCalc = "UPWIND";
// Diffusion scheme(central difference)
// : NON_ORTHOGONAL
string flowDiffCalc = "NON_ORTHOGONAL";
// Transient scheme
// : CRANK_NICOLSON/IMPLICIT_2ND_ORDER/IMPLICIT_EULER
string flowTranCalc = "IMPLICIT_EULER";
// Source for flow
// : FLOW_DEFAULT/FLOW_GRAVITY
//string flowSourceCalc[] = "FLOW_DEFAULT";
string flowSourceCalc[] = "FLOW_DEFAULT FLOW_GRAVITY";
int bodyForceFlag = 1;
double gravityX = 0.0;
double gravityY = -9.81;
double gravityZ = 0.0;
int isBoussinesq = 1;
double thermalExpansion = 3.44827e-3;
double refT = 290;
#########################################################################
# Turbulence Parameter #
#########################################################################
//int viscousType = 13; //SPALART_ALLMARAS = 11, KEPSILON = 13
//turb SA
string TURB_SA[] = ["TURB_SA"];
string TURB_SA_SCALAR_NAME[] = ["kinetic"];
double urfMu = 1.0;
double kineticInitValue = 1.0;
string kineticConvCalc = "UPWIND";
string kineticDiffCalc = "NON_ORTHOGONAL";
string kineticSourceCalc[] = "TURB_SA_DEFAULT";
double kineticUrf = 1.0;
double kineticRes = 1e-6;
string turbIterSolv = "BiCGSTAB";
int turbMaxSweep = 30;
double turbIterSolvTol = 1e-12;
//turb KEPSILON
string TURB_K_EPSILON[] = ["TURB_K","TURB_EPSILON"];
string TURB_K_EPSILON_SCALAR_NAME[] = ["kinetic", "epsilon"];
string TURB_K[] = ["TURB_K"];
string TURB_K_SCALAR_NAME[] = ["kinetic"];
string TURB_EPSILON[] = ["TURB_EPSILON"];
string TURB_EPSILON_SCALAR_NAME[] = ["epsilon"];
double urfMu = 1.0;
// turb k
double kineticInitValue = 1.0;
string kineticConvCalc = "UPWIND";
string kineticDiffCalc = "NON_ORTHOGONAL";
string kineticSourceCalc[] = "TURB_K_DEFAULT";
double kineticUrf = 1.0;
double kineticRes = 1e-6;
// turb epsilon
double epsilonInitValue = 1.0;
string epsilonConvCalc = "UPWIND";
string epsilonDiffCalc = "NON_ORTHOGONAL";
string epsilonSourceCalc[] = "TURB_EPSILON_DEFAULT";
double epsilonUrf = 1.0;
double epsilonRes = 1e-6;
#########################################################################
# Energy Parameter #
#########################################################################
// energyType: The energy solver switch. 0-off, 1-on
// ENERGY[]: Solver binding for factory mode.
// ENERGY_SCALAR_NAME[]: The name of variable to be solved in energy equation.
// energyPrintName[]: The output on the screen during the solution.
int energyType = 1;
string ENERGY[] = ["ENERGY"];
string ENERGY_SCALAR_NAME[] = "enthalpy";
string energyPrintName[] = ["H"];
// Initial value of variables or constant
double initT = 295;
double initK = 0.0242;
double initCPg = 1006.43;
double urfT = 0.2;
double urfH = 0.2;
double enthalpyInitValue = 0.21;
// Discrete schemes
string energyConvCalc = "UPWIND";
string energyDiffCalc = "NON_ORTHOGONAL";
string energySourceCalc[] = ["EMPTY"];
string energyGradCalc = "GAUSS";
string energyTranCalc = "IMPLICIT_EULER";
// Set for solving linear equations
string enthalpyIterSolv = "BiCGSTAB";
int enthalpyMaxSweep = 30;
double enthalpyIterSolvTol = 1e-12;
double enthalpyRes = 1e-6;

View File

@ -1,30 +0,0 @@
#########################################################################
# Grid data type #
#########################################################################
// gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid.
// 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion.
// 1 -- Y upward. (default)
// 2 -- Z upward.
// 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.
int gridtype = 0;
int axisup = 1;
int from_gtype = 5;
#########################################################################
# 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/run.cas";
string out_gfile = "./grid/run.fts";

View File

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

View File

@ -1,68 +0,0 @@
# nBoundaryConditions: Number of global boundary conditions.
# bcName : Boundary condition name.
# bcType(in PHengLEI): Boundary condition type.
# How to set boundary condition, for example:
# string bcName = "Wall";
# {
# int bcType = 2;
# int viscousType = 1;
# double wallTemperature = -1.0;
# double uWall = 0.0;
# double vWall = 0.0;
# double wWall = 0.0;
# }
# string bcName = "Inflow";
# {
# int bcType = 5;
# int inflowParaType = 0;
# double refMachNumber = 0.73;
# double attackd = 2.79;
# double angleSlide = 0.0;
# double refReNumber = 6.5e6;
# double refDimensionalTemperature = 288.15;
# }
# For more information, see examples/bin/boundary_condition.hypara file!!!
int nBoundaryConditions = 4;
string bcName = "bottom";
{
string bodyName = "body";
int bcType = 2;
string flowType = "FLOW_SOLID_SURFACE";
}
string bcName = "left";
{
string bodyName = "body";
int bcType = 2;
string flowType = "FLOW_SOLID_SURFACE";
}
string bcName = "right";
{
string bodyName = "body";
int bcType = 2;
string flowType = "FLOW_SOLID_SURFACE";
}
string bcName = "top";
{
string bodyName = "body";
int bcType = 2;
string flowType = "FLOW_SOLID_SURFACE";
double flowU = 1.0;
}
# 'bcType' is defined as following:
# -2: WAKE
# -1: INTERFACE
# 0 : NO_BOUNDARY_CONDITION
# 1 : EXTRAPOLATION
# 2 : SOLID_SURFACE
# 3 : SYMMETRY
# 4 : FARFIELD
# 5 : INFLOW
# 6 : OUTFLOW
# 52: PRESSURE_INLET
# 62: PRESSURE_OUTLET
# 61: OUTFLOW_CONFINED
# 7 : POLE

View File

@ -1,197 +0,0 @@
#########################################################################
# General Control Parameter #
#########################################################################
// nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance.
// 1 -- Not compute.
// gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory.
// 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.
// intervalStepRes: The step intervals for residual 'res.dat' saved.
// 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.
// compressible: An indicator that distinguishes density base from pressure base. 0-incompressible, 1-compressible
// isUnsteady: An indicator that distinguishes unsteady problem from steady problem. 0-steady, 1-unsteady
// startTime: The initial time of the unsteady simulation.
// endTime: The end time of the unsteady simulation.
// dt: The time interval of the unsteady simulation.
// innerIter: The number of step for current time.
// OutputTimeStep: The interval step of output for unsteady simulation.
int nIsComputeWallDist = 1;
string gridfile = "./grid/cavity.fts";
int maxSimuStep = 10000;
int intervalStepFlow = 2000;
int intervalStepPlot = 2000;
int intervalStepRes = 10;
double gridScaleFactor = 1.0;
int compressible = 0;
int iunsteady = 0;
double startTime = 0.0;
double endTime = 30;
double dt = 0.1;
int innerIter = 10;
int OutputTimeStep = 5;
#########################################################################
# Post-Processing #
#########################################################################
// nVisualVariables: Number of variables want to be dumped for tecplot visualization.
// visualVariables : Variable types dumped, listed as following:
// -- U(22), V(23), W(24), P(25), CP(26), T(27), DEN(28), VIS(29), TE(31), ED(32), enthalpy(70)
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big.
int nVisualVariables = 4;
int visualVariables[] = [22, 23, 24, 25];
#########################################################################
# Flow Parameter #
#########################################################################
string FLOW[] = "FLOW";
// Initial value of variables or constant
double initRho = 1.0;
double initMu = 0.001;
double initU = 0;
double initV = 0;
double initW = 0;
double initP = 0;
// Relaxing factor
double urfU = 0.4;
double urfV = 0.4;
double urfW = 0.4;
double urfP = 0.7;
double urfFlux = 0.4;
// Tolerance for governing equations
double resU = 1e-6;
double resV = 1e-6;
double resW = 1e-5;
double resP = 1e-5;
// Solver for solving linear system
// : CGS/GMRES/BiCGSTAB/AMG
string iterSolvU = "BiCGSTAB";
string iterSolvV = "BiCGSTAB";
string iterSolvW = "BiCGSTAB";
string iterSolvP = "GMRES";
// Max Iter for solving linear system
int maxSweepU = 30;
int maxSweepV = 30;
int maxSweepW = 30;
int maxSweepP = 30;
// Tolerance for solving linear system
double iterSolvTolU = 1e-3;
double iterSolvTolV = 1e-3;
double iterSolvTolW = 1e-3;
double iterSolvTolP = 1e-2;
// Gradient Calculation
// : GAUSS/LSQ
string UGradCalc = "GAUSS";
string VGradCalc = "GAUSS";
string WGradCalc = "GAUSS";
string PGradCalc = "GAUSS";
// Convection scheme
// : UPWIND/CDS/QUICK/SUDS
string flowConvCalc = "UPWIND";
// Diffusion scheme(central difference)
// : NON_ORTHOGONAL
string flowDiffCalc = "NON_ORTHOGONAL";
// Transient scheme
// : CRANK_NICOLSON/IMPLICIT_2ND_ORDER/IMPLICIT_EULER
string flowTranCalc = "IMPLICIT_EULER";
// Source for flow
// : FLOW_DEFAULT/FLOW_GRAVITY
string flowSourceCalc[] = "FLOW_DEFAULT";
// string flowSourceCalc[] = "FLOW_DEFAULT FLOW_GRAVITY";
int bodyForceFlag = 0;
int isBoussinesq = 0;
//double gravityX = 0.0;
//double gravityY = -9.81;
//double gravityZ = 0.0;
#########################################################################
# Turbulence Parameter #
#########################################################################
// turb K-EPSILON
//int viscousType = 13; //SPALART_ALLMARAS = 11, KEPSILON = 13
string TURB_K_EPSILON[] = ["TURB_K","TURB_EPSILON"];
string TURB_K_EPSILON_SCALAR_NAME[] = ["kinetic", "epsilon"];
string turbIterSolv = "BiCGSTAB";
int turbMaxSweep = 30;
double turbIterSolvTol = 1e-12;
string TURB_K[] = ["TURB_K"];
string TURB_K_SCALAR_NAME[] = ["kinetic"];
string TURB_EPSILON[] = ["TURB_EPSILON"];
string TURB_EPSILON_SCALAR_NAME[] = ["epsilon"];
double urfMu = 1.0;
// turb k
double kineticInitValue = 1.0;
string kineticConvCalc = "UPWIND";
string kineticDiffCalc = "NON_ORTHOGONAL";
string kineticSourceCalc[] = "TURB_K_DEFAULT";
double kineticUrf = 1.0;
double kineticRes = 1e-6;
// turb epsilon
double epsilonInitValue = 1.0;
string epsilonConvCalc = "UPWIND";
string epsilonDiffCalc = "NON_ORTHOGONAL";
string epsilonSourceCalc[] = "TURB_EPSILON_DEFAULT";
double epsilonUrf = 1.0;
double epsilonRes = 1e-6;
#########################################################################
# Energy Parameter #
#########################################################################
// energyType: The energy solver switch. 0-off, 1-on
// ENERGY[]: Solver binding for factory mode.
// ENERGY_SCALAR_NAME[]: The name of variable to be solved in energy equation.
// energyPrintName[]: The output on the screen during the solution.
int energyType = 0;
string ENERGY[] = ["ENERGY"];
string ENERGY_SCALAR_NAME[] = "enthalpy";
string energyPrintName[] = ["H"];
// Initial value of variables or constant
double initT = 273.0;
double initK = 0.026;
double initCPg = 1007.0;
double urfT = 0.8;
double urfH = 0.7;
double enthalpyInitValue = 0.21;
// Discrete schemes
string energyConvCalc = "UPWIND";
string energyDiffCalc = "NON_ORTHOGONAL";
string energySourceCalc[] = ["EMPTY"];
string energyGradCalc = "GAUSS";
string energyTranCalc = "IMPLICIT_EULER";
// Set for solving linear equations
string enthalpyIterSolv = "BiCGSTAB";
int enthalpyMaxSweep = 30;
double enthalpyIterSolvTol = 1e-12;
double enthalpyRes = 1e-6;

View File

@ -1,30 +0,0 @@
#########################################################################
# Grid data type #
#########################################################################
// gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid.
// 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion.
// 1 -- Y upward. (default)
// 2 -- Z upward.
// 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.
int gridtype = 0;
int axisup = 1;
int from_gtype = 5;
#########################################################################
# 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/cavity.cas";
string out_gfile = "./grid/cavity.fts";

View File

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

View File

@ -1,71 +0,0 @@
# nBoundaryConditions: Number of global boundary conditions.
# bcName : Boundary condition name.
# bcType(in PHengLEI): Boundary condition type.
# How to set boundary condition, for example:
# string bcName = "Wall";
# {
# int bcType = 2;
# int viscousType = 1;
# double wallTemperature = -1.0;
# double uWall = 0.0;
# double vWall = 0.0;
# double wWall = 0.0;
# }
# string bcName = "Inflow";
# {
# int bcType = 5;
# int inflowParaType = 0;
# double refMachNumber = 0.73;
# double attackd = 2.79;
# double angleSlide = 0.0;
# double refReNumber = 6.5e6;
# double refDimensionalTemperature = 288.15;
# }
# For more information, see examples/bin/boundary_condition.hypara file!!!
int nBoundaryConditions = 3;
string bcName = "in";
{
int bcType = 5;
string flowType = "FLOW_VELOCITY_INLET";
string kineticBoundaryType = "TURB_K_INLET";
string epsilonBoundaryType = "TURB_EPSILON_INLET";
double flowW = 50;
double kinetic = 9.375004;
double epsilon = 54151.86;
}
string bcName = "out";
{
int bcType = 6;
string flowType = "FLOW_PRESSURE_OUTLET";
string kineticBoundaryType = "TURB_K_PRESSUREOUTLET";
string epsilonBoundaryType = "TURB_EPSILON_PRESSUREOUTLET";
double flowP = 0;
double kinetic = 9.375004;
double epsilon = 54151.86;
}
string bcName = "wall";
{
string bodyName = "body";
int bcType = 2;
string flowType = "FLOW_SOLID_SURFACE";
string kineticBoundaryType = "TURB_K_WALL";
string epsilonBoundaryType = "TURB_EPSILON_WALL";
}
# 'bcType' is defined as following:
# -2: WAKE
# -1: INTERFACE
# 0 : NO_BOUNDARY_CONDITION
# 1 : EXTRAPOLATION
# 2 : SOLID_SURFACE
# 3 : SYMMETRY
# 4 : FARFIELD
# 5 : INFLOW
# 6 : OUTFLOW
# 52: PRESSURE_INLET
# 62: PRESSURE_OUTLET
# 61: OUTFLOW_CONFINED
# 7 : POLE

View File

@ -1,202 +0,0 @@
#########################################################################
# General Control Parameter #
#########################################################################
// nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance.
// 1 -- Not compute.
// gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory.
// 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.
// intervalStepRes: The step intervals for residual 'res.dat' saved.
// 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.
// compressible: An indicator that distinguishes density base from pressure base. 0-incompressible, 1-compressible
// isUnsteady: An indicator that distinguishes unsteady problem from steady problem. 0-steady, 1-unsteady
// startTime: The initial time of the unsteady simulation.
// endTime: The end time of the unsteady simulation.
// dt: The time interval of the unsteady simulation.
// innerIter: The number of step for current time.
// OutputTimeStep: The interval step of output for unsteady simulation.
int nIsComputeWallDist = 1;
string gridfile = "./grid/pipe.fts";
int maxSimuStep = 10000;
int intervalStepFlow = 1000;
int intervalStepPlot = 1000;
int intervalStepRes = 1000;
double gridScaleFactor = 1;
int compressible = 0;
int iunsteady = 0;
double startTime = 0.0;
double endTime = 5;
double dt = 0.1;
int innerIter = 10;
int OutputTimeStep = 5;
#########################################################################
# Post-Processing #
#########################################################################
// nVisualVariables: Number of variables want to be dumped for tecplot visualization.
// visualVariables : Variable types dumped, listed as following:
// -- U(22), V(23), W(24), P(25), CP(26), T(27), DEN(28), VIS(29), TE(31), ED(32), enthalpy(57)
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big.
// plotFieldType: If dump out the field results to visulization.
int plotFieldType = 1;
//int nVisualVariables = 4;
//int visualVariables[] = [22, 23, 24, 25];
int nVisualVariables = 7;
int visualVariables[] = [22, 23, 24, 25, 29,31,32];
#########################################################################
# Flow Parameter #
#########################################################################
string FLOW[] = "FLOW";
// Initial value of variables or constant
double initRho = 1.225;
double initMu = 1.7894e-05;
double initU = 0;
double initV = 0;
double initW = 50;
double initP = 0;
// Relaxing factor
double urfU = 0.4;
double urfV = 0.4;
double urfW = 0.4;
double urfP = 0.3;
double urfFlux = 0.4;
// Tolerance for governing equations
double resU = 1e-6;
double resV = 1e-6;
double resW = 1e-5;
double resP = 1e-5;
// Solver for solving linear system
// : CGS/GMRES/BiCGSTAB/AMG
string iterSolvU = "BiCGSTAB";
string iterSolvV = "BiCGSTAB";
string iterSolvW = "BiCGSTAB";
string iterSolvP = "AMG";
// Max Iter for solving linear system
int maxSweepU = 30;
int maxSweepV = 30;
int maxSweepW = 30;
int maxSweepP = 30;
// Tolerance for solving linear system
double iterSolvTolU = 1e-4;
double iterSolvTolV = 1e-4;
double iterSolvTolW = 1e-4;
double iterSolvTolP = 1e-3;
// Gradient Calculation
// : GAUSS/LSQ
string UGradCalc = "GAUSS";
string VGradCalc = "GAUSS";
string WGradCalc = "GAUSS";
string PGradCalc = "GAUSS";
// Convection scheme
// : UPWIND/CDS/QUICK/SUDS
string flowConvCalc = "UPWIND";
// Diffusion scheme(central difference)
// : NON_ORTHOGONAL
string flowDiffCalc = "NON_ORTHOGONAL";
// Transient scheme
// : CRANK_NICOLSON/IMPLICIT_2ND_ORDER/IMPLICIT_EULER
string flowTranCalc = "IMPLICIT_EULER";
// Source for flow
// : FLOW_DEFAULT/FLOW_GRAVITY
string flowSourceCalc[] = "FLOW_DEFAULT";
//string flowSourceCalc[] = "FLOW_DEFAULT FLOW_GRAVITY";
int bodyForceFlag = 0;
double gravityX = 0.0;
double gravityY = -9.81;
double gravityZ = 0.0;
#########################################################################
# Turbulence Parameter #
#########################################################################
int viscousType = 13; //SPALART_ALLMARAS = 11, KEPSILON = 13
//turb K-EPSILON
string TURB_K_EPSILON[] = ["TURB_K","TURB_EPSILON"];
string TURB_K_EPSILON_SCALAR_NAME[] = ["kinetic", "epsilon"];
string TURB_K[] = ["TURB_K"];
string TURB_K_SCALAR_NAME[] = ["kinetic"];
string TURB_EPSILON[] = ["TURB_EPSILON"];
string TURB_EPSILON_SCALAR_NAME[] = ["epsilon"];
double urfMu = 0.6;
string turbIterSolv = "BiCGSTAB";
int turbMaxSweep = 30;
double turbIterSolvTol = 1e-12;
// turb k
double kineticInitValue = 9.375001;
string kineticConvCalc = "UPWIND";
string kineticDiffCalc = "NON_ORTHOGONAL";
string kineticSourceCalc[] = "TURB_K_DEFAULT";
double kineticUrf = 0.6;
double kineticRes = 1e-6;
// turb epsilon
double epsilonInitValue = 54151.86;
string epsilonConvCalc = "UPWIND";
string epsilonDiffCalc = "NON_ORTHOGONAL";
string epsilonSourceCalc[] = "TURB_EPSILON_DEFAULT";
double epsilonUrf = 0.6;
double epsilonRes = 1e-6;
#########################################################################
# Energy Parameter #
#########################################################################
// energyType: The energy solver switch. 0-off, 1-on
// ENERGY[]: Solver binding for factory mode.
// ENERGY_SCALAR_NAME[]: The name of variable to be solved in energy equation.
// energyPrintName[]: The output on the screen during the solution.
int energyType = 0;
string ENERGY[] = ["ENERGY"];
string ENERGY_SCALAR_NAME[] = "enthalpy";
string energyPrintName[] = ["H"];
// Initial value of variables or constant
double initT = 273.0;
double initK = 0.026;
double initCPg = 1007.0;
double urfT = 0.8;
double urfH = 0.7;
double enthalpyInitValue = 0.21;
// Discrete schemes
string energyConvCalc = "UPWIND";
string energyDiffCalc = "NON_ORTHOGONAL";
string energySourceCalc[] = ["EMPTY"];
string energyGradCalc = "GAUSS";
string energyTranCalc = "IMPLICIT_EULER";
// Set for solving linear equations
string enthalpyIterSolv = "BiCGSTAB";
int enthalpyMaxSweep = 30;
double enthalpyIterSolvTol = 1e-12;
double enthalpyRes = 1e-6;

View File

@ -1,30 +0,0 @@
#########################################################################
# Grid data type #
#########################################################################
// gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid.
// 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion.
// 1 -- Y upward. (default)
// 2 -- Z upward.
// 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.
int gridtype = 0;
int axisup = 1;
int from_gtype = 5;
#########################################################################
# 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/pipe.cas";
string out_gfile = "./grid/pipe.fts";

View File

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

View File

@ -1,63 +0,0 @@
# nBoundaryConditons : number of global boundary conditions.
# bcName : Boundary Condition Name.
# bcType(in PHengLEI): Boundary Condition Type.
# Account of how to set boundaryconditon.
# string bcName = "Farfield";
# {
# int bcType = 4;
# int inflowParaType = 1;
# double attackd = 0;
# double refReNumber = 6.5e6;
# double refMachNumber = 3.5;
# double angleSlide = 0;
# }
int nBoundaryConditions = 5;
string bcName = "sym";
{
string bodyName = "body";
int bcType = 2;
string flowType = "FLOW_SOLID_SURFACE";
}
string bcName = "symf";
{
string bodyName = "body";
int bcType = 2;
string flowType = "FLOW_SOLID_SURFACE";
}
string bcName = "wall";
{
string bodyName = "body";
int bcType = 2;
string flowType = "FLOW_SOLID_SURFACE";
}
string bcName = "in";
{
int bcType = 5;
string flowType = "FLOW_VELOCITY_INLET";
double flowU =0.1;
}
string bcName = "out";
{
int bcType = 6;
string flowType = "FLOW_PRESSURE_OUTLET";
double flowU =0.1;
double flowP =0;
}
# 'bcType' is defined as following:
# 99: PERIODIC
# -2: WAKE
# -1: INTERFACE
# 0 : NO_BOUNDARY_CONDITION
# 1 : EXTRAPOLATION
# 2 : SOLID_SURFACE
# 3 : SYMMETRY
# 4 : FARFIELD
# 5 : INFLOW
# 6 : OUTFLOW
# 52: PRESSURE_INLET
# 62: PRESSURE_OUTLET
# 61: OUTFLOW_CONFINED
# 7 : POLE

View File

@ -1,212 +0,0 @@
#########################################################################
# General Control Parameter #
#########################################################################
// nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance.
// 1 -- Not compute.
// gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory.
// 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.
// intervalStepRes: The step intervals for residual 'res.dat' saved.
// 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.
// compressible: An indicator that distinguishes density base from pressure base. 0-incompressible, 1-compressible
// isUnsteady: An indicator that distinguishes unsteady problem from steady problem. 0-steady, 1-unsteady
// startTime: The initial time of the unsteady simulation.
// endTime: The end time of the unsteady simulation.
// dt: The time interval of the unsteady simulation.
// innerIter: The number of step for current time.
// OutputTimeStep: The interval step of output for unsteady simulation.
int nIsComputeWallDist = 1;
string gridfile = "./grid/suboff.fts";
iint maxSimuStep = 10000;
int intervalStepFlow = 2000;
int intervalStepPlot = 2000;
int intervalStepRes = 2000;
double gridScaleFactor = 1.0;
int compressible = 0;
int iunsteady = 0;
double startTime = 0.0;
double endTime = 5;
double dt = 0.1;
int innerIter = 10;
int OutputTimeStep = 5;
#########################################################################
# Post-Processing #
#########################################################################
// nVisualVariables: Number of variables want to be dumped for tecplot visualization.
// visualVariables : Variable types dumped, listed as following:
// -- U(22), V(23), W(24), P(25), CP(26), T(27), DEN(28), VIS(29), TE(31), ED(32), enthalpy(57)
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big.
// plotFieldType: If dump out the field results to visulization.
int plotFieldType = 1;
int nVisualVariables = 4;
int visualVariables[] = [22, 23, 24, 25];
#########################################################################
# Flow Parameter #
#########################################################################
string FLOW[] = "FLOW";
// Initial value of variables or constant
double initRho = 998.3;
double initMu = 1.93345725;
double initU = 0.1;
double initV = 0;
double initW = 0;
double initP = 0;
// Relaxing factor
double urfU = 0.4;
double urfV = 0.4;
double urfW = 0.4;
double urfP = 0.3;
double urfFlux = 0.4;
// Tolerance for governing equations
double resU = 1e-6;
double resV = 1e-6;
double resW = 1e-5;
double resP = 1e-5;
// Solver for solving linear system
// : CGS/GMRES/BiCGSTAB/AMG
string iterSolvU = "BiCGSTAB";
string iterSolvV = "BiCGSTAB";
string iterSolvW = "BiCGSTAB";
string iterSolvP = "GMRES";
// Max Iter for solving linear system
int maxSweepU = 30;
int maxSweepV = 30;
int maxSweepW = 30;
int maxSweepP = 30;
// Tolerance for solving linear system
double iterSolvTolU = 1e-4;
double iterSolvTolV = 1e-4;
double iterSolvTolW = 1e-4;
double iterSolvTolP = 1e-3;
// Gradient Calculation
// : GAUSS/LSQ
string UGradCalc = "GAUSS";
string VGradCalc = "GAUSS";
string WGradCalc = "GAUSS";
string PGradCalc = "GAUSS";
// Convection scheme
// : UPWIND/CDS/QUICK/SUDS
string flowConvCalc = "QUICK";
// Diffusion scheme(central difference)
// : NON_ORTHOGONAL
string flowDiffCalc = "NON_ORTHOGONAL";
// Transient scheme
// : CRANK_NICOLSON/IMPLICIT_2ND_ORDER/IMPLICIT_EULER
string flowTranCalc = "IMPLICIT_EULER";
// Source for flow
// : FLOW_DEFAULT/FLOW_GRAVITY
string flowSourceCalc[] = "FLOW_DEFAULT";
//string flowSourceCalc[] = "FLOW_DEFAULT FLOW_GRAVITY";
int bodyForceFlag = 0;
//double gravityX = 0.0;
//double gravityY = -9.81;
//double gravityZ = 0.0;
#########################################################################
# Turbulence Parameter #
#########################################################################
//int viscousType = 13; //SPALART_ALLMARAS = 11, KEPSILON = 13
//turb SA
//string TURB_SA[] = ["TURB_SA"];
//string TURB_SA_SCALAR_NAME[] = ["kinetic"];
//double urfMu = 1.0;
//double kineticInitValue = 1.0;
//string kineticConvCalc = "UPWIND";
//string kineticDiffCalc = "NON_ORTHOGONAL";
//string kineticSourceCalc[] = "TURB_SA_DEFAULT";
//double kineticUrf = 1.0
//double kineticRes = 1e-6;
//string turbIterSolv = "BiCGSTAB";
//int turbMaxSweep = 30;
//double turbIterSolvTol = 1e-12;
//turb K-EPSILON
string TURB_K_EPSILON[] = ["TURB_K","TURB_EPSILON"];
string TURB_K_EPSILON_SCALAR_NAME[] = ["kinetic", "epsilon"];
string TURB_K[] = ["TURB_K"];
string TURB_K_SCALAR_NAME[] = ["kinetic"];
string TURB_EPSILON[] = ["TURB_EPSILON"];
string TURB_EPSILON_SCALAR_NAME[] = ["epsilon"];
double urfMu = 0.4;
// turb k
double kineticInitValue = 3.750003e-05;
string kineticConvCalc = "UPWIND";
string kineticDiffCalc = "NON_ORTHOGONAL";
string kineticSourceCalc[] = "TURB_K_DEFAULT";
double kineticUrf = 0.4;
double kineticRes = 1e-6;
// turb epsilon
double epsilonInitValue = 8.664311e-07;
string epsilonConvCalc = "UPWIND";
string epsilonDiffCalc = "NON_ORTHOGONAL";
string epsilonSourceCalc[] = "TURB_EPSILON_DEFAULT";
double epsilonUrf = 0.4;
double epsilonRes = 1e-6;
#########################################################################
# Energy Parameter #
#########################################################################
// energyType: The energy solver switch. 0-off, 1-on
// ENERGY[]: Solver binding for factory mode.
// ENERGY_SCALAR_NAME[]: The name of variable to be solved in energy equation.
// energyPrintName[]: The output on the screen during the solution.
int energyType = 0;
string ENERGY[] = ["ENERGY"];
string ENERGY_SCALAR_NAME[] = "enthalpy";
string energyPrintName[] = ["H"];
// Initial value of variables or constant
double initT = 273.0;
double initK = 0.026;
double initCPg = 1007.0;
double urfT = 0.8;
double urfH = 0.7;
double enthalpyInitValue = 0.21;
// Discrete schemes
string energyConvCalc = "UPWIND";
string energyDiffCalc = "NON_ORTHOGONAL";
string energySourceCalc[] = ["EMPTY"];
string energyGradCalc = "GAUSS";
string energyTranCalc = "IMPLICIT_EULER";
// Set for solving linear equations
string enthalpyIterSolv = "BiCGSTAB";
int enthalpyMaxSweep = 30;
double enthalpyIterSolvTol = 1e-12;
double enthalpyRes = 1e-6;

View File

@ -1,30 +0,0 @@
#########################################################################
# Grid data type #
#########################################################################
// gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid.
// 1 -- Structured grid.
// axisup: Type of Cartisien coordinates system, used in grid conversion.
// 1 -- Y upward. (default)
// 2 -- Z upward.
// 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.
int gridtype = 0;
int axisup = 1;
int from_gtype = 5;
#########################################################################
# 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/suboff.cas";
string out_gfile = "./grid/suboff.fts";

View File

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

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
###########################################################################
# Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0;
int iadapt = 0;
int SymmetryFaceVector = 1;
int gridReorder = 0;
int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion.
// 1 -- Y upward. (default)
// 2 -- Z upward.
int axisup = 1;
// 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.
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".
// 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//-----------------------------------------------------------------------
# Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction.
// rotationAngle: The relative angle between two periodic face.
which is recorded in degrees.
int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid.
// 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.
int pgridtype = 0;
int maxproc = 4;
int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy:
//! -# 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.
// 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.
int parallelStrategy = 1;
//-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance.
// maxproc -- perfect imbalance.
// 1.05 -- recommended.
int omit_no_bound_bc = 0;
int npartmethod = 1;
int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.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 intervalStepFlow = 1000;
int intervalStepPlot = 1000;
int intervalStepSample = 1000;
int intervalStepForce = 100;
int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible:
// 0 -- incompressible flow.
// 1 -- compressible flow. (default)
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 #
//-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions.
// 1 -- the flight 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.
// 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.
// refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// 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.
// 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.
int directionMethod = 0;
double refMachNumber = 0.73;
double attackd = 2.79;
double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0;
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 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.
//int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6;
//double refDimensionalTemperature = 293;
//double refDimensionalTemperature = 293.0;
//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 radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol.
//-----------------------------------------------------------------------
# Spatial Discretisation #
//-----------------------------------------------------------------------
#*******************************************************************
#************************************************************************
# Struct Solver *
#*******************************************************************
#************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f".
// -- "roe", "modified_roe".
// -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default)
// 1 -- Yes.
// str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth".
// -- "nolim", no limiter.
// -- "vanalbada_clz", clz supersonic version.
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3"
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe";
int isWennScheme = 0;
string str_limiter_name = "vanalbada";
#*******************************************************************
#************************************************************************
# UnStruct Solver or Common *
#*******************************************************************
#************************************************************************
// viscousType: Viscous model.
// 0 -- Euler.
// 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// 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+".
// uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod".
// -- "vanalbada", "smooth", "nnd", "lpz", "1st".
// -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// 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;
//string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0;
//-----------------------------------------------------------------------
# Temporal Discretisation #
//-----------------------------------------------------------------------
#************************************************************************
# Temporal Discretisation *
#************************************************************************
// iunsteady: Steady or unsteady.
// 0 -- steady.
// 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration.
// 7 -- Line 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.
// 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.
// CFLEnd: End cfl number.
// 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])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0;
double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000;
double statisticalTimePeriod = -1.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 min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01;
double CFLEnd = 10.0;
int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2;
double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01;
double turbCFLScale = 1.0;
double csrv = 2.0;
double csrv = 1.0;
double timemax = 1.0e10;
double dtsave = -1.0;
int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
//-----------------------------------------------------------------------
# File In or Out #
//-----------------------------------------------------------------------
#************************************************************************
# File In or Out *
#************************************************************************
// numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance.
// 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.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;
string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile.
// 0 -- Tecplot binary.
// 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1;
// 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),
// -- 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),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81)
// -- specific heat ratio(gama, 56)
// -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- 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!!!
// Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall.
// 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),
// -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),
// -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)
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23)
// -- 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),
// -- 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),
// -- 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), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8;
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.
// nProbeVariables: Number of variables want to be dumped for probes monitered.
// 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!!!
// probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0;
int nProbeVariables = 7;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6];
int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter #
//-----------------------------------------------------------------------
#************************************************************************
# Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type
// 0 -- none.
// 2 -- gama-re-theta.
// 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
// 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.
int turbInterval = 1;
int turbOrderStruct = 2;
int kindOfTurbSource = 0;
int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3;
double muoo = 3.0;
double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0;
int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max.
// maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0;
//-----------------------------------------------------------------------
# LES Parameter #
//-----------------------------------------------------------------------
#************************************************************************
# LES Parameter *
#************************************************************************
// iLES: Create LESSolver or not.
// = 1 - Create LESSolver;
// != 1 - not.
// = 1 -- Create LESSolver;
// != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random disturb.
// iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter;
// != 0 - in every sub-iter.
// = 0 -- in only first sub-iter;
// != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not;
// != 0 - Add body force.
// = 0 -- not;
// != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom";
// = "wale";
// = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function;
// = 1 - van Driest;
// = 2 - developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli.
// deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 -- no wall function;
// = 1 -- van Driest;
// = 2 -- developed by Dr. Deng Xiaobing;
// = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul;
// = 2 - mu_total = max(mut ,0)+ mul.
// = 0 -- mu_total = mut + mul;
// = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average variables in i, j, k direction or not.
// isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0;
string sgsmodel = "smagorinsky";
int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1;
int monitorNegativeConstant = 0;
//-----------------------------------------------------------------------
# Other Parameters for Hypersonic Non-equilibrium Gas #
//-----------------------------------------------------------------------
#************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas *
#************************************************************************
// dg_high_order:
// 0 -- generic order accuracy.
// 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files.
// 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.
// 4 -- for 2D.
// 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas.
// 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.
// 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.
// 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.
// the value equals to or is greater than 1, and 3 is for default value.
// 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.
// 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.
// 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.
// nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model.
// 2 -- Two-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.
// 0 -- No.
// 1 -- Yes.
// nTEnergyModel: the method to computing temperature energy model.
// 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the 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.
// 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.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 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.
// trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species
// 0 -- not used.
// 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0.
// 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used.
// 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef
// nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used.
// 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource
// nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used.
// 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource
// 0 -- approximation algorithm 1 (Ori.)
// 1 -- approximation algorithm 2 (New)
// nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs
// 0 -- not used
// 1 -- used
// nDiagonalModified: Modified on Diagonal
// 0 -- not used
// 1 -- Ori.
// 2 -- new
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// 0 -- not used.
// 1 -- used.
// nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// 1 -- new.
// nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 0 -- not used.
// 1 -- new.
// nGradPrimtiveMethod:
// 0 -- Ori.
// 1 -- new
// 1 -- new.
// nAblation:
// 0 -- The wall ablation is not 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.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©.
// for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// 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.
// 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.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// 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.
// 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.
// 0 -- no
// 1 -- yes
// 0 -- no.
// 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 iapplication = 0;
int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0;
int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1;
int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1;
int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0;
int isInjection = 0;
int nViscosityModel = 0;
int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0;
int nChemicalFlowStep = 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.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order.
// 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1;
int MGCoarsestIteration = 1;
int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
#########################################################################
# High Order Struct Solver #
#########################################################################
#************************************************************************
# High Order Struct Solver *
#************************************************************************
// isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-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.
// 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 oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0;
int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0;
double referenceDensity = 1.0;
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 strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
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;
double relaxParameterOfKinetic = 1.0;
#########################################################################
# motive information #
#########################################################################
#************************************************************************
# motive information *
#************************************************************************
int numberOfMovingBodies = 1;
############################## body0 ##############################
//mass of parts
// mass of parts.
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;
//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;
//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;
//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;
//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;
// the object that the parts belong to.
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;
// the move pattern of the parts.
// -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;
double amplitude_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 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1;
double rotateFrequency_0 = 0.0;
//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;
//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;
// the deformation method of the parts.
int morphing_0 = 0;
// post indentify
// post indentify.
int integralOrder = 4;
// ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0;
//@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0;
#########################################################################
# Old Parameter #
#########################################################################
//@string weatherDataFilePath = "./WRFData/";
//@double longitude = 110.95
//@double latitude = 19.61;
#************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
#########################################################################
# Incompressible Parameter #
#########################################################################
//double partialCFL[] = [0.0];
//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 isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0;

View File

@ -0,0 +1,35 @@
0 MRT set 1, BGK set 0
0 continue.plt CONTI, resume :1 , new 0 //follows input datafile name //use ASCII文件 continue.plt
0 LES yes: 1 , no: 0
0 mesh_3d.dat GEO read complex geo? yes:1, no:0 //follows input datafile name
0 ! MB multiblock LBM? yes:1, no:0
1 2e-3 !CONV using converge criterion? yes:1, no:0
201 NX
201 ! NY
1 ! NZ
1 NX2
1 NY2
1 ! NZ2
0 ! LowX
0 ! LowY
0 ! LowZ
1 ! x_np
1 ! y_np
1 ! z_np
500 ! framerate
50000 total steps to terminate
1.0 ! density
0.6 tau
(0.0, 0.0, 0.0000000) Volumetric force vector (gx, gy, gz)
D2Q9 ! velocity set
Cavity ! boundary condition
! note: in the following, boundary types: periodic,velocity, pressure
! are allowed. if "velocity" is applied, please strictly follow the format "velocity (%lf, %lf, %lf)".
nonslip xmin face
nonslip xmax face
nonslip ymin face
velocity (0.1, 0.0, 0.0) ymax face,
periodic zmin face
periodic zmax face
------------------- initial velocity field
(0.0, 0.00, 0.0)

View File

@ -17,12 +17,12 @@ string defaultParaFile = "./bin/cfd_para.hypara";
int ndim = 2;
int nparafile = 1;
int nsimutask = 0;
string parafilename = "./bin/cfd_para_incompressible.hypara"
//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/cfd_para_incompressible.hypara";
//int nsimutask = 1;
//string parafilename = "./bin/grid_para.hypara";
@ -39,6 +39,9 @@ string parafilename = "./bin/cfd_para_incompressible.hypara"
//int nsimutask = 1;
//string parafilename = "./bin/grid_refine_para.hypara";
int nsimutask = 13;
string parafilename = "./bin/cfd_para.hypara";
//int nsimutask = 14;
//string parafilename = "./bin/integrative_solver.hypara";

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
###########################################################################
# Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0;
int iadapt = 0;
int SymmetryFaceVector = 1;
int gridReorder = 0;
int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion.
// 1 -- Y upward. (default)
// 2 -- Z upward.
int axisup = 1;
// 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.
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".
// 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//-----------------------------------------------------------------------
# Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction.
// rotationAngle: The relative angle between two periodic face.
which is recorded in degrees.
int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid.
// 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.
int pgridtype = 0;
int maxproc = 4;
int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy:
//! -# 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.
// 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.
int parallelStrategy = 1;
//-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance.
// maxproc -- perfect imbalance.
// 1.05 -- recommended.
int omit_no_bound_bc = 0;
int npartmethod = 1;
int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.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 intervalStepFlow = 1000;
int intervalStepPlot = 1000;
int intervalStepSample = 1000;
int intervalStepForce = 100;
int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible:
// 0 -- incompressible flow.
// 1 -- compressible flow. (default)
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 #
//-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions.
// 1 -- the flight 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.
// 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.
// refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// 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.
// 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.
int directionMethod = 0;
double refMachNumber = 0.73;
double attackd = 2.79;
double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0;
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 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.
//int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6;
//double refDimensionalTemperature = 293;
//double refDimensionalTemperature = 293.0;
//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 radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol.
//-----------------------------------------------------------------------
# Spatial Discretisation #
//-----------------------------------------------------------------------
#*******************************************************************
#************************************************************************
# Struct Solver *
#*******************************************************************
#************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f".
// -- "roe", "modified_roe".
// -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default)
// 1 -- Yes.
// str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth".
// -- "nolim", no limiter.
// -- "vanalbada_clz", clz supersonic version.
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3"
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe";
int isWennScheme = 0;
string str_limiter_name = "vanalbada";
#*******************************************************************
#************************************************************************
# UnStruct Solver or Common *
#*******************************************************************
#************************************************************************
// viscousType: Viscous model.
// 0 -- Euler.
// 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// 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+".
// uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod".
// -- "vanalbada", "smooth", "nnd", "lpz", "1st".
// -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// 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;
//string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0;
//-----------------------------------------------------------------------
# Temporal Discretisation #
//-----------------------------------------------------------------------
#************************************************************************
# Temporal Discretisation *
#************************************************************************
// iunsteady: Steady or unsteady.
// 0 -- steady.
// 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration.
// 7 -- Line 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.
// 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.
// CFLEnd: End cfl number.
// 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])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0;
double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000;
double statisticalTimePeriod = -1.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 min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01;
double CFLEnd = 10.0;
int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2;
double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01;
double turbCFLScale = 1.0;
double csrv = 2.0;
double csrv = 1.0;
double timemax = 1.0e10;
double dtsave = -1.0;
int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
//-----------------------------------------------------------------------
# File In or Out #
//-----------------------------------------------------------------------
#************************************************************************
# File In or Out *
#************************************************************************
// numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance.
// 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.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;
string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile.
// 0 -- Tecplot binary.
// 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1;
// 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),
// -- 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),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81)
// -- specific heat ratio(gama, 56)
// -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- 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!!!
// Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall.
// 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),
// -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),
// -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)
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23)
// -- 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),
// -- 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),
// -- 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), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8;
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.
// nProbeVariables: Number of variables want to be dumped for probes monitered.
// 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!!!
// probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0;
int nProbeVariables = 7;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6];
int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter #
//-----------------------------------------------------------------------
#************************************************************************
# Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type
// 0 -- none.
// 2 -- gama-re-theta.
// 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
// 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.
int turbInterval = 1;
int turbOrderStruct = 2;
int kindOfTurbSource = 0;
int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3;
double muoo = 3.0;
double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0;
int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max.
// maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0;
//-----------------------------------------------------------------------
# LES Parameter #
//-----------------------------------------------------------------------
#************************************************************************
# LES Parameter *
#************************************************************************
// iLES: Create LESSolver or not.
// = 1 - Create LESSolver;
// != 1 - not.
// = 1 -- Create LESSolver;
// != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random disturb.
// iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter;
// != 0 - in every sub-iter.
// = 0 -- in only first sub-iter;
// != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not;
// != 0 - Add body force.
// = 0 -- not;
// != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom";
// = "wale";
// = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function;
// = 1 - van Driest;
// = 2 - developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli.
// deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 -- no wall function;
// = 1 -- van Driest;
// = 2 -- developed by Dr. Deng Xiaobing;
// = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul;
// = 2 - mu_total = max(mut ,0)+ mul.
// = 0 -- mu_total = mut + mul;
// = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average variables in i, j, k direction or not.
// isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0;
string sgsmodel = "smagorinsky";
int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1;
int monitorNegativeConstant = 0;
//-----------------------------------------------------------------------
# Other Parameters for Hypersonic Non-equilibrium Gas #
//-----------------------------------------------------------------------
#************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas *
#************************************************************************
// dg_high_order:
// 0 -- generic order accuracy.
// 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files.
// 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.
// 4 -- for 2D.
// 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas.
// 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.
// 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.
// 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.
// the value equals to or is greater than 1, and 3 is for default value.
// 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.
// 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.
// 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.
// nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model.
// 2 -- Two-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.
// 0 -- No.
// 1 -- Yes.
// nTEnergyModel: the method to computing temperature energy model.
// 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the 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.
// 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.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 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.
// trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species
// 0 -- not used.
// 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0.
// 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used.
// 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef
// nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used.
// 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource
// nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used.
// 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource
// 0 -- approximation algorithm 1 (Ori.)
// 1 -- approximation algorithm 2 (New)
// nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs
// 0 -- not used
// 1 -- used
// nDiagonalModified: Modified on Diagonal
// 0 -- not used
// 1 -- Ori.
// 2 -- new
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// 0 -- not used.
// 1 -- used.
// nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// 1 -- new.
// nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 0 -- not used.
// 1 -- new.
// nGradPrimtiveMethod:
// 0 -- Ori.
// 1 -- new
// 1 -- new.
// nAblation:
// 0 -- The wall ablation is not 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.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©.
// for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// 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.
// 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.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// 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.
// 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.
// 0 -- no
// 1 -- yes
// 0 -- no.
// 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 iapplication = 0;
int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0;
int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1;
int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1;
int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0;
int isInjection = 0;
int nViscosityModel = 0;
int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0;
int nChemicalFlowStep = 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.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order.
// 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1;
int MGCoarsestIteration = 1;
int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
#########################################################################
# High Order Struct Solver #
#########################################################################
#************************************************************************
# High Order Struct Solver *
#************************************************************************
// isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-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.
// 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 oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0;
int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0;
double referenceDensity = 1.0;
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 strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
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;
double relaxParameterOfKinetic = 1.0;
#########################################################################
# motive information #
#########################################################################
#************************************************************************
# motive information *
#************************************************************************
int numberOfMovingBodies = 1;
############################## body0 ##############################
//mass of parts
// mass of parts.
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;
//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;
//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;
//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;
//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;
// the object that the parts belong to.
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;
// the move pattern of the parts.
// -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;
double amplitude_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 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1;
double rotateFrequency_0 = 0.0;
//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;
//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;
// the deformation method of the parts.
int morphing_0 = 0;
// post indentify
// post indentify.
int integralOrder = 4;
// ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0;
//@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0;
#########################################################################
# Old Parameter #
#########################################################################
//@string weatherDataFilePath = "./WRFData/";
//@double longitude = 110.95
//@double latitude = 19.61;
#************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
#########################################################################
# Incompressible Parameter #
#########################################################################
//double partialCFL[] = [0.0];
//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 isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0;

View File

@ -0,0 +1,35 @@
0 MRT set 1, BGK set 0
1 continue.plt CONTI, resume :1 , new 0 //follows input datafile name //use ASCII文件 continue.plt
1 LES yes: 1 , no: 0
0 mesh_3d.dat GEO read complex geo? yes:1, no:0 //follows input datafile name
0 ! MB multiblock LBM? yes:1, no:0
0 2e-3 !CONV using converge criterion? yes:1, no:0
128 NX
128 ! NY
256 ! NZ
1 NX2
1 NY2
1 ! NZ2
0 ! LowX
0 ! LowY
0 ! LowZ
4 ! x_np
4 ! y_np
2 ! z_np
5000 ! framerate
20000 total steps to terminate
1.0 ! density
0.506 tau
(9.2e-8,0.0,0.0) Volumetric force
D3Q19 ! velocity set
ChannelTurb ! boundary condition
! note: in the following, boundary types: periodic,velocity, pressure
! are allowed. if "velocity" is applied, please strictly follow the format "velocity (%lf, %lf, %lf)".
periodic xmin face
periodic xmax face
periodic ymin face
periodic ymax face,
nonslip zmin face
nonslip zmax face
------------------- initial velocity field
(0.0, 0.00, 0.0)

View File

@ -17,12 +17,12 @@ string defaultParaFile = "./bin/cfd_para.hypara";
int ndim = 3;
int nparafile = 1;
int nsimutask = 0;
string parafilename = "./bin/cfd_para_incompressible.hypara"
//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/cfd_para_incompressible.hypara";
//int nsimutask = 1;
//string parafilename = "./bin/grid_para.hypara";
@ -39,6 +39,9 @@ string parafilename = "./bin/cfd_para_incompressible.hypara"
//int nsimutask = 1;
//string parafilename = "./bin/grid_refine_para.hypara";
int nsimutask = 13;
string parafilename = "./bin/cfd_para.hypara";
//int nsimutask = 14;
//string parafilename = "./bin/integrative_solver.hypara";

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
###########################################################################
# Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0;
int iadapt = 0;
int SymmetryFaceVector = 1;
int gridReorder = 0;
int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion.
// 1 -- Y upward. (default)
// 2 -- Z upward.
int axisup = 1;
// 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.
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".
// 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//-----------------------------------------------------------------------
# Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction.
// rotationAngle: The relative angle between two periodic face.
which is recorded in degrees.
int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid.
// 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.
int pgridtype = 0;
int maxproc = 4;
int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy:
//! -# 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.
// 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.
int parallelStrategy = 1;
//-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance.
// maxproc -- perfect imbalance.
// 1.05 -- recommended.
int omit_no_bound_bc = 0;
int npartmethod = 1;
int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.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 intervalStepFlow = 1000;
int intervalStepPlot = 1000;
int intervalStepSample = 1000;
int intervalStepForce = 100;
int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible:
// 0 -- incompressible flow.
// 1 -- compressible flow. (default)
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 #
//-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions.
// 1 -- the flight 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.
// 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.
// refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// 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.
// 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.
int directionMethod = 0;
double refMachNumber = 0.73;
double attackd = 2.79;
double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0;
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 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.
//int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6;
//double refDimensionalTemperature = 293;
//double refDimensionalTemperature = 293.0;
//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 radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol.
//-----------------------------------------------------------------------
# Spatial Discretisation #
//-----------------------------------------------------------------------
#*******************************************************************
#************************************************************************
# Struct Solver *
#*******************************************************************
#************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f".
// -- "roe", "modified_roe".
// -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default)
// 1 -- Yes.
// str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth".
// -- "nolim", no limiter.
// -- "vanalbada_clz", clz supersonic version.
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3"
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe";
int isWennScheme = 0;
string str_limiter_name = "vanalbada";
#*******************************************************************
#************************************************************************
# UnStruct Solver or Common *
#*******************************************************************
#************************************************************************
// viscousType: Viscous model.
// 0 -- Euler.
// 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// 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+".
// uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod".
// -- "vanalbada", "smooth", "nnd", "lpz", "1st".
// -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// 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;
//string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0;
//-----------------------------------------------------------------------
# Temporal Discretisation #
//-----------------------------------------------------------------------
#************************************************************************
# Temporal Discretisation *
#************************************************************************
// iunsteady: Steady or unsteady.
// 0 -- steady.
// 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration.
// 7 -- Line 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.
// 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.
// CFLEnd: End cfl number.
// 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])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0;
double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000;
double statisticalTimePeriod = -1.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 min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01;
double CFLEnd = 10.0;
int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2;
double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01;
double turbCFLScale = 1.0;
double csrv = 2.0;
double csrv = 1.0;
double timemax = 1.0e10;
double dtsave = -1.0;
int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
//-----------------------------------------------------------------------
# File In or Out #
//-----------------------------------------------------------------------
#************************************************************************
# File In or Out *
#************************************************************************
// numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance.
// 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.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;
string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile.
// 0 -- Tecplot binary.
// 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1;
// 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),
// -- 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),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81)
// -- specific heat ratio(gama, 56)
// -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- 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!!!
// Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall.
// 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),
// -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),
// -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)
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23)
// -- 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),
// -- 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),
// -- 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), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8;
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.
// nProbeVariables: Number of variables want to be dumped for probes monitered.
// 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!!!
// probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0;
int nProbeVariables = 7;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6];
int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter #
//-----------------------------------------------------------------------
#************************************************************************
# Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type
// 0 -- none.
// 2 -- gama-re-theta.
// 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
// 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.
int turbInterval = 1;
int turbOrderStruct = 2;
int kindOfTurbSource = 0;
int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3;
double muoo = 3.0;
double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0;
int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max.
// maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0;
//-----------------------------------------------------------------------
# LES Parameter #
//-----------------------------------------------------------------------
#************************************************************************
# LES Parameter *
#************************************************************************
// iLES: Create LESSolver or not.
// = 1 - Create LESSolver;
// != 1 - not.
// = 1 -- Create LESSolver;
// != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random disturb.
// iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter;
// != 0 - in every sub-iter.
// = 0 -- in only first sub-iter;
// != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not;
// != 0 - Add body force.
// = 0 -- not;
// != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom";
// = "wale";
// = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function;
// = 1 - van Driest;
// = 2 - developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli.
// deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 -- no wall function;
// = 1 -- van Driest;
// = 2 -- developed by Dr. Deng Xiaobing;
// = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul;
// = 2 - mu_total = max(mut ,0)+ mul.
// = 0 -- mu_total = mut + mul;
// = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average variables in i, j, k direction or not.
// isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0;
string sgsmodel = "smagorinsky";
int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1;
int monitorNegativeConstant = 0;
//-----------------------------------------------------------------------
# Other Parameters for Hypersonic Non-equilibrium Gas #
//-----------------------------------------------------------------------
#************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas *
#************************************************************************
// dg_high_order:
// 0 -- generic order accuracy.
// 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files.
// 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.
// 4 -- for 2D.
// 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas.
// 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.
// 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.
// 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.
// the value equals to or is greater than 1, and 3 is for default value.
// 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.
// 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.
// 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.
// nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model.
// 2 -- Two-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.
// 0 -- No.
// 1 -- Yes.
// nTEnergyModel: the method to computing temperature energy model.
// 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the 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.
// 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.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 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.
// trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species
// 0 -- not used.
// 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0.
// 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used.
// 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef
// nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used.
// 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource
// nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used.
// 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource
// 0 -- approximation algorithm 1 (Ori.)
// 1 -- approximation algorithm 2 (New)
// nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs
// 0 -- not used
// 1 -- used
// nDiagonalModified: Modified on Diagonal
// 0 -- not used
// 1 -- Ori.
// 2 -- new
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// 0 -- not used.
// 1 -- used.
// nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// 1 -- new.
// nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 0 -- not used.
// 1 -- new.
// nGradPrimtiveMethod:
// 0 -- Ori.
// 1 -- new
// 1 -- new.
// nAblation:
// 0 -- The wall ablation is not 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.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©.
// for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// 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.
// 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.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// 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.
// 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.
// 0 -- no
// 1 -- yes
// 0 -- no.
// 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 iapplication = 0;
int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0;
int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1;
int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1;
int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0;
int isInjection = 0;
int nViscosityModel = 0;
int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0;
int nChemicalFlowStep = 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.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order.
// 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1;
int MGCoarsestIteration = 1;
int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
#########################################################################
# High Order Struct Solver #
#########################################################################
#************************************************************************
# High Order Struct Solver *
#************************************************************************
// isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-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.
// 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 oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0;
int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0;
double referenceDensity = 1.0;
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 strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
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;
double relaxParameterOfKinetic = 1.0;
#########################################################################
# motive information #
#########################################################################
#************************************************************************
# motive information *
#************************************************************************
int numberOfMovingBodies = 1;
############################## body0 ##############################
//mass of parts
// mass of parts.
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;
//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;
//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;
//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;
//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;
// the object that the parts belong to.
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;
// the move pattern of the parts.
// -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;
double amplitude_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 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1;
double rotateFrequency_0 = 0.0;
//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;
//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;
// the deformation method of the parts.
int morphing_0 = 0;
// post indentify
// post indentify.
int integralOrder = 4;
// ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0;
//@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0;
#########################################################################
# Old Parameter #
#########################################################################
//@string weatherDataFilePath = "./WRFData/";
//@double longitude = 110.95
//@double latitude = 19.61;
#************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
#########################################################################
# Incompressible Parameter #
#########################################################################
//double partialCFL[] = [0.0];
//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 isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0;

View File

@ -0,0 +1,35 @@
1 MRT set 1, BGK set 0
0 continue.plt CONTI, resume :1 , new 0 //follows input datafile name //use ASCII文件 continue.plt
0 LES yes: 1 , no: 0
0 mesh_3d.dat GEO read complex geo? yes:1, no:0 //follows input datafile name
0 ! MB multiblock LBM? yes:1, no:0
1 2e-3 !CONV using converge criterion? yes:1, no:0
100 NX
100 ! NY
100 ! NZ
1 NX2
1 NY2
1 ! NZ2
0 ! LowX
0 ! LowY
0 ! LowZ
2 ! x_np
2 ! y_np
1 ! z_np
500 ! framerate
50000 total steps to terminate
1.0 ! density
0.6 tau
(2.2e-7,0.0,0.0) Volumetric force
D3Q19 ! velocity set
Poiseuille ! boundary condition
! note: in the following, boundary types: periodic,velocity, pressure
! are allowed. if "velocity" is applied, please strictly follow the format "velocity (%lf, %lf, %lf)".
periodic xmin face
periodic xmax face
periodic ymin face
periodic ymax face,
nonslip zmin face
nonslip zmax face
------------------- initial velocity field
(0.0, 0.00, 0.0)

View File

@ -17,12 +17,12 @@ string defaultParaFile = "./bin/cfd_para.hypara";
int ndim = 3;
int nparafile = 1;
int nsimutask = 0;
string parafilename = "./bin/cfd_para_incompressible.hypara"
//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/cfd_para_incompressible.hypara";
//int nsimutask = 1;
//string parafilename = "./bin/grid_para.hypara";
@ -39,6 +39,9 @@ string parafilename = "./bin/cfd_para_incompressible.hypara"
//int nsimutask = 1;
//string parafilename = "./bin/grid_refine_para.hypara";
int nsimutask = 13;
string parafilename = "./bin/cfd_para.hypara";
//int nsimutask = 14;
//string parafilename = "./bin/integrative_solver.hypara";

View File

@ -8,6 +8,7 @@
// Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 +
// PHengLEI 2212 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
###########################################################################
# Default parameters for Grid conversion #
@ -46,19 +47,24 @@ int gridobj = 1;
int multiblock = 0;
int iadapt = 0;
int SymmetryFaceVector = 1;
int gridReorder = 0;
int faceReorderMethod = 0;
// axisup: Type of Cartisien coordinates system, used in grid conversion.
// 1 -- Y upward. (default)
// 2 -- Z upward.
int axisup = 1;
// 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.
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".
// 0 -- Interface. (default)
// 1 -- Physical boundary condition, used in Hybrid solver.
int omit_no_bound_bc = 0;
int omitRepeatInterface = 1;
//-----------------------------------------------------------------------
# Grid data type #
@ -89,7 +95,6 @@ int dumpOldGrid = 0;
int numberOfGridFile = 1;
string from_gfile = "./grid/rae2822_hybrid2d.cas";
string from_gfile1 = "";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ----------------- some advanced choices ------------------------------
@ -178,7 +183,6 @@ double influencePara = 25.0;
which only support one direction.
// rotationAngle: The relative angle between two periodic face.
which is recorded in degrees.
int periodicType = 0;
double translationLength[] = [0.0, 0.0, 0.0];
double rotationAngle = 0.0;
@ -192,7 +196,6 @@ double rotationAngle = 0.0;
// 2 -- refine structured grid.
// 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.
int pgridtype = 0;
int maxproc = 4;
int numberOfMultifile = 1;
@ -207,8 +210,8 @@ int blockIndexOfMark = 0;
int cellIndexOfMark[] = [185, 30, 1];
// parallelStrategy:
//! -# 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.
// 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.
int parallelStrategy = 1;
//-----------------------------------------------------------------------
@ -232,7 +235,6 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts";
// 1 -- perfect balance.
// maxproc -- perfect imbalance.
// 1.05 -- recommended.
int omit_no_bound_bc = 0;
int npartmethod = 1;
int parallelPartitionMethod = 2;
@ -253,24 +255,30 @@ int numberOfMultigrid = 1;
// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.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 intervalStepFlow = 1000;
int intervalStepPlot = 1000;
int intervalStepSample = 1000;
int intervalStepForce = 100;
int intervalStepRes = 10;
int ifLowSpeedPrecon = 0;
// compressible:
// 0 -- incompressible flow.
// 1 -- compressible flow. (default)
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 #
//-----------------------------------------------------------------------
@ -281,9 +289,12 @@ int compressible = 1;
// 0 -- the nondimensional conditions.
// 1 -- the flight 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.
// 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.
// refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// 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.
// 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.
int directionMethod = 0;
double refMachNumber = 0.73;
double attackd = 2.79;
double angleSlide = 0.00;
int flowInitMethod = 0;
int inflowParaType = 0;
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 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.
//int inflowParaType = 4;
//double refDimensionalVelocity = 1000.0;
@ -341,9 +344,15 @@ double freestream_vibration_temperature = 300.00;
// The MachNumber, temperature and pressure are fixed.
//int inflowParaType = 6;
//double refDimensionalTemperature = 293;
//double refDimensionalTemperature = 293.0;
//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 radiationCoef = 0.8;
@ -357,35 +366,35 @@ double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter.
double knudsenLength = 1.0; // unit of meter.
double refMolecularWeight = 28.9644; // unit of g/mol.
//-----------------------------------------------------------------------
# Spatial Discretisation #
//-----------------------------------------------------------------------
#*******************************************************************
#************************************************************************
# Struct Solver *
#*******************************************************************
#************************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid.
// -- "vanleer", "steger", "hlle", "lax_f".
// -- "roe", "modified_roe".
// -- "vanleer", "steger", "hlle", "lax_f",
// -- "roe", "modified_roe",
// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+".
// isWennScheme: If using WENN Scheme of struct grid.
// 0 -- NO. (default)
// 1 -- Yes.
// str_limiter_name: Limiter of struct grid.
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth".
// -- "nolim", no limiter.
// -- "vanalbada_clz", clz supersonic version.
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3"
// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth",
// -- "nolim", no limiter,
// -- "vanalbada_clz", clz supersonic version,
// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3".
string inviscidSchemeName = "roe";
int isWennScheme = 0;
string str_limiter_name = "vanalbada";
#*******************************************************************
#************************************************************************
# UnStruct Solver or Common *
#*******************************************************************
#************************************************************************
// viscousType: Viscous model.
// 0 -- Euler.
// 1 -- Lamilar.
@ -410,11 +419,11 @@ string str_limiter_name = "vanalbada";
// 3 -- IDDES.
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// 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+".
// uns_limiter_name: Limiter of Unstruct grid.
// -- "barth", "vencat", "vanleer", "minmod".
// -- "vanalbada", "smooth", "nnd", "lpz", "1st".
// -- "barth", "vencat", "vanleer", "minmod",
// -- "vanalbada", "smooth", "nnd", "lpz", "1st",
// -- "nolim", no limiter.
// uns_vis_name: Discretisation method of viscous term.
// -- "std", "test", "aver", "new1", "new2".
@ -442,7 +451,7 @@ string str_limiter_name = "vanalbada";
// 3 -- Harten type, which is default used.
// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0.
// 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;
//string viscousName = "Euler";
@ -475,9 +484,9 @@ double roeEntropyScale = 1.0;
double AusmpwPlusLimiter = 1.0;
//-----------------------------------------------------------------------
# Temporal Discretisation #
//-----------------------------------------------------------------------
#************************************************************************
# Temporal Discretisation *
#************************************************************************
// iunsteady: Steady or unsteady.
// 0 -- steady.
// 1 -- unsteay.
@ -504,11 +513,18 @@ double AusmpwPlusLimiter = 1.0;
// 6 -- Jacobian iteration.
// 7 -- Line 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.
// 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.
// CFLEnd: End cfl number.
// 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])
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0.
// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS.
@ -533,7 +549,6 @@ double AusmpwPlusLimiter = 1.0;
// 2 -- Pab3D wall function.
// RKStage: The number of Runge-Kutta step.
// lamda: Cofficient of Runge-Kutta step.
int iunsteady = 0;
double physicalTimeStep = 0.01;
double physicalTimeStepDimensional = -0.001;
@ -543,7 +558,7 @@ int ifStaticsReynoldsStress = 0;
int startStatisticStep = 800000;
double statisticalTimePeriod = -1.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 min_sub_iter = 50;
@ -558,7 +573,10 @@ int isUsePreTwall = 0;
double CFLStart = 0.01;
double CFLEnd = 10.0;
int CFLVaryStep = 500;
double GMRESCFLScale = 1.0;
int OriginalTscheme = 9;
int useLUSGSprecond = 1;
int GMRESInitStep = 1000;
double pMaxForCFL = 0.2;
double pMinForCFL = 0.1;
double deltaMaxForCFL = 0.2;
@ -575,7 +593,7 @@ int order = 2;
double visl_min = 0.01;
double turbCFLScale = 1.0;
double csrv = 2.0;
double csrv = 1.0;
double timemax = 1.0e10;
double dtsave = -1.0;
int maxale = 10;
@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0];
//int RKStage = 4;
//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0];
//-----------------------------------------------------------------------
# File In or Out #
//-----------------------------------------------------------------------
#************************************************************************
# File In or Out *
#************************************************************************
// numberOfGridGroups: The number of grid groups.
// gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory.
@ -618,10 +635,8 @@ double lamda[] = [0.5, 1.0];
// nIsComputeWallDist: Whether to compute the wall distance.
// 0 -- Compute wall distance.
// 1 -- Not compute.
//
// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism.
// wall_heatfluxfile: The file to output the MaxHeatFlux of wall.
int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts";
string wallTemperaturefile = "";
@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0;
string resSaveFile = "results/res.dat";
string turbresfile = "results/turbres.dat";
string transitionResFile = "results/transitionRes.dat";
string aircoeffile = "results/aircoef.dat";
string restartNSFile = "results/flow.dat";
string turbfile = "results/turb.dat";
string transitionFile = "results/transition.dat";
string visualfile = "results/tecflow.plt";
string wall_aircoefile = "results/wall_aircoef.dat";
@ -645,11 +662,15 @@ string protectionFile0 = "results/flow0.dat";
string protectionFile1 = "results/flow1.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;
string wall_varfile = "";
string jetDefineFile = "bin/jet.hypara";
string sixDofFileName = "results/sixDofInfo.dat";
string derivativeFileName = "results/identify.dat";
string hysteresisFileName = "results/force_beta.plt";
@ -659,7 +680,8 @@ int plotFieldType = 0;
// visualfileType: The file type of visualfile.
// 0 -- Tecplot binary.
// 1 -- Tecplot ASCII.
// 2 -- Ensight binary.
// 3 -- Ensight ASCII.
int visualfileType = 1;
// 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),
// -- 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),
// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- overlap iblank(iblank, 81)
// -- specific heat ratio(gama, 56)
// -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52),
// -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58),
// -- overlap iblank(iblank, 81),
// -- 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!!!
// Variables order must from small to big.
//-----------the optional parameters list for the wall boundary condition----------------
// nVisualWallVariables: The number of visual variables on wall.
// 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),
// -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),
// -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)
// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23)
// -- 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),
// -- 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),
// -- 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), Knudsen number(Kn_wall, 24).
int nVisualVariables = 8;
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.
// nProbeVariables: Number of variables want to be dumped for probes monitered.
// 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!!!
// probeVariables order must from small to big.
// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables.
@ -761,12 +785,13 @@ string probesDefineFile = "bin/probes_XYZ.dat";
int searchCellsMethod = 0;
int nProbeVariables = 7;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6];
int nProbeVariables = 14;
int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13];
int probeVariablesInterpolationMethod = 0;
//-----------------------------------------------------------------------
# Turbulence Parameter #
//-----------------------------------------------------------------------
#************************************************************************
# Turbulence Parameter *
#************************************************************************
// turbInterval: Iteration number of turbulence.
// kindOfTurbSource: Kinds of turbulent source.
// 0 -- Original.
@ -774,15 +799,12 @@ int probeVariablesInterpolationMethod = 0;
// transitionType: transition model type
// 0 -- none.
// 2 -- gama-re-theta.
// 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
// 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.
int turbInterval = 1;
int turbOrderStruct = 2;
int kindOfTurbSource = 0;
int mod_turb_res = 0;
double turb_relax = 1.0;
double freeStreamViscosity = 1.0e-3;
double muoo = 3.0;
double kwoo = 5.0;
@ -791,28 +813,27 @@ double turbIntensity = -1.0;
int freeturbIntensitySRModify = 0;
double freeDecayXLocation = 0.0;
int compressibleCorrection = 0;
int prandtlNumberCorrection = 0;
int transitionMaFix = 1;
# maximum eddy viscosity (myt/my) max.
// maximum eddy viscosity (myt/my) max.
double eddyViscosityLimit = 1.0e10;
int monitor_vistmax = 0;
//-----------------------------------------------------------------------
# LES Parameter #
//-----------------------------------------------------------------------
#************************************************************************
# LES Parameter *
#************************************************************************
// iLES: Create LESSolver or not.
// = 1 - Create LESSolver;
// != 1 - not.
// = 1 -- Create LESSolver;
// != 1 -- not.
// amplitudeofDisturb: Amplitude of adding disturb.
// disturbstep: Unsteady time step or steady iteration of adding random disturb.
// iterdisturb: Add random disturb in every sub-iter or only first sub-iter.
// = 0 - in only first sub-iter;
// != 0 - in every sub-iter.
// = 0 -- in only first sub-iter;
// != 0 -- in every sub-iter.
// ipraddisturb: Add density and pressure disturb or not.
// ibodyforce: Add body force in source flux of NS equations or not.
// = 0 - not;
// != 0 - Add body force.
// = 0 -- not;
// != 0 -- Add body force.
// bodyforce: Body force in source flux of NS equations or not.
// utau: friction velocity, using in DNSDisturb.
// sgsmodel: subgrid scale model.
@ -820,23 +841,22 @@ int monitor_vistmax = 0;
// = "dsmCom";
// = "wale";
// = "sigma".
// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak);
// = 2 - pow(deltai * deltaj *deltak, 1/3);
// = 3 - Devloped by Scotti.
// wallDampingFunctionType: = 0 - no wall function;
// = 1 - van Driest;
// = 2 - developed by Dr. Deng Xiaobing;
// = 3 - developed by Piomelli.
// deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak);
// = 2 -- pow(deltai * deltaj *deltak, 1/3);
// = 3 -- Devloped by Scotti.
// wallDampingFunctionType: = 0 -- no wall function;
// = 1 -- van Driest;
// = 2 -- developed by Dr. Deng Xiaobing;
// = 3 -- developed by Piomelli.
// turbViscousCutType: turbulent viscosity cut type.
// = 0 - mu_total = mut + mul;
// = 1 - mu_total = max(mut-mul,0)+ mul;
// = 2 - mu_total = max(mut ,0)+ mul.
// = 0 -- mu_total = mut + mul;
// = 1 -- mu_total = max(mut-mul, 0) + mul;
// = 2 -- mu_total = max(mut , 0) + mul.
// smagConstant: constant of smagorinsky model.
// waleConstant: constant of wale model.
// filterDirection [3]: filter variables in i, j, k direction or not.
// averageDirection[3]: average variables in i, j, k direction or not.
// isotropicConstant: constant of isotropic part of SGS stress.
int iLES = 0;
string sgsmodel = "smagorinsky";
int deltaFunctionType = 2;
@ -852,9 +872,9 @@ double testFilterScale = 2.0;
int averageWidth = 1;
int monitorNegativeConstant = 0;
//-----------------------------------------------------------------------
# Other Parameters for Hypersonic Non-equilibrium Gas #
//-----------------------------------------------------------------------
#************************************************************************
# Other Parameters for Hypersonic Non-equilibrium Gas *
#************************************************************************
// dg_high_order:
// 0 -- generic order accuracy.
// 1 -- high order accuracy.
@ -862,9 +882,6 @@ int monitorNegativeConstant = 0;
// 0 -- gas model is fixed in the codes.
// 1 -- gas model is imported from library files.
// 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.
// 4 -- for 2D.
// 5 -- for 3D.
@ -886,14 +903,13 @@ int monitorNegativeConstant = 0;
// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied.
// 0 -- perfect gas.
// 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.
// 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.
// 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.
// the value equals to or is greater than 1, and 3 is for default value.
// 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.
// 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.
// 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.
// nSlipBCModel: The computational model of slip boundary conditions.
// 0 -- no slip.
// 1 -- the conventional Maxwell slip conditions.
// 2 -- the Gokcen slip conditions.
@ -913,10 +929,13 @@ int monitorNegativeConstant = 0;
// 1 -- One-temperature model.
// 2 -- Two-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.
// 0 -- No.
// 1 -- Yes.
// nTEnergyModel: the method to computing temperature energy model.
// 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model.
// 0 -- the energy term is computed using the conventional method.
// 1 -- the energy term is computed using the 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.
// 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.
// chemicalRelaxCorf: The value is in range of [0.001, 1.0].
// spectrumRadiusCoef: The value is in range of [0.0, 2.0].
// staticPressureRelaxCorf: The value is in range of [0.1, 1.0].
// nIsChemicalFreeze: the flag to freeze the chemical reactions.
// 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.
// trTemperatureMin: the minimum value of trTemperature.
// veTemperatureMin: the minimum value of veTemperature.
@ -965,36 +983,34 @@ int monitorNegativeConstant = 0;
// nSpeciesLimit: limitter of gas species
// 0 -- not used.
// 1 -- used.
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction
// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction.
// 0 -- method 0.
// 1 -- method 1.
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid
// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid.
// 0 -- not used.
// 1 -- used.
// nViscosityPeModified: Pe Modified for ViscosityCoef
// nViscosityPeModified: Pe Modified for ViscosityCoef.
// 0 -- not used.
// 1 -- used.
// nChemcalSourceModified: Modified on ChemcalSource
// nChemcalSourceModified: Modified on ChemcalSource.
// 0 -- not used.
// 1 -- used.
// nChemcalSourceEsMethod: Modified on ChemcalSource
// 0 -- approximation algorithm 1 (Ori.)
// 1 -- approximation algorithm 2 (New)
// nChemcalSourceEsMethod: Modified on ChemcalSource.
// 0 -- approximation algorithm 1 (Ori).
// 1 -- approximation algorithm 2 (New).
// nMaxStepTemperature: the iterative steps of temperature.
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs
// 0 -- not used
// 1 -- used
// nDiagonalModified: Modified on Diagonal
// 0 -- not used
// 1 -- Ori.
// 2 -- new
// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs.
// 0 -- not used.
// 1 -- used.
// nDiagonalModified: Modified on Diagonal.
// 0 -- not used.
// 1 -- new.
// nDiagonalModifiedTurb: Modified on Diagonal for turbulence.
// 0 -- not used.
// 1 -- new.
// nGradPrimtiveMethod:
// 0 -- Ori.
// 1 -- new
// 1 -- new.
// nAblation:
// 0 -- The wall ablation is not 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.
// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions.
// "Gas-Mixture" -- indicates the process of mixing gas without reacting.
// for struct solver mixing two species£¨SpeciesA, SpeciesB£©.
// for unstruct solver mixing multi-species£¨O2 NO CO CO2 H2 N2 Air CH4£©.
// for struct solver mixing two species<65><73>SpeciesA, SpeciesB<73><42>.
// 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.
// 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.
@ -1040,13 +1056,16 @@ int monitorNegativeConstant = 0;
// 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.
// 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.
// 0 -- no
// 1 -- yes
// 0 -- no.
// 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 iapplication = 0;
int isAdaptiveSolver = 0;
@ -1114,6 +1133,7 @@ double densityMin = 1.0e-8;
double densityMinFactor = 0.1;
double tAdjustmentFactor = 10.0;
double iniSpeedCoef = 1.0;
int iniSpeedMode = 0;
int nDebug = 0;
int nSpeciesLimit = 1;
@ -1125,18 +1145,21 @@ int nChemcalSourceEsMethod = 1;
int nMaxStepTemperature = 5;
int veTemperatureMinModified = 1;
int nDiagonalModified = 0;
int nDiagonalModifiedTurb = 0;
int nGradPrimtiveMethod = 1;
int nInviscidFluxModify = 1;
int nQlLimitMethod = 2;
int nSpeciesForWallMethod = 1;
int nDensityForWallMethod = 0;
int wallMultiTemperature = 0;
int nProtectData = 0;
int useHyflowSetting = 0;
int nAblation = 0;
int isInjection = 0;
int nViscosityModel = 0;
int nMarsModel = 0;
int nTvChange = 0;
int isMoleFractionType = 0;
string gasfile = "DK5";
//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat";
string speciesName = "O, O2, NO, N, N2";
@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0;
//string speciesName = "O2, N2";
//string initMassFraction = "1.0, 0.0";
int nFraction = 0;
int nContinueModel = 0;
int nChemicalFlowStep = 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.
@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0;
// 1 -- zero order.
// 2 -- first-order. (default)
// mgCorrectionLimit: Multi-grid correction limit.
int nMGLevel = 1;
int MGCoarsestIteration = 1;
int MGPreIteration = 1;
@ -1226,9 +1256,9 @@ string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
#########################################################################
# High Order Struct Solver #
#########################################################################
#************************************************************************
# High Order Struct Solver *
#************************************************************************
// isFVMOrFDM:
// 0 -- NSSolverStruct using Finite Volume Method.
// 1 -- NSSolverStruct using Finite Differ Method.
@ -1273,10 +1303,29 @@ int allReduceStep = 1;
// codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-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.
// 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 oversetInterpolationMethod = 0;
int readOversetFileOrNot = 0;
@ -1295,7 +1344,6 @@ int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0;
int outTecplotOverset = 0;
int outPutOversetVisualization = 0;
int numberOfMovingBodies = 2;
// ----------------- ALE configuration ------------------------------
@ -1306,34 +1354,40 @@ double referenceLength = 1.0;
double referenceVelocity = 1.0;
double referenceDensity = 1.0;
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 strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd.
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;
double relaxParameterOfKinetic = 1.0;
#########################################################################
# motive information #
#########################################################################
#************************************************************************
# motive information *
#************************************************************************
int numberOfMovingBodies = 1;
############################## body0 ##############################
//mass of parts
// mass of parts.
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;
//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;
//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;
//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;
//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;
// the object that the parts belong to.
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;
// the move pattern of the parts.
// -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;
double amplitude_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 -- anticlockwise from the point of view along the positive x axis.
int direction_0 = -1;
double rotateFrequency_0 = 0.0;
//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;
//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;
// the deformation method of the parts.
int morphing_0 = 0;
// post indentify
// post indentify.
int integralOrder = 4;
// ---------------- ATP read --------------------------------------------
//@int inflowParaType = 0;
//@double refReNumber = 6.5e6;
@ -1379,18 +1434,34 @@ int integralOrder = 4;
//@string outLetFileName = "./bin/subsonicOutlet.hypara";
//@double refDimensionalVelocity = 0;
//@double refDimensionalDensity = 0;
#########################################################################
# Old Parameter #
#########################################################################
//@string weatherDataFilePath = "./WRFData/";
//@double longitude = 110.95
//@double latitude = 19.61;
#************************************************************************
# Old Parameter *
#************************************************************************
int isPlotVolumeField = 0;
#************************************************************************
# partial flow field setting Parameter *
#************************************************************************
//int nPartialParameter = 0; // 0/1/2
//int nNumberOfPartialField = 0; //
//int nStartGridIndex[] = [0];
//int nEndGridIndex[] = [0];
#########################################################################
# Incompressible Parameter #
#########################################################################
//double partialCFL[] = [0.0];
//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 isSolveTurbEquation = 0;
int isSolveSpeciesEquation = 0;

View File

@ -0,0 +1,35 @@
0 MRT set 1, BGK set 0
0 continue.plt CONTI, resume :1 , new 0 //follows input datafile name //use ASCII文件 continue.plt
0 LES yes: 1 , no: 0
1 mesh_3d.dat GEO read complex geo? yes:1, no:0 //follows input datafile name
0 ! MB multiblock LBM? yes:1, no:0
0 2e-3 !CONV using converge criterion? yes:1, no:0
100 NX
300 ! NY
100 ! NZ
1 NX2
1 NY2
1 ! NZ2
0 ! LowX
0 ! LowY
0 ! LowZ
2 ! x_np
2 ! y_np
2 ! z_np
400 ! framerate
2000 total steps to terminate
1.0 ! density
0.56 tau
(0.0,0.0,0.0) Volumetric force
D3Q19 ! velocity set
3Dspoiler ! boundary condition
! note: in the following, boundary types: periodic,velocity, pressure
! are allowed. if "velocity" is applied, please strictly follow the format "velocity (%lf, %lf, %lf)".
velocity (0.00, 0.1, 0.0) xmin face
velocity (0.00, 0.1, 0.0) xmax face
velocity (0.00, 0.1, 0.0) ymin face
pressure 1.0 ymax face,
velocity (0.00, 0.1, 0.0) zmin face
velocity (0.00, 0.1, 0.0) zmax face
------------------- initial velocity field
(0.0, 0.1, 0.0)

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/cfd_para_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 = 1;
//string parafilename = "./bin/grid_refine_para.hypara";
int nsimutask = 13;
string parafilename = "./bin/cfd_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 = "";

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,33 @@
0 MRT set 1, BGK set 0
1 ic.plt CONTI, resume :1 , new 0 //follows input datafile name
0 LES yes: 1 , no: 0
0 mesh_3d.dat GEO read complex geo? yes:1, no:0 //follows input datafile name
0 ! MB multiblock LBM? yes:1, no:0
0 2.e-3 !CONV using converge criterion? yes:1, no:0
201 NX
201 ! NY
1 ! NZ
240 NX2
160 NY2
1 ! NZ2
500 ! LowX
160 ! LowY
0 ! LowZ
200 ! framerate
50000 total steps to terminate
1.0 ! density
0.8 tau
(0.0, 0.0, 0.0000000) Volumetric force vector (gx, gy, gz)
D2Q9 ! velocity set
Cavity ! boundary condition
! note: in the following, boundary types: periodic,velocity, pressure
! are allowed. if "velocity" is applied, please strictly follow the format "velocity (%lf, %lf, %lf)".
nonslip xmin face
nonslip xmax face
nonslip ymin face
velocity (0.1, 0.00, 0.0) ymax face,
nonslip zmin face
nonslip zmax face
------------------- initial velocity field
(0.0, 0.00, 0.0)

View File

@ -0,0 +1,58 @@
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 = 2;
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/cfd_para_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 = 1;
//string parafilename = "./bin/grid_refine_para.hypara";
//int nsimutask = 5;
//string parafilename = "./bin/overset_grid_view.hypara";
int nsimutask = 17;
string parafilename = "./bin/cfd_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 = "";

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,33 @@
0 MRT set 1, BGK set 0
0 ic.plt CONTI, resume :1 , new 0 //follows input datafile name
0 LES yes: 1 , no: 0
1 mesh_2d.dat GEO read complex geo? yes:1, no:0 //follows input datafile name
1 ! MB multiblock LBM? yes:1, no:0
0 2.e-3 !CONV using converge criterion? yes:1, no:0
600 NX
400 ! NY
1 ! NZ
240 NX2
160 NY2
1 ! NZ2
200 ! LowX
160 ! LowY
0 ! LowZ
200 ! framerate
50000 total steps to terminate
1.0 ! density
0.54 tau
(0.0, 0.0, 0.0000000) Volumetric force vector (gx, gy, gz)
D2Q9 ! velocity set
Poiseuille ! boundary condition
! note: in the following, boundary types: periodic,velocity, pressure
! are allowed. if "velocity" is applied, please strictly follow the format "velocity (%lf, %lf, %lf)".
velocity (0.1, 0.00, 0.0) xmin face
pressure 1.0 xmax face
velocity (0.1, 0.00, 0.0) ymin face
velocity (0.1, 0.00, 0.0) ymax face,
nonslip zmin face
nonslip zmax face
------------------- initial velocity field
(0.1, 0.00, 0.0)

View File

@ -17,12 +17,12 @@ string defaultParaFile = "./bin/cfd_para.hypara";
int ndim = 2;
int nparafile = 1;
int nsimutask = 0;
string parafilename = "./bin/cfd_para_incompressible.hypara"
//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/cfd_para_incompressible.hypara";
//int nsimutask = 1;
//string parafilename = "./bin/grid_para.hypara";
@ -39,6 +39,9 @@ string parafilename = "./bin/cfd_para_incompressible.hypara"
//int nsimutask = 1;
//string parafilename = "./bin/grid_refine_para.hypara";
int nsimutask = 17;
string parafilename = "./bin/cfd_para.hypara";
//int nsimutask = 14;
//string parafilename = "./bin/integrative_solver.hypara";

View File

@ -0,0 +1,303 @@
Title = "finite-element data"
variables = x, y, z
zone n= 150, E= 150,f=FEpoint,et = triangle
100 80 0
99.9825 80.8375 0
99.9299 81.6736 0
99.8423 82.5067 0
99.7199 83.3354 0
99.563 84.1582 0
99.3717 84.9738 0
99.1464 85.7806 0
98.8875 86.5773 0
98.5955 87.3625 0
98.2709 88.1347 0
97.9142 88.8927 0
97.5261 89.6351 0
97.1073 90.3605 0
96.6584 91.0678 0
96.1803 91.7557 0
95.6739 92.423 0
95.1399 93.0684 0
94.5794 93.6909 0
93.9933 94.2895 0
93.3826 94.8629 0
92.7485 95.4103 0
92.092 95.9306 0
91.4143 96.423 0
90.7165 96.8866 0
90 97.3205 0
89.2659 97.7241 0
88.5156 98.0965 0
87.7503 98.4373 0
86.9714 98.7456 0
86.1803 99.0211 0
85.3784 99.2633 0
84.567 99.4716 0
83.7476 99.6457 0
82.9217 99.7854 0
82.0906 99.8904 0
81.2558 99.9605 0
80.4188 99.9956 0
79.5812 99.9956 0
78.7442 99.9605 0
77.9094 99.8904 0
77.0783 99.7854 0
76.2524 99.6457 0
75.433 99.4716 0
74.6216 99.2633 0
73.8197 99.0211 0
73.0286 98.7456 0
72.2497 98.4373 0
71.4844 98.0965 0
70.7341 97.7241 0
70 97.3205 0
69.2835 96.8866 0
68.5857 96.423 0
67.908 95.9306 0
67.2515 95.4103 0
66.6174 94.8629 0
66.0067 94.2895 0
65.4206 93.6909 0
64.8601 93.0684 0
64.3261 92.423 0
63.8197 91.7557 0
63.3416 91.0678 0
62.8927 90.3605 0
62.4739 89.6351 0
62.0858 88.8927 0
61.7291 88.1347 0
61.4045 87.3625 0
61.1125 86.5773 0
60.8536 85.7806 0
60.6283 84.9738 0
60.437 84.1582 0
60.2801 83.3354 0
60.1577 82.5067 0
60.0701 81.6736 0
60.0175 80.8375 0
60 80 0
60.0175 79.1625 0
60.0701 78.3264 0
60.1577 77.4933 0
60.2801 76.6646 0
60.437 75.8418 0
60.6283 75.0262 0
60.8536 74.2194 0
61.1125 73.4227 0
61.4045 72.6375 0
61.7291 71.8653 0
62.0858 71.1073 0
62.4739 70.3649 0
62.8927 69.6395 0
63.3416 68.9322 0
63.8197 68.2443 0
64.3261 67.577 0
64.8601 66.9316 0
65.4206 66.3091 0
66.0067 65.7105 0
66.6174 65.1371 0
67.2515 64.5897 0
67.908 64.0694 0
68.5857 63.577 0
69.2835 63.1134 0
70 62.6795 0
70.7341 62.2759 0
71.4844 61.9035 0
72.2497 61.5627 0
73.0286 61.2544 0
73.8197 60.9789 0
74.6216 60.7367 0
75.433 60.5284 0
76.2524 60.3543 0
77.0783 60.2146 0
77.9094 60.1096 0
78.7442 60.0395 0
79.5812 60.0044 0
80.4188 60.0044 0
81.2558 60.0395 0
82.0906 60.1096 0
82.9217 60.2146 0
83.7476 60.3543 0
84.567 60.5284 0
85.3784 60.7367 0
86.1803 60.9789 0
86.9714 61.2544 0
87.7503 61.5627 0
88.5156 61.9035 0
89.2659 62.2759 0
90 62.6795 0
90.7165 63.1134 0
91.4143 63.577 0
92.092 64.0694 0
92.7485 64.5897 0
93.3826 65.1371 0
93.9933 65.7105 0
94.5794 66.3091 0
95.1399 66.9316 0
95.6739 67.577 0
96.1803 68.2443 0
96.6584 68.9322 0
97.1073 69.6395 0
97.5261 70.3649 0
97.9142 71.1073 0
98.2709 71.8653 0
98.5955 72.6375 0
98.8875 73.4227 0
99.1464 74.2194 0
99.3717 75.0262 0
99.563 75.8418 0
99.7199 76.6646 0
99.8423 77.4933 0
99.9299 78.3264 0
99.9825 79.1625 0
1 2 1
2 3 2
3 4 3
4 5 4
5 6 5
6 7 6
7 8 7
8 9 8
9 10 9
10 11 10
11 12 11
12 13 12
13 14 13
14 15 14
15 16 15
16 17 16
17 18 17
18 19 18
19 20 19
20 21 20
21 22 21
22 23 22
23 24 23
24 25 24
25 26 25
26 27 26
27 28 27
28 29 28
29 30 29
30 31 30
31 32 31
32 33 32
33 34 33
34 35 34
35 36 35
36 37 36
37 38 37
38 39 38
39 40 39
40 41 40
41 42 41
42 43 42
43 44 43
44 45 44
45 46 45
46 47 46
47 48 47
48 49 48
49 50 49
50 51 50
51 52 51
52 53 52
53 54 53
54 55 54
55 56 55
56 57 56
57 58 57
58 59 58
59 60 59
60 61 60
61 62 61
62 63 62
63 64 63
64 65 64
65 66 65
66 67 66
67 68 67
68 69 68
69 70 69
70 71 70
71 72 71
72 73 72
73 74 73
74 75 74
75 76 75
76 77 76
77 78 77
78 79 78
79 80 79
80 81 80
81 82 81
82 83 82
83 84 83
84 85 84
85 86 85
86 87 86
87 88 87
88 89 88
89 90 89
90 91 90
91 92 91
92 93 92
93 94 93
94 95 94
95 96 95
96 97 96
97 98 97
98 99 98
99 100 99
100 101 100
101 102 101
102 103 102
103 104 103
104 105 104
105 106 105
106 107 106
107 108 107
108 109 108
109 110 109
110 111 110
111 112 111
112 113 112
113 114 113
114 115 114
115 116 115
116 117 116
117 118 117
118 119 118
119 120 119
120 121 120
121 122 121
122 123 122
123 124 123
124 125 124
125 126 125
126 127 126
127 128 127
128 129 128
129 130 129
130 131 130
131 132 131
132 133 132
133 134 133
134 135 134
135 136 135
136 137 136
137 138 137
138 139 138
139 140 139
140 141 140
141 142 141
142 143 142
143 144 143
144 145 144
145 146 145
146 147 146
147 148 147
148 149 148
149 150 149
150 1 150