新添B25、B26、F12、Y03算例;部分算例参数及文档更新

This commit is contained in:
hechao 2024-06-28 15:23:07 +08:00
parent 188d76d348
commit f674abb75a
44 changed files with 6707 additions and 16 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,195 @@
#########################################################################
# General Control Parameter #
#########################################################################
// maxSimuStep: The max simulation step, don't care simulation is restart or not.
// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved.
// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual 'res.dat' saved.
int maxSimuStep = 80000;
int intervalStepFlow = 2000;
int intervalStepPlot = 1000;
int intervalStepForce = 10;
int intervalStepRes = 10;
// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow.
// 0 -- no precondition process. (default, mach > 0.3)
// 1 -- carry out precondition process. (mach number <= 0.3)
#########################################################################
# Inflow Parameter #
#########################################################################
// refMachNumber: Mach number.
// attackd: Angle of attack.
// angleSlide: Angle of sideslip.
// inflowParaType: The type of inflow parameters.
// 0 -- the nondimensional conditions.
// 1 -- the flight conditions.
// 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m.
// refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// refDimensionalPressure: Dimensional reference pressure, or the total pressure only for the experiment condition.
// height: Fly height, unit of km.
// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter.Common dimensions like:
// 1 dm = 0.1 m.
// 1 cm = 0.01 m.
// 1 mm = 0.001m.
// 1 inch = 0.0254m.
// 1 foot = 12 inches = 0.3048m.
// 1 yard = 3 feet = 0.9144m.
// forceRefenenceLength, forceRefenenceLengthSpanWise, forceRefenenceArea: Reference length, SpanWise length and area, independent of grid unit.
// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent of grid unit.
double refMachNumber = 0.1;
double attackd = 0.0;
double angleSlide = 0.00;
int inflowParaType = 0;
double refReNumber = 20.0;
double refDimensionalTemperature = 288.15;
//int inflowParaType = 1;
//double height = 0.001;
double gridScaleFactor = 1.0;
double forceReferenceLengthSpanWise = 1.0; // unit of meter.
double forceReferenceLength = 1.0; // unit of meter.
double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter.
#########################################################################
# Physical models #
#########################################################################
// iviscous: Viscous model.
// 0 -- Euler.
// 1 -- Lamilar.
// 3 -- 1eq turbulent.
// 4 -- 2eq turbulent.
// viscousName: Laminar or tubulent model.
// -- "1eq-sa", when iviscous = 3.
// -- "2eq-kw-menter-sst", when iviscous = 4.
// DESType: Type of DES.
// 0 -- RANS.(default)
// 1 -- DES.
// 2 -- DDES.
// 3 -- IDDES.
//int viscousType = 0;
//string viscousName = "Euler";
int viscousType = 1;
string viscousName = "laminar";
//int viscousType = 3;
//string viscousName = "1eq-sa";
//int viscousType = 4;
//string viscousName = "2eq-kw-menter-sst";
int DESType = 0;
int roeEntropyFixMethod = 6;
double roeEntropyScale = 1.0;
#########################################################################
# Spatial Discretisation #
#########################################################################
#*******************************************************************
# Struct Solver *
#*******************************************************************
// str_limiter_name: Limiter of struct grid.
// -- "3rdsmooth", "smooth".
// -- "nolim", no limiter.
string str_limiter_name = "smooth";
#*******************************************************************
# UnStruct Solver *
#*******************************************************************
// uns_limiter_name: Limiter of Unstruct grid.
// -- "vencat".
// -- "1st", meaning accuracy of first-order.
// -- "nolim", no limiter.
// venkatCoeff: Coefficient of vencat limiter, when uns_limiter_name = 'vencat'.
// The smaller the value, the more robust it is.
string uns_limiter_name = "vencat";
double venkatCoeff = 5.0;
#########################################################################
# Temporal Discretisation #
#########################################################################
// iunsteady: Steady or unsteady.
// 0 -- steady.
// 1 -- unsteay.
// CFLEnd: The CFL number, [0.1, 100].
// The bigger the value, the convergence faster but lower robustness.
// nLUSGSSweeps: Number of Sub-iteration of LU-SGS.
// 0 -- is recommended for structured solver.
// 1-3 -- is recommended for unstructured solver.
int ifLowSpeedPrecon = 1;
int iunsteady = 0;
int ifLocalTimeStep = 0;
int CFLMethod = 1;
double CFLStart = 1.0;
double CFLEnd = 30.0;
int CFLVaryStep = 200;
double turbCFLScale = 2.0;
#########################################################################
# Multi-Grid parameters #
#########################################################################
// nMGLevel: The number of Multi-Grid level.
// = 1 -- single-level.
// > 1 -- multi-level.
// flowInitStep: Flow initialization step, 0 - 500 is suggested.
// Multi-Grid : Number of steps computing on coarse grid, during flow initialization.
// Single-Grid: Number of steps computing using first-order with vanleer, during flow initialization.
int nMGLevel = 1;
int flowInitStep = 0;
#########################################################################
# File In or Out #
#########################################################################
// gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory.
// IMPORTANT WARNING: The file index should be ignored,
// e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts,
// Please use 'rae2822_hybrid2d__4.fts' here!
// plotFieldType: If dump out the whole field results to tecplot or not, 0 / 1.
string gridfile = "./grid/cylinderUnstr_steady__4.fts";
int plotFieldType = 1;
int visualfileType = 0;
// ----------------- Advanced Parameters, DO NOT care it ----------------
// nVisualVariables: Number of variables want to be dumped for tecplot visualization.
// visualVariables: Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- viscosityLaminar(7), viscosityTurbulent(8),
// -- vorticity_x(9), vorticity_y(10), vorticity_z(11), vorticityMagnitude(12),
// -- strain_rate(13), Q_criteria(14), Cp(15), timeStep(16), volume(17),
// -- modeledTKE(18), modeleddissipationrate(19), SSTF1(20), SSTF2(21).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big.
int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
// limitVariables: Limit model (It is useful only if limitVector is 0).
// 0 -- limit only for pressure and denstiny, then get the min value.
// 1 -- limit for every variables, then get the min value.
// limitVector:
// 0 -- Each variable use the same limiter coefficient.
// 1 -- Each variable use the respective limiter coefficients.
// reconmeth:
// 0 -- When reconstruct face value, Q+, Q- use respective limiter coefficients.
// 1 -- Q+, Q- use the min limiter coefficients of left and right cell.
int reconmeth = 1;
int limitVariables = 0;
int limitVector = 0;

View File

@ -0,0 +1,39 @@
#########################################################################
# Grid data type #
#########################################################################
// gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid.
// 1 -- Structured grid.
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// axisRotateOrder : axis rotating order.
// 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE
// 1 -- HyperFLOW( 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 nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
int from_gtype = 2;
#########################################################################
# File path #
#########################################################################
// from_gfile: path of original data file for unstructure grid convert from.
// out_gfile: path of target file for grid convert to, *.fts type of file usually.
string from_gfile = "./grid/cylinderUnstr_steady.cgns";
string out_gfile = "./grid/cylinderUnstr_steady.fts";

View File

@ -0,0 +1,51 @@
string title = "PHengLEI Main Parameter Control File";
// IMPORTANT NOTICEDON NOT MODIFY THE FOWLLOWING LINE
string defaultParaFile = "./bin/cfd_para.hypara";
// ndim: Dimensional of the grid: 2 or 3.
// nparafile: the number of the parameter file.
// 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 HyperFLOW 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.
// 4 -- Knowledge repository / examples of PHengLEI-API.
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 = 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 parafilename2 = "./bin/overset_config.hypara";

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,201 @@
#########################################################################
# General Control Parameter #
#########################################################################
// maxSimuStep: The max simulation step, don't care simulation is restart or not.
// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved.
// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual 'res.dat' saved.
int maxSimuStep = 6000;
int intervalStepFlow = 1000;
int intervalStepPlot = 200;
int intervalStepForce = 1;
int intervalStepRes = 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)
#########################################################################
# Inflow Parameter #
#########################################################################
// refMachNumber: Mach number.
// attackd: Angle of attack.
// angleSlide: Angle of sideslip.
// inflowParaType: The type of inflow parameters.
// 0 -- the nondimensional conditions.
// 1 -- the flight conditions.
// 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m.
// refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// refDimensionalPressure: Dimensional reference pressure, or the total pressure only for the experiment condition.
// height: Fly height, unit of km.
// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter.Common dimensions like:
// 1 dm = 0.1 m.
// 1 cm = 0.01 m.
// 1 mm = 0.001m.
// 1 inch = 0.0254m.
// 1 foot = 12 inches = 0.3048m.
// 1 yard = 3 feet = 0.9144m.
// forceRefenenceLength, forceRefenenceLengthSpanWise, forceRefenenceArea: Reference length, SpanWise length and area, independent of grid unit.
// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent of grid unit.
double refMachNumber = 0.02;
double attackd = 0.0;
double angleSlide = 0.00;
int inflowParaType = 0;
double refReNumber = 200.0;
double refDimensionalTemperature = 288.15;
//int inflowParaType = 1;
//double height = 0.001;
double gridScaleFactor = 1.0;
double forceReferenceLengthSpanWise = 1.0; // unit of meter.
double forceReferenceLength = 1.0; // unit of meter.
double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter.
#########################################################################
# Physical models #
#########################################################################
// iviscous: Viscous model.
// 0 -- Euler.
// 1 -- Lamilar.
// 3 -- 1eq turbulent.
// 4 -- 2eq turbulent.
// viscousName: Laminar or tubulent model.
// -- "1eq-sa", when iviscous = 3.
// -- "2eq-kw-menter-sst", when iviscous = 4.
// DESType: Type of DES.
// 0 -- RANS.(default)
// 1 -- DES.
// 2 -- DDES.
// 3 -- IDDES.
//int viscousType = 0;
//string viscousName = "Euler";
int viscousType = 1;
string viscousName = "laminar";
//int viscousType = 3;
//string viscousName = "1eq-sa";
//int viscousType = 4;
//string viscousName = "2eq-kw-menter-sst";
int DESType = 0;
int roeEntropyFixMethod = 6;
double roeEntropyScale = 1.0;
#########################################################################
# Spatial Discretisation #
#########################################################################
#*******************************************************************
# Struct Solver *
#*******************************************************************
// str_limiter_name: Limiter of struct grid.
// -- "3rdsmooth", "smooth".
// -- "nolim", no limiter.
string str_limiter_name = "smooth";
#*******************************************************************
# UnStruct Solver *
#*******************************************************************
// uns_limiter_name: Limiter of Unstruct grid.
// -- "vencat".
// -- "1st", meaning accuracy of first-order.
// -- "nolim", no limiter.
// venkatCoeff: Coefficient of vencat limiter, when uns_limiter_name = 'vencat'.
// The smaller the value, the more robust it is.
string uns_limiter_name = "vencat";
double venkatCoeff = 5.0;
#########################################################################
# Temporal Discretisation #
#########################################################################
// iunsteady: Steady or unsteady.
// 0 -- steady.
// 1 -- unsteay.
// CFLEnd: The CFL number, [0.1, 100].
// The bigger the value, the convergence faster but lower robustness.
// nLUSGSSweeps: Number of Sub-iteration of LU-SGS.
// 0 -- is recommended for structured solver.
// 1-3 -- is recommended for unstructured solver.
int ifLowSpeedPrecon = 1;
int iunsteady = 1;
double physicalTimeStep = 0.017;
int min_sub_iter = 60;
int max_sub_iter = 60;
double tol_sub_iter = 0.001;
int aleStartStrategy = 1;
int ifStartFromSteadyResults = 0;
int ifLocalTimeStep = 0;
int CFLMethod = 1;
double CFLStart = 1.0;
double CFLEnd = 100.0;
int CFLVaryStep = 30;
double turbCFLScale = 2.0;
#########################################################################
# Multi-Grid parameters #
#########################################################################
// nMGLevel: The number of Multi-Grid level.
// = 1 -- single-level.
// > 1 -- multi-level.
// flowInitStep: Flow initialization step, 0 - 500 is suggested.
// Multi-Grid : Number of steps computing on coarse grid, during flow initialization.
// Single-Grid: Number of steps computing using first-order with vanleer, during flow initialization.
int nMGLevel = 1;
int flowInitStep = 0;
#########################################################################
# File In or Out #
#########################################################################
// gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory.
// IMPORTANT WARNING: The file index should be ignored,
// e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts,
// Please use 'rae2822_hybrid2d__4.fts' here!
// plotFieldType: If dump out the whole field results to tecplot or not, 0 / 1.
string gridfile = "./grid/cylinderUnstr_unsteady__4.fts";
int plotFieldType = 1;
int visualfileType = 0;
// ----------------- Advanced Parameters, DO NOT care it ----------------
// nVisualVariables: Number of variables want to be dumped for tecplot visualization.
// visualVariables: Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- viscosityLaminar(7), viscosityTurbulent(8),
// -- vorticity_x(9), vorticity_y(10), vorticity_z(11), vorticityMagnitude(12),
// -- strain_rate(13), Q_criteria(14), Cp(15), timeStep(16), volume(17),
// -- modeledTKE(18), modeleddissipationrate(19), SSTF1(20), SSTF2(21).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big.
int nVisualVariables = 8;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15];
// limitVariables: Limit model (It is useful only if limitVector is 0).
// 0 -- limit only for pressure and denstiny, then get the min value.
// 1 -- limit for every variables, then get the min value.
// limitVector:
// 0 -- Each variable use the same limiter coefficient.
// 1 -- Each variable use the respective limiter coefficients.
// reconmeth:
// 0 -- When reconstruct face value, Q+, Q- use respective limiter coefficients.
// 1 -- Q+, Q- use the min limiter coefficients of left and right cell.
int reconmeth = 1;
int limitVariables = 0;
int limitVector = 0;

View File

@ -0,0 +1,39 @@
#########################################################################
# Grid data type #
#########################################################################
// gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid.
// 1 -- Structured grid.
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// axisRotateOrder : axis rotating order.
// 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE
// 1 -- HyperFLOW( 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 nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
int from_gtype = 2;
#########################################################################
# File path #
#########################################################################
// from_gfile: path of original data file for unstructure grid convert from.
// out_gfile: path of target file for grid convert to, *.fts type of file usually.
string from_gfile = "./grid/cylinderUnstr_unsteady.cgns";
string out_gfile = "./grid/cylinderUnstr_unsteady.fts";

View File

@ -0,0 +1,51 @@
string title = "PHengLEI Main Parameter Control File";
// IMPORTANT NOTICEDON NOT MODIFY THE FOWLLOWING LINE
string defaultParaFile = "./bin/cfd_para.hypara";
// ndim: Dimensional of the grid: 2 or 3.
// nparafile: the number of the parameter file.
// 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 HyperFLOW 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.
// 4 -- Knowledge repository / examples of PHengLEI-API.
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 = 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 parafilename2 = "./bin/overset_config.hypara";

View File

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

View File

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

View File

@ -0,0 +1,66 @@
# 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 = 5;
string bcName = "Overset_left";
{
int bcType = 1000;
}
string bcName = "Overset_right";
{
int bcType = 1000;
}
string bcName = "Wall_left";
{
string bodyName = "body1";
int bcType = 2;
}
string bcName = "Wall_right";
{
string bodyName = "body2";
int bcType = 2;
}
string bcName = "Farfield";
{
string bodyName = "body0";
int bcType = 4;
}
# '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

@ -0,0 +1,209 @@
#########################################################################
# General Control Parameter #
#########################################################################
// maxSimuStep: The max simulation step, don't care simulation is restart or not.
// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved.
// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved.
// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// intervalStepRes: The step intervals for residual 'res.dat' saved.
int maxSimuStep = 600;
int intervalStepFlow = 200;
int intervalStepPlot = 20;
int intervalStepForce = 1;
int intervalStepRes = 1;
#########################################################################
# Inflow Parameter #
#########################################################################
// refMachNumber: Mach number.
// attackd: Angle of attack.
// angleSlide: Angle of sideslip.
// inflowParaType: The type of inflow parameters.
// 0 -- the nondimensional conditions.
// 1 -- the flight conditions.
// 2 -- the experiment conditions.
// 3 -- the subsonic boundary conditions.
// refReNumber: Reynolds number, which is based unit length, unit of 1/m.
// refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition.
// refDimensionalPressure: Dimensional reference pressure, or the total pressure only for the experiment condition.
// height: Fly height, unit of km.
// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter.Common dimensions like:
// 1 dm = 0.1 m.
// 1 cm = 0.01 m.
// 1 mm = 0.001m.
// 1 inch = 0.0254m.
// 1 foot = 12 inches = 0.3048m.
// 1 yard = 3 feet = 0.9144m.
// forceRefenenceLength, forceRefenenceLengthSpanWise, forceRefenenceArea: Reference length, SpanWise length and area, independent of grid unit.
// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent of grid unit.
int ifLowSpeedPrecon = 1;
double refMachNumber = 0.02058;
double attackd = 0.00;
double angleSlide = 0.00;
int inflowParaType = 0;
double refReNumber = 4.71229E5;
double refDimensionalTemperature = 293.15;
//int inflowParaType = 1;
//double height = 8.0;
//int inflowParaType = 2;
//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2).
//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)).
double gridScaleFactor = 1;
double forceReferenceLengthSpanWise = 1.0; // unit of meter.
double forceReferenceLength = 1.0; // unit of meter.
double forceReferenceArea = 1.0; // unit of meter^2.
double TorqueRefX = 0.0; // unit of meter.
double TorqueRefY = 0.0; // unit of meter.
double TorqueRefZ = 0.0; // unit of meter.
#########################################################################
# Physical models #
#########################################################################
// viscousType : Viscous model.
// 0 -- Euler.
// 1 -- Lamilar.
// 3 -- 1eq turbulent.
// 4 -- 2eq turbulent.
// viscousName: Laminar or tubulent model.
// -- "1eq-sa", when viscousType = 3.
// -- "2eq-kw-menter-sst", when viscousType = 4.
// DESType: Type of DES.
// 0 -- RANS.(default)
// 1 -- DES.
// 2 -- DDES.
// 3 -- IDDES.
//int viscousType = 0;
//string viscousName = "Euler";
int viscousType = 1;
string viscousName = "laminar";
//int viscousType = 3;
//string viscousName = "1eq-sa";
//int viscousType = 4;
//string viscousName = "2eq-kw-menter-sst";
int DESType = 0;
int roeEntropyFixMethod = 3;
double roeEntropyScale = 1.0;
#########################################################################
# Spatial Discretisation #
#########################################################################
#*******************************************************************
# Struct Solver *
#*******************************************************************
// inviscidSchemeName: Spatial discretisation scheme of struct grid.
// Using this when solve structered grid or hybrid.
// -- "roe", "vanleer", "ausm+up", "ausmpw".
// str_limiter_name: Limiter of struct grid.
// -- "3rdsmooth", "smooth".
// -- "nolim", no limiter.
string inviscidSchemeName = "roe";
string str_limiter_name = "smooth";
#*******************************************************************
# UnStruct Solver *
#*******************************************************************
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid.
// Using this when solve Unstructered grid or hybrid.
// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle".
// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpwplus".
// uns_limiter_name: Limiter of Unstruct grid.
// -- "vencat", "barth".
// -- "1st", meaning accuracy of first-order.
// -- "nolim", no limiter.
// venkatCoeff: Coefficient of vencat limiter, when uns_limiter_name = 'vencat'.
// The smaller the value, the more robust it is.
string uns_scheme_name = "roe";
string uns_limiter_name = "vencat";
double venkatCoeff = 5;
#########################################################################
# Temporal Discretisation #
#########################################################################
// iunsteady: Steady or unsteady.
// 0 -- steady.
// 1 -- unsteay.
// CFLEnd: The CFL number, [0.1, 100].
// The bigger the value, the convergence faster but lower robustness.
// nLUSGSSweeps: Number of Sub-iteration of LU-SGS.
// 1 -- is recommended for structured solver.
// 1-3 -- is recommended for unstructured solver.
int iunsteady = 1;
double physicalTimeStep = 0.01944;
int min_sub_iter = 30;
int max_sub_iter = 30;
double tol_sub_iter = 1.0e-5;
int aleStartStrategy = 1;
int ifStartFromSteadyResults = 0;
int nLUSGSSweeps = 1;
int CFLMethod = 1;
double CFLStart = 0.1;
double CFLEnd = 100.0;
int CFLVaryStep = 20;
#########################################################################
# Multi-Grid parameters #
#########################################################################
// nMGLevel: The number of Multi-Grid level.
// = 1 -- single-level.
// > 1 -- multi-level.
// flowInitStep: Flow initialization step, 0 - 500 is suggested.
// Multi-Grid : Number of steps computing on coarse grid, during flow initialization.
// Single-Grid: Number of steps computing using first-order with vanleer, during flow initialization.
int nMGLevel = 1;
int flowInitStep = 0;
#########################################################################
# File In or Out #
#########################################################################
// gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory.
// IMPORTANT WARNING: The file index should be ignored,
// e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts,
// Please use 'rae2822_hybrid2d__4.fts' here!
// plotFieldType: If dump out the whole field results to tecplot or not, 0 / 1.
int plotFieldType = 1;
int visualfileType = 0;
// ----------------- Advanced Parameters, DO NOT care it ----------------
// nVisualVariables: Number of variables want to be dumped for tecplot visualization.
// visualVariables: Variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6),
// -- viscosityLaminar(7), viscosityTurbulent(8),
// -- vorticity_x(9), vorticity_y(10), vorticity_z(11), vorticityMagnitude(12),
// -- strain_rate(13), Q_criteria(14), Cp(15), timeStep(16), volume(17),
// -- modeledTKE(18), modeleddissipationrate(19), SSTF1(20), SSTF2(21).
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
// Variables order must from small to big.
int nVisualVariables = 9;
int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 14, 15];
// limitVariables: Limit model (It is useful only if limitVector is 0).
// 0 -- limit only for pressure and denstiny, then get the min value.
// 1 -- limit for every variables, then get the min value.
// limitVector:
// 0 -- Each variable use the same limiter coefficient.
// 1 -- Each variable use the respective limiter coefficients.
// reconmeth:
// 0 -- When reconstruct face value, Q+, Q- use respective limiter coefficients.
// 1 -- Q+, Q- use the min limiter coefficients of left and right cell.
int reconmeth = 1;
int limitVariables = 0;
int limitVector = 0;

View File

@ -0,0 +1,40 @@
#########################################################################
# Grid data type #
#########################################################################
// gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid.
// 1 -- Structured grid.
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// axisRotateOrder : axis rotating order.
// 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE
// 1 -- HyperFLOW( 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 nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
int from_gtype = 2;
#########################################################################
# File path #
#########################################################################
// from_gfile: path of original data file for unstructure grid convert from.
// out_gfile: path of target file for grid convert to, *.fts type of file usually.
//int numberOfGridFile = 3;
//string from_gfile = "./grid/background-unstr.cgns";
//string from_gfile1 = "./grid/downLeft-unstr.cgns";
string from_gfile = "./grid/upRight-unstr.cgns";
string out_gfile = "./grid/upRight-unstr.fts";

View File

@ -0,0 +1,40 @@
#########################################################################
# Grid data type #
#########################################################################
// gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid.
// 1 -- Structured grid.
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// axisRotateOrder : axis rotating order.
// 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE
// 1 -- HyperFLOW( 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 nAxisRotateTimes = 0;
int axisRotateOrder[] = [1, 2, 3];
double axisRotateAngles[] = [0.0, 0.0, 0.0];
int from_gtype = 2;
#########################################################################
# File path #
#########################################################################
// from_gfile: path of original data file for unstructure grid convert from.
// out_gfile: path of target file for grid convert to, *.fts type of file usually.
//int numberOfGridFile = 3;
//string from_gfile = "./grid/background-unstr.cgns";
//string from_gfile1 = "./grid/downLeft-unstr.cgns";
string from_gfile = "./grid/upRight-unstr.cgns";
string out_gfile = "./grid/upRight-unstr.fts";

View File

@ -0,0 +1,36 @@
#########################################################################
# Grid data type #
#########################################################################
// gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid.
// 1 -- Structured grid.
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
// axisRotateOrder : axis rotating order.
// 1 -- X-axis.
// 2 -- Y-axis.
// 3 -- Z-axis.
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
// from_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE
// 1 -- HyperFLOW( 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 gridobj = 3;
int gridtype = 0;
#########################################################################
# 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/upRight-unstr.fts";
//string out_gfile = "./grid/upRight-unstr_merge.fts";
string from_gfile = "./grid/downLeft-unstr.fts";
string out_gfile = "./grid/downLeft-unstr_merge.fts";

View File

@ -0,0 +1,65 @@
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.
// 4 -- Knowledge repository / examples of PHengLEI-API.
int ndim = 3;
int nparafile = 3;
int nsimutask = 0;
//string parafilename = "./bin/cfd_para_subsonic.hypara";
string parafilename = "./bin/cfd_para_transonic.hypara";
//string parafilename = "./bin/cfd_para_supersonic.hypara";
//string parafilename = "./bin/cfd_para_hypersonic.hypara";
//string parafilename = "./bin/incompressible.hypara";
string parafilename1 = "./bin/overset_config.hypara";
string parafilename2 = "./bin/kinetic_para.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 = 4;
//string parafilename = "./bin/repository.hypara";
//int nsimutask = 5;
//string parafilename = "./bin/overset_grid_view.hypara";
//int nsimutask = 6;
//string parafilename = "./bin/overset_config.hypara";
//int nsimutask = 13;
//string parafilename = "./bin/lbm_para.hypara";
//int nsimutask = 14;
//string parafilename = "./bin/integrative_solver.hypara";
//int nsimutask = 99;
//string parafilename = "./bin/post_processing.hypara";
// ---------------- Advanced Parameters, DO NOT care it ----------------
int numberOfGridProcessor = 0;
// ATP read
//@string parafilename1 = ""
//@string parafilename2 = "";

View File

@ -0,0 +1,119 @@
#########################################################################
# Parameter for RBD #
#########################################################################
int codeOfAleModel = 1;
int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd;
#########################################################################
# motive information #
#########################################################################
//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;
int numberOfMovingBodies = 3;
############################## body0 ##############################
// mass of parts.
double mass_0 = 1.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.
double massCenter_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.
double massCenterVelocity_0[] = 0.0, 0.0, 0.0;
// 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.
double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0;
// the moving method of parts.
int RBDMethod_0 = 0;
double amplitude_0 = 0.0;
double reduceFrequency_0 = 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_0[] = 0.0 ,0.0 ,0.0 ;
// 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;
############################## body1 ##############################
// mass of parts.
double mass_1 = 1.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz
double massMatrix_1[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
// initial six DOF position information of parts. xc yc zc.
double massCenter_1[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_1[] = 0.0 , 0.0, 0.0;
// initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_1[] = 0.0, 0.0, 0.0;
// initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_1[] = 0.0, 0.0, 0.0;
// the object that the parts belong to.
int fartherIndex_1 = -1;
// the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_1[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0;
// the moving method of parts.
int RBDMethod_1 = 17;
int direction_1 = -1;
//Angle = rotateFrequency/refDimensionalVelocity*physicalTimeStep*360 per step
//RPM-r/min = rotateFrequency*60
double rotateFrequency_1 = 1.2;
// gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_1 = 0.0;
// dimensional physical time for additional force(s).
double addedForceTime_1[] = 0.0;
// dimensional massCenterPosition for additional force(s).
double addedForcePosition_1[] = 0.0, 0.0, 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_1[] = 0.0 ,0.0 ,0.0 ;
// additional moment(inertia system) mX mY mZ.
double addedMoment_1[] = 0.0 ,0.0 ,0.0 ;
// the deformation method of the parts.
int morphing_1 = 0;
############################## body2 ##############################
// mass of parts.
double mass_2 = 1.0;
// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz
double massMatrix_2[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0;
// initial six DOF position information of parts. xc yc zc.
double massCenter_2[] = 0.0, 0.0, 0.0;
// initial six DOF position information of parts. angleX angleY angleZ.
double attitudeAngle_2[] = 0.0 , 0.0, 0.0;
// initial six DOF move information of parts. vc vy vz.
double massCenterVelocity_2[] = 0.0, 0.0, 0.0;
// initial six DOF move information of parts. omigX omigY omigZ.
double angularVelocity_2[] = 0.0, 0.0, 0.0;
// the object that the parts belong to.
int fartherIndex_2 = -1;
// the assembly position of the parts. xc yc zc angleX angleY angleZ.
double configPamameter_2[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0;
// the moving method of parts.
int RBDMethod_2 = 17;
int direction_2 = -1;
// Angle = rotateFrequency/refDimensionalVelocity*physicalTimeStep*360 per step
// RPM-r/min = rotateFrequency*60
double rotateFrequency_2 = 1.2;
// gravity of parts (along negative direction in Y-axis, eg. 9.8).
double gravity_2 = 0.0;
// dimensional physical time for additional force(s).
double addedForceTime_2[] = 0.0;
// dimensional massCenterPosition for additional force(s).
double addedForcePosition_2[] = 0.0, 0.0, 0.0;
// additional force(inertia system) fX fY fZ.
double addedForce_2[] = 0.0 ,0.0 ,0.0 ;
// additional moment(inertia system) mX mY mZ.
double addedMoment_2[] = 0.0 ,0.0 ,0.0 ;
// the deformation method of the parts.
int morphing_2 = 0;

View File

@ -0,0 +1,49 @@
// ----------------- overlap configuration ------------------------------
// numberOfGridGroups: The number of grid groups.
// codeOfOversetGrid: Overlapping(overset) grid or not.
// 0 -- NON-overlapping grid.
// 1 -- Overlapping grid.
// 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 = 1;
int numberOfGridGroups = 3;
string gridfile = "./grid/background-unstr__64.fts";
string gridfile1 = "./grid/downLeft-unstr_merge__64.fts";
string gridfile2 = "./grid/upRight-unstr_merge__64.fts";
double toleranceForOversetBox = 0.00001;
int symetryOrNot = 0;
int readInAuxiliaryInnerGrid = 0;
int twoOrderInterpolationOrNot = 0;
int keyEnlargeOfActiveNodes = 0;
int nCommunicateCellIBlank = 2;
int outTecplotOverset = 0;
int outPutOversetVisualization = 0;
int oversetInterpolationMethod = 0;
int oversetGridConfigMethod = 1;
int nLayerOfCellsOfCutting = 3;
double walldistMainZone = 5.0;

View File

@ -0,0 +1,28 @@
// pgridtype: The grid type.
// 0 -- unstruct grid.
// 1 -- struct grid.
// maxproc: The number of partition zones that want to be divided into,
// which is equal to the number of CPU processors you want.
// Usually, 50~100 thousands structured cells per CPU-Core is suggested.
// 30~70 thousands unstructured cells per CPU-Core is suggested.
// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts).
// partition_grid_file: Target partition grid file(PHengLEI type, *.fts).
int numberOfGridFile = 3;
int pgridtype = 0;
int pgridtype1 = 0;
int pgridtype2 = 0;
int maxproc = 64;
int maxproc1 = 64;
int maxproc2 = 64;
string original_grid_file = "./grid/background-unstr.fts";
string original_grid_file1 = "./grid/downLeft-unstr_merge.fts";
string original_grid_file2 = "./grid/upRight-unstr_merge.fts";
// numberOfMultigrid: Number of multi-grid levels, ONLY used for structured grid.
// 1 -- single level.
// 2 -- 2 level.
// N -- N level,..., et al.
int numberOfMultigrid = 1;

View File

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

View File

@ -76,11 +76,13 @@ B 非结构
| 二维非结构S-K低速平板转捩模拟 | B17_TwoD_Plate_S-KSR_SST_Unstruct_4CPU |
| 三维非结构CRM-HL高升力外形模拟 | B18_ThreeD_CRM-HL_Level-B_SA_Unstruct_1024CPU |
| 三维非结构TrapWing外形模拟 | B19_ThreeD_TrapWing_SA_AoA13_256CPU |
| 二维非结构NACA0012低速绕流Gmresh | B20_TwoD_NACA0012_SA_Gmresh_Unstruct_1CPU |
| 三维非结构球头高速绕流Gmresh | B21_ThreeD_Sphere_Laminar_Gmresh_Unstruct_1CPU |
| 二维非结构NACA0012低速绕流GMRES | B20_TwoD_NACA0012_SA_GMRES_Unstruct_1CPU |
| 三维非结构球头高速绕流GMRES | B21_ThreeD_Sphere_Laminar_GMRES_Unstruct_1CPU |
| 三维非结构Rotor67转子叶片多参考系 | B22_ThreeD_Rotor67_SngleZone_RotatingFrame_6CPU |
| 三维非结构Stage35多参考系、掺混面 | B23_ThreeD_Stage35_MultiZone_MixingPlane_1CPU |
| 三维非结构Aachen 涡轮(周期边界) | B24_ThreeD_Aachen-row1_SngleZone_Periodicity_4CPU |
| 二维非结构圆柱(定常低速预处理) | B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU |
| 二维非结构圆柱(非定常低速预处理) | B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU |
C 混合
@ -112,18 +114,19 @@ E LES
F 重叠网格、动网格
| <span style="display:inline-block;width: 430px"> 中文 </span> | <span style="display:inline-block;width: 380px"> 英文 </span> |
| :------------------------- | :--------------------------------- |
| 二维结构30p30n重叠网格装配 | F01_TwoD_30p30n_OversetGrid_SA_Struct_4CPU |
| 三维结构多弹体重叠网格装配 | F02_ThreeD_duodan_OversetGrid_SA_Struct_8CPU |
| 二维非结构双0012重叠网格装配 | F03_TwoD_Dual0012_OversetConfig_Unstruct_4CPU |
| 二维非结构双0012重叠网格计算 | F04_TwoD_Dual0012_OversetGrid_InvisCal_Unstruct_4CPU |
| 三维非结构AEDC吊舱分离重叠网格装配 | F05_ThreeD_AEDC_OversetConfig_Unstruct_8CPU |
| 三维非结构AEDC吊舱分离非定常计算 | F06_ThreeD_AEDC_Separation_OversetGrid_Unsteady<br />_InvisCal_Unstruct_8CPU |
| 二维结构NACA0012翼型俯仰振荡 | F07_TwoD_NACA0012_PitchingMovement_SA_Struct_4CPU |
| 三维结构Finner弹体俯仰振荡 | F08_ThreeD_Finner_Laminar_Ma2d5_Struct_16CPU |
| 鸟类扑翼网格变形(弹簧法) | F09_ThreeD_Brid_GridDeformationSPRING_Unstruct_1CPU |
| 鸟类扑翼网格变形RBF方法 | F10_ThreeD_Brid_GridDeformationRBF_Unstruct_1CPU |
| 非结构三维M6机翼并行加密 | F11_ThreeD_M6_GridParallelRefine_Unstruct_4CPU |
| :----------------------------------------------------------- | :----------------------------------------------------------- |
| 二维结构30p30n重叠网格装配 | F01_TwoD_30p30n_OversetGrid_SA_Struct_4CPU |
| 三维结构多弹体重叠网格装配 | F02_ThreeD_duodan_OversetGrid_SA_Struct_8CPU |
| 二维非结构双0012重叠网格装配 | F03_TwoD_Dual0012_OversetConfig_Unstruct_4CPU |
| 二维非结构双0012重叠网格计算 | F04_TwoD_Dual0012_OversetGrid_InvisCal_Unstruct_4CPU |
| 三维非结构AEDC吊舱分离重叠网格装配 | F05_ThreeD_AEDC_OversetConfig_Unstruct_8CPU |
| 三维非结构AEDC吊舱分离非定常计算 | F06_ThreeD_AEDC_Separation_OversetGrid_Unsteady<br />_InvisCal_Unstruct_8CPU |
| 二维结构NACA0012翼型俯仰振荡 | F07_TwoD_NACA0012_PitchingMovement_SA_Struct_4CPU |
| 三维结构Finner弹体俯仰振荡 | F08_ThreeD_Finner_Laminar_Ma2d5_Struct_16CPU |
| 鸟类扑翼网格变形(弹簧法) | F09_ThreeD_Brid_GridDeformationSPRING_Unstruct_1CPU |
| 鸟类扑翼网格变形RBF方法 | F10_ThreeD_Brid_GridDeformationRBF_Unstruct_1CPU |
| 非结构三维M6机翼并行加密 | F11_ThreeD_M6_GridParallelRefine_Unstruct_4CPU |
| 非结构三维NREL PhaseⅥ风轮叶片 | F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU |
G 非平衡
@ -177,11 +180,13 @@ X 用户分享算例
Y 天河分支GPU算例
Y 异构计算算例
| <span style="display:inline-block;width: 355px"> 中文 </span> | <span style="display:inline-block;width: 380px"> 英文 </span> |
| :----------------------------------------------------------- | :----------------------------------------------------------- |
| 三维非结构客机标模模拟 | Y01_ThreeD_Chnt_SA_Unstruct_Branch_TH |
| 三维非结构客机标模模拟(天河分支) | Y01_ThreeD_Chnt_SA_Unstruct_Branch_TH |
| 三维非结构M6机翼华为昇腾分支 | Y02_ThreeD_M6_Unstruct_Branch_Ascend |
| 三维非结构M6机翼MC-LUSGS 天河分支) | Y03_ThreeD_M6_MC-LUSGS_Unstruct_Branch_TH |

View File

@ -0,0 +1,697 @@
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// PPPPP H H EEEEE N N GGGGG L EEEEE III +
// P P H H E NN N G L E I +
// PPPPP HHHHH EEEEE N N N G GG L EEEEE I +
// P H H E N N N G G L E I +
// P H H EEEEE N N GGGGG LLLLL EEEEE III +
//------------------------------------------------------------------------+
// Platform for Hybrid Engineering Simulation of Flows +
// China Aerodynamics Research and Development Center +
// (C) Copyright, Since 2010 +
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#########################################################################
# Default parameters for Grid conversion #
#########################################################################
// gridtype: Grid type for generation, conversion, reconstruction, merging.
// 0 -- Unstructured grid.
// 1 -- Structured grid.
// 2 -- Hybrid grid, include both of unstructured and structured grid.
// gridobj: Task type of grid treatment.
// 0 -- Grid generation of typical case, such as cylinder, flat plate, etc.
// 1 -- Grid conversion, from other grid data to PHenglEI( HyperFLOW ), such as Fluent, CGNS.
// 2 -- Grid refinement.
// 3 -- Grid merging, merge two blocks into one block.
// 5 -- Grid repairing, repair the original grid in order to remove the negative volume cells.
// 6 -- Grid mirroring, mirror a symmetry grid to whole grid.
// multiblock: Multi-block grid or not, only for structured grid conversion.
// 0 -- Not.
// 1 -- Yes.
// grid_database_index: Case of typical case, only for gridobj=0.
// 1 - Laminar flat plate of subsonic flow.
// 2 - Laminar flat plate of supersonic flow.
// 3 - Turbulent flat plate of subsonic flow.
// 4 - Turbulent flat plate of supersonic flow.
// iadapt: Adaptation number for unstructure grid.
// iovrlap: Overlapping( overset ) grid or not.
// 0 -- NON-overlapping grid.
// 1 -- Overlapping grid.
// SymmetryFaceVector: The vector of symmetry face.
// 0 -- X axis.
// 1 -- Y axis.
// 2 -- Z axis.
int gridtype = 0;
int gridobj = 1;
int multiblock = 1;
int grid_database_index = 3;
int iadapt = 0;
int iovrlap = 0;
int SymmetryFaceVector = 1;
// axisup: Type of Cartisien coordinates system, used in grid conversion.
// 1 -- Y upward. (default)
// 2 -- Z upward.
int axisup = 1;
// 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;
//-----------------------------------------------------------------------
# Grid data type #
//-----------------------------------------------------------------------
// from_gtype/to_gtype: Type of grid data type in grid conversion process.
// -1 -- MULTI_TYPE
// 1 -- HyperFLOW( 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 from_gtype = 2;
int to_gtype = 1;
//-----------------------------------------------------------------------
# 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/rae2822_hybrid2d.cas";
string out_gfile = "./grid/flat_laminr_133_85_2d.fts";
// ---------------- some advanced choices -----------------------------
// iunsteady: The Grid is for unsteady simulation or not.
int iunsteady = 0;
int iale = 0;
// fileformat : Ustar Grid file format.
// 0 --- ASCII
// 1 --- BINARY
int fileformat = 0;
// .skl meaning skeleton.
string original_grid_info_file = "./grid/FLUENT_test.skl";
// Parameters for hybrid solver.
string mixgrid_uns = "./grid/rae2822_uns2d_4.fts";
string mixgrid_str = "./grid/flat_laminr_133_85_2d.fts";
string mixgrid_str_bc = "./grid/flat_laminr_133_85_2d.inp";
// Some parameters for structured overlapping grid of GuoYongHeng start.
int codeOfDigHoles = 1;
string holeBasicFileName = "./oversetGridView/holeBasicFile.inp";
string holeFullFileName = "./oversetGridView/holeFullFile.dat";
string linkFileName = "./oversetGridView/topology.dat";
string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp";
#########################################################################
# Default parameters for Partition #
#########################################################################
// pgridtype: The grid type.
// 0 -- unstruct grid
// 1 -- struct grid
// 2 -- refine structured grid.
// maxproc: The number of partition zones that want to be divided into.
int pgridtype = 0;
int maxproc = 4;
//-----------------------------------------------------------------------
# File path #
//-----------------------------------------------------------------------
// original_grid_file : original grid file that want to be divided(HyperFLOW/PHengLEI type, *.fts).
// partition_grid_file : target partition grid file(HyperFLOW/PHengLEI type, *.fts).
string original_grid_file = "./grid/rae2822_hybrid2d.fts";
string partition_grid_file = "./grid/rae2822_hybrid2d__4.fts";
// ------------------ Sompe advanced parameters ------------------------
// 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.
// npartmethod: Method of interface reconstruction, default 1.
// parallelPartMethod: Method of parallel partition, this is set only when execute parallel partition.It would be skipped when serial partition.
// 1 -- Using ParMetis for homogeneous MPI.
// 2 -- Using Metis for homogeneous MPI.
// 3 -- using METIS partition for homogeneous OpenMP.
// parmetisBalance: is used to specify the imbalance tolerance.
// 1 -- perfect balance;
// maxproc -- perfect imbalance;
// 1.05 -- recommended.
int omit_no_bound_bc = 0;
int npartmethod = 1;
int parallelPartitionMethod = 2;
double parmetisBalance = 1.05;
// Number of multi-grid levels, ONLY used for structured grid.
// 1 -- single level, 2 -- 2 level, N -- N level, ..., et all.
int numberOfMultigrid = 1;
#########################################################################
# Default parameters for CFD simulation #
#########################################################################
// maxsimustep: the max simulation step, don't care simulation is restart or not.
// ndisk: the step intervals for 'flow.dat ' saved.
// nplotsave: the step intervals for 'tecflow.dat ' saved.
// nforcsave: the step intervals for 'aircoef.dat ' saved.
// nressave: the step intervals for 'res.dat ' saved.
// precon: precondition process to accelerate convergence for low speed flow.
// 0 -- no precondition process. (default)
// 1 -- carry out precondition process.
int ndisk = 1000;
int maxsimustep = 20000;
int nplotsave = 1000;
int nforcsave = 100;
int nressave = 10;
int precon = 0;
// m_block_proc: Method of grid zone distribution among different processors.
// 0 -- Each zone is distributed by grid partition. (default)
// 1 -- Each zone is distributed randomly.
//compressible: 0 for incompressible flow, 1 for compressible flow (default).
int compressible = 1;
//-----------------------------------------------------------------------
# CFD Control Parameter #
//-----------------------------------------------------------------------
// attackd: Angle of attack.
// sideslipd: Angle of yaw.
// reference_mach_number: Mach number.
// reynolds: Reynolds number, which is based unit length, unit of 1/m.
// reference_temperature_dimensional: dimensional reference temperature, or the total temperature only for the experiment condition.
// reference_pressure_dimensional: dimensional reference pressure , or the total pressure only for the experiment condition.
// height: Fly height, unit of km.
// inflowParaType: the type of inflow parameters.
// 0 - the nondimensional conditions.
// 1 - the flight conditions.
// 2 - the experiment conditions.
// 3 - the subsonic boundary conditions.
// twall: Temprature of the solid wall, minus value is for adiabatic boundary condition.
// dump_Q: Dump out thermal flux Q of solid wall.
// 0 - no dump out.
// 1 - dump out wall Q only.
// 2 - dump out wall Q & the typical position Q of ball.
// 3 - dump out wall Q & the typical position Q of cone.
// 4 - dump out wall Q & the typical position Q of double sphere.
// Qstag: The Q of the stagnation point, calculated by Fay-Riddle formula.
// gridUnit: The unit of the grid.
// 0 - meter.
// 1 - decimeter, 1 dm = 0.1 m.
// 2 - centimeter, 1 cm = 0.01 m.
// 3 - millimeter, 1 mm = 0.001m.
// 4 - inch, 1 inch = 0.0254m.
// 5 - foot, 1 foot = 12 inches = 0.3048m.
// 6 - yard, 1 yard = 3 feet = 0.9144m.
// forceRefenenceLength, forceRefenenceArea: Reference length and area, independent of grid unit.
// forceRefenenceX, forceRefenenceY, forceRefenenceZ: Reference point, independent of grid unit.
double reference_mach_number = 0.73;
double attackd = 2.79;
double sideslipd = 0.00;
int inflowParaType = 0;
double reynolds = 6.5e6;
double reference_temperature_dimensional = 288.15;
//int inflowParaType = 1;
//double height = 0.001;
//int inflowParaType = 2;
//double reference_temperature_dimensional = 6051.024; //the total temperature, T*(1+(gama0-1)*M*M/2).
//double reference_pressure_dimensional = 4.299696E09; //the total pressure, p*(T0/T)^(gama0/(gama0-1)).
//int inflowParaType = 3;
//int nsubsonicInlet = 1;
//int nsubsonicOutlet = 1;
//string inLetFileName = "./bin/subsonicInlet.hypara";
//string outLetFileName = "./bin/subsonicOutlet.hypara";
//double reference_temperature_dimensional = 288.144;
//double reference_pressure_dimensional = 1.01313E05;
double twall = -1.0 ;
int dump_Q = 0;
double Qstag = 1.825e-3;
int gridUnit = 0;
double forceRefenenceLength = 1.0;
double forceRefenenceLengthSpanWise = 1.0;
double forceRefenenceArea = 1.0;
double forceRefenenceX = 0.0;
double forceRefenenceY = 0.0;
double forceRefenenceZ = 0.0;
int directionMethod = 2; // 1 -- using direciton; 2 -- using face normal.
double totalP_inlet = 1.2e6;
double totalT_inlet = 1300;
double direction_inlet[3] = 1, 0, 0;
double totalP_outlet = 17.8571428;
double totalT_outlet = 1.0;
double direction_outlet[3] = 1, 0, 0;
//-----------------------------------------------------------------------
# Spatial Discretisation #
//-----------------------------------------------------------------------
#*******************************************************************
# Struct Solver *
#*******************************************************************
// str_scheme_name: Spatial discretisation scheme of struct grid
// Using this when solve structered grid or hybrid.
// - "vanleer", "steger", "hlle", "lax_f"
// - "roe","modified_roe"
// - "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw"
// str_limiter_name: Limiter of struct grid
// - "vanalbada", "vanleer", "minmod", "smooth" "minvan" "3rdsmooth" "3rd_minmod_smooth"
// - "nolim" - no limiter
// - "vanalbada_clz" clz supersonic version
string str_scheme_name = "roe";
string str_limiter_name = "vanalbada";
#*******************************************************************
# UnStruct Solver or Common *
#*******************************************************************
// iviscous: Viscous model
// 0 - Euler
// 1 - Lamilar
// 2 - Algebraic
// 3 - 1eq turbulent
// 4 - 2eq turbulent
// visname : Laminar or tubulent model
// - "0eq-bl"
// - "1eq-sa"
// - "2eq-kw-menter-sst"
// - "2eq-kw-menter-bsl"
// - "2eq-kw-wilcox-1988"
// - "2eq-kw-wilcox-1998"
// - "2eq-kw-kok-tnt"
// - "2eq-kw-wilcox-2006"
// - "easm-kw-2003"
// - "easm-kw-2005"
// codeofDES : Type of DES
// 0 - RANS (default);
// 1 - DES;
// 2 - DDES;
// 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"
// - "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpwplus"
// uns_limiter_name: Limiter of Unstruct grid
// - "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"
// uns_gradient: Gradient reconstruction method
// - "default", "ggcell", "ggnode", "lsq"
// ivencat: Variation of vencat limiter
// 0 - org method, it is independent of grid scale
// 1 - new method, it is dependent of grid scale
// 4 - Ustar limiter model, without grid size unitary.
// 7 - default used.
// eps_vencat: Cofficient of vencat, when using vencat limter
// limit_mode: limit model.
// 0 - limit only for pressure and denstiny, then get the min value
// 1 - limit for every variables, then get the min value
// limiter_vec:
// 0 - Each variable use the same limiter coefficient.
// 1 - Each variable use the respective limiter coefficients.
// reconmeth:
// 0 - When reconstruct face value, Q+, Q- use respective limiter coefficients.
// 1 - Q+, Q- use the min limiter coefficients of left and right cell.
// nentrfix: Entropy fix.
// 1 - common entropy fix.
// 2 - Harte's method, to be continued.
// 3 - Method in ZYB 's Doctor thesis, to be continued.
// 4 - Method in Ustar.
// alf_l, alf_n: Entropy fix cofficient for Roe scheme.
//int iviscous = 0;
//string visname = "Euler";
//int iviscous = 1;
//string visname = "laminar";
int iviscous = 3;
string visname = "1eq-sa";
//int iviscous = 4;
//string visname = "2eq-kw-menter-sst";
int codeofDES = 0;
string uns_scheme_name = "roe";
string uns_limiter_name = "vencat";
string uns_vis_name = "test";
string uns_gradient_name = "ggnode";
int ivencat = 7;
double eps_vencat = 5.0;
int reconmeth = 1;
int limit_mode = 0;
int limiter_vec = 0;
double limit_angle = 0;
double skewnessAngle = 60.0;
int nentrfix = 1;
double alf_l = 0.0001;
double alf_n = 0.0001;
//-----------------------------------------------------------------------
# Temporal Discretisation #
//-----------------------------------------------------------------------
// iunsteady: Steady or unsteady.
// 0 - steady
// 1 - unsteay
// physicalTimeStep: the nondimensional physical time step.
// startFromSteady: the unsteady simulation is start from steady flowfield or not, 0 is for no and else is for yes.
// statisticsDES: Statistical variables for DES simulation.
// startStatisticStep: Outer step when start statistics.
// when the value is larger than "maxsimustep", it is useless.
// min_sub_iter: the min sub iteration of unsteady simulation.
// max_sub_iter: the max sub iteration of unsteady simulation.
// tol_sub_iter: the tolerance of sub iteration of unsteady simulation.
// tscheme: Temporal Discretisation method
// 1 - Runge-Kutta Multi-State
// 2 - Point implicit
// 3 - Full implicit
// 4 - LU-SGS
// 5 - Block LU-SGS
// 6 - Jacobian iteration
// 7 - Lower G-S iteration
// 8 - Upper G-S iteration
// 9 - Lower/Upper G-S iteration
// 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.
// cfl_start: Started cfl
// cfl_end: End cfl
// cfl_nstep: The number of step when cfl increase from cfl_start to cfl_end
// ktmax: Dtratio. dt[i] = MIN( dt[i], ktmax * dtmin / vol[i] )
// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default 0.
// sweeps: Sub iteration of LU-SGS or Block LU-SGS.
// epsilon: Sub iter tolerance of LU-SGS or Block LU-SGS.
// ntmst: Time step method
// 0 - Local
// 1 - Gloable
// n_state: The number of Runge-Kutta step
// lamda: Cofficient of Runge-Kutta step
int iunsteady = 0;
double physicalTimeStep = 0.01;
int startFromSteady = 0;
int statisticsDES = 0;
int startStatisticStep = 800000;
int min_sub_iter = 50;
int max_sub_iter = 50;
double tol_sub_iter = 0.01;
int tscheme = 1;
int iSimplifyViscousTerm = 1;
double cfl_start = 0.001;
double cfl_end = 0.1;
int cfl_nstep = 500;
double ktmax = 1.0e10;
int swapDq = 1;
int sweeps = 1;
double epsilon = 0.1;
int turb_sweeps = 1;
double turb_epsilon = 0.1;
int ismooth_ns = 0;
int icalvis = 1;
int vis_run = 1;
int iupdate = 1;
int order = 2;
double limit_p = 3.0;
double limit_r = 3.0;
double visl_min = 0.01;
int nnegtive_max = 0;
double cflturb = 1.0;
double timemax = 1.0e10;
double dtsave = -1.0;
int iale = 0;
int ialetype = 2;
int maxale = 10;
int ntmst = 0;
double dtau = 0.001;
double dtau_max = 1E-01;
int iwallfunction = 0;
int n_stage = 2;
double lamda[2] = 0.5, 1.0;
//int n_stage = 1;
//double lamda[1] = 1.0;
//int n_stage = 4;
//double lamda[4] = 0.25,0.33333333333,0.5,1.0;
//-----------------------------------------------------------------------
# File In or Out #
//-----------------------------------------------------------------------
// gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory.
// IMPORTANT WARNNING: the file index should be ignored,
// e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts,
// Please use 'rae2822_hybrid2d__4.fts' here!
// visual_field: If dump out the field results to visulization
// walldistMethod: The method to compute wall distance.
// 0 - accurate but not fast enough.
// 1 - fast but not accurate enough.
// 2 - Super fast but more non-accurate!
int numberOfGridGroups = 1;
string gridfile = "./grid/rae2822_hybrid2d__4.fts";
int walldistMethod = 1;
string resfile = "results/res.dat";
string turbresfile = "results/turbres.dat";
string aircoeffile = "results/aircoef.dat";
string flowfile = "results/flow.dat";
string turbfile = "results/turb.dat";
string visualfile = "results/tecflow.plt";
string Qwall_file = "results/Qwall.dat";
string wall_aircoefile = "results/wall_aircoef.dat";
string surfacefile = "";
string wall_varfile = "";
string componentDefineFile = "bin/component.hypara";
string jetDefineFile = "bin/jet.hypara";
string componentforcefile = "results/component_aircoef.dat";
string overset_gridfile = "iblank.ovs";
int visual_field = 0;
//visualSlice: The slice of tecflow
// 0 - Do not save slice data
// 1 - comput and save it to sliceFile
//sliceAxis: Normal vector of slice
// 1 - X_DIR
// 2 - Y_DIR
// 3 - Z_DIR
//slicePostion: Coordinate of slice
int visualSlice = 0;
int sliceAxis = 1;
double slicePostion = -0.5;
string sliceFile = "results/Slice.plt";
// min-max box of the visual block.
double visual_block_min[3] = [0.0 0.0 0.0];
double visual_block_max[3] = [1.0 1.0 1.0];
// nVisualVariables: number of variables want to be dumped for tecplot visualization.
// visualVariables : variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6)
// -- viscosityLaminar(7), viscosityTurbulent(8)
// -- vorticity_x(9), vorticity_y(10), vorticity_z(11), vorticityMagnitude(12), strain_rate(13), Q_criteria(14)
// -- Cp(15), timeStep(16), volume(17)
// -- modeledTKE(18),modeleddissipationrate(19), SSTF1(20), SSTF2(21)
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!.
// Arriables order must from small to larger.
int nVisualVariables = 8;
int visualVariables[8] = 0, 1, 2, 3, 4, 5, 6, 15;
//-----------------------------------------------------------------------
# Turbulence Parameter #
//-----------------------------------------------------------------------
//turb_vis_kind :
// const int VIS_STD = 0;
// const int VIS_AVER = 1;
// const int VIS_TEST = 2;
// const int VIS_NEW1 = 3;
// const int VIS_NEW2 = 4;
// const int VIS_ERIC = 5;
int turbInterval = 1;
int turb_vis_kind = 2;
int turb_s_kind = 0; //turb_s_kind = 0:original 1:edwards 2:new
int mod_turb_res = 0;
double turb_relax = 1.0;
double turb_min_coef = 1.0e-1;
double vistoo = 1.0e-3;
double muoo = 1.0e-1;
double kwoo = 1.0;
# maximum eddy viscosity (myt/my)max
double mytmax = 1.0e10;
double sdilim = 1.0e20;
double coef_kvist = 1.0;
int monitor_vistmax = 0;
//-----------------------------------------------------------------------
# Other Parameter #
//-----------------------------------------------------------------------
// iapplication: 0 - NS
// 1 - MHD
// nm: equation number of the physics , but is out of commision now.
// 4 - for 2D
// 5 - for 3D
//ncatamod: 0 - full non-catalytic wall boundary condition;
// 1 - full catalytic wall boundary condition;
int dg_high_order = 0; //0 常规精度 1 DG 高阶精度
int iapplication = 0;
int nm = 5;
//MHD相关
double bxoo = 0.0;
double byoo = 0.0;
double bzoo = 0.0;
double gama0 = 1.4;
double prl = 0.72;
double prt = 0.90;
double sc_l = 0.5;
double sc_t = 0.5;
int nchem = 0;
int nchemsrc = 0;
int nchemrad = 0;
int ntmodel = 1;
string gasfile = "./chemical/Gupta_air5s6r.dat";
int ncatamod = 0;
#########################################################################
// Multi-Grid parameters.
// mgrid: The number of level of Multi-Grid
// <= 1 : Single level.
// > 1 : multi-level.
// npre : for each grid, the number of pre-smoothing steps
// npost : for each grid, the number of post-smoothing steps
// n_solve: for the coarest grid the number of smoothing steps
// n_fas : V-multi cycle or W-multi cycle.
// 1 : V-multi cycle
// 2 : W-multi cycle
// mgvisl : If calculate the viscous term on coarse grid
// 0 : No
// 1 : Yes
// mgvist : If consideration the turbulent model on coarse grid.
// 0 : No
// 1 : Yes
// mgInitStep: Number of step computing on coarse grid, during flow initialization.
// cflMGTimes: CFL number enlarge times for coarse grid.
// mprol: Multi-grid interpolation method, interpolation from coarse cell to fine grid:
// 1: zero order;
// 2: first-order(default).
int mgrid = 1;
int n_solve = 1;
int n_pre = 1;
int n_fas = 1;
int n_post = 0;
int mgvisl = 1;
int mgvist = 0;
int mgInitStep = 100;
int mprol = 2;
double cflMGTimes = 1.0;
double correctionLimit= 0.01;
//----------------------- Some parameter for turbulent model. -----------------------------
int neasm = -3; // the variation of kw turbulent model
int ivortsource = 0;
int ismooth_turb = 0; // Residual smooth for turb or not.
int isplt = 2;
int inflowtype = 0;
//string n_turb_scheme = "roe","center","nnd";
string n_turb_scheme = "nnd";
// ---------------- Overset Grid parameter -------------------------------------
int codeOfDigHoles = 1;
int codeOfTurbulentModel = 0;
string masterFileName = "./grid/searchFile.inp";
string holeBasicFileName = "./grid/holeBasicFile.inp";
string holeFullFileName = "./grid/holeFullFile.dat";
string linkFileName = "./grid/topology.dat";
string zoneInverseFileName = "./grid/zoneInverseMapping.inp";
#########################################################################
# High Order Struct Solver #
#########################################################################
// ifvfd : 0 - NSSolverStruct using Finite Volume Method;
// 1 - NSSolverStruct using Finite Differ Method;
// =0 default
// SolverStructOrder: Spatial discretisation order of NS equations with struct grid
// =<2 finite volume method
// >=3 finite difference order (to be completed)
// =0 default
// str_highorder_interpolation_name: interpolation method: "prim", "char"
// str_highorder_flux_name: flux evaluation method: "roe", "steger", "godunov", "hllc"
int ifvfd = 0;
int SolverStructOrder = 0;
string str_highorder_interpolation_name = "char";
string str_highorder_flux_name = "steger";
// ---------------- advanced choices -------------------------------------------
// xkmuscl: the parameter of MUSCL interpolations, belongs to [-1,1].
// -1 - seconde-order fully-upwind differencing
// 0 - seconde-order upwind-biased differencing
// 0.333333 - third-order upwind-biased differencing
// 1 - seconde-order central differencing
// xbmuscl: the limiter parameter.
// 0 - the effect of the limiter is cancelled, means the first-order interpolations.
// allReduceStep: iteration intervals for MPI AllReduce operation, default '1'.
string outtimesc = "impbd2";
double unxk1 = 1.0;
double unxk2 = 0.0;
double xkmuscl = -1;
double xbmuscl = 1.0;
int allReduceStep = 1;
// --------------- ATP read ----------------------------------------------------
//@int inflowParaType = 0;
//@double reynolds = 2.329418E08;
//@double reference_temperature_dimensional = 288.144;
//@double reference_pressure_dimensional = 1.01313E05;
//@double height = -0.001;
//@int nsubsonicInlet = 0;
//@int nsubsonicOutlet = 0;
//@string inLetFileName = "./bin/subsonicInlet.hypara";
//@string outLetFileName = "./bin/subsonicOutlet.hypara";

View File

@ -0,0 +1,202 @@
#########################################################################
# General Control Parameter #
#########################################################################
// maxsimustep: the max simulation step, don't care simulation is restart or not.
// ndisk: the step intervals for flow variables file 'flow.dat' saved.
// nplotsave: the step intervals for tecplot visual file 'tecflow.dat' saved.
// nforcsave: the step intervals for aerodynamics coefficients file 'aircoef.dat' saved.
// nressave: the step intervals for residual 'res.dat' saved.
int maxsimustep = 20000;
int ndisk = 5000;
int nplotsave = 5000;
int nforcsave = 1000;
int nressave = 10;
#########################################################################
# Inflow Parameter #
#########################################################################
// reference_mach_number: Mach number per meter.
// attackd: Angle of attack.
// sideslipd: Angle of sideslip.
// reynolds: Reynolds number, which is based unit length, unit of 1/m.
// reference_temperature_dimensional: dimensional reference temperature, or the total temperature only for the experiment condition.
// reference_pressure_dimensional: dimensional reference pressure , or the total pressure only for the experiment condition.
// inflowParaType: the type of inflow parameters.
// 0 - the nondimensional conditions.
// 1 - the flight conditions.
// 2 - the experiment conditions.
// height: Fly height, unit of km.
// gridUnit: The unit of the grid.
// 0 - meter.
// 1 - decimeter, 1 dm = 0.1 m.
// 2 - centimeter, 1 cm = 0.01 m.
// 3 - millimeter, 1 mm = 0.001m.
// 4 - inch, 1 inch = 0.0254m.
// 5 - foot, 1 foot = 12 inches = 0.3048m.
// 6 - yard, 1 yard = 3 feet = 0.9144m.
// forceRefenenceLength, forceRefenenceArea: Reference length and area, independent to grid scale.
// forceRefenenceX, forceRefenenceY, forceRefenenceZ: Reference point, independent to grid scale.
double reference_mach_number = 0.8395;
double attackd = 3.06;
double sideslipd = 0.00;
int inflowParaType = 0;
double reynolds = 1.171e7;
double reference_temperature_dimensional = 288;
//int inflowParaType = 1;
//double height = 0.001;
//int inflowParaType = 2;
//double reference_temperature_dimensional = 6051.024; //the total temperature, T*(1+(gama0-1)*M*M/2).
//double reference_pressure_dimensional = 4.299696E09; //the total pressure, p*(T0/T)^(gama0/(gama0-1)).
int gridUnit = 0;
double forceRefenenceLength = 1.0; // unit of meter.
double forceRefenenceLengthSpanWise = 1.0; // unit of meter.
double forceRefenenceArea = 1.0; // unit of meter^2
double forceRefenenceX = 0.0; // unit of meter.
double forceRefenenceY = 0.0; // unit of meter.
double forceRefenenceZ = 0.0; // unit of meter.
#*******************************************************************
# Physical models *
#*******************************************************************
// iviscous: Viscous model
// 0 - Euler
// 1 - Lamilar
// 3 - 1eq turbulent
// 4 - 2eq turbulent
// visname : Laminar or tubulent model
// - "1eq-sa", when iviscous = 3
// - "2eq-kw-menter-sst", when iviscous = 4
// codeofDES : Type of DES
// 0 - RANS (default);
// 1 - DES;
// 2 - DDES;
// 3 - IDDES;
//int iviscous = 0;
//string visname = "Euler";
//int iviscous = 1;
//string visname = "laminar";
int iviscous = 3;
string visname = "1eq-sa";
//int iviscous = 4;
//string visname = "2eq-kw-menter-sst";
int codeofDES = 0;
#########################################################################
# Spatial Discretisation #
#########################################################################
#*******************************************************************
# Struct Solver *
#*******************************************************************
// str_scheme_name: Spatial discretisation scheme of struct grid
// Using this when solve structered grid or hybrid.
// - "roe", "vanleer", "ausm+up", "ausmpw"
// str_limiter_name: Limiter of struct grid
// - "3rdsmooth", "smooth"
// - "nolim" - no limiter
string str_scheme_name = "roe";
string str_limiter_name = "smooth";
#*******************************************************************
# UnStruct Solver *
#*******************************************************************
// uns_scheme_name: Spatial discretisation scheme of Unstruct grid
// Using this when solve Unstructered grid or hybrid.
// - "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle"
// - "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpwplus"
// uns_limiter_name: Limiter of Unstruct grid
// - "vencat", "barth"
// - "1st", meaning accuracy of first-order.
// - "nolim", no limiter.
// eps_vencat: Coefficient of vencat limiter, when uns_limiter_name = 'vencat'
// The smaller the value, the more robust it is.
string uns_scheme_name = "roe";
string uns_limiter_name = "vencat";
double eps_vencat = 5.0;
#########################################################################
# Temporal Discretisation #
#########################################################################
// iunsteady: Steady or unsteady.
// 0 - steady
// 1 - unsteay
// cfl_end: The CFL number, [0.1, 100]
// The bigger the value, the convergence faster but lower robustness.
// sweeps: Number of Sub-iteration of LU-SGS.
// 1 : is recommended for structured solver.
// 1-3: is recommended for unstructured solver.
int iunsteady = 0;
double cfl_end = 0.1;
int tscheme = 4;
int sweeps = 1;
#########################################################################
# Multi-Grid parameters #
#########################################################################
// mgrid: The number of Multi-Grid level
// = 1 : Single level.
// > 1 : multi-level.
// mgInitStep: Number of step computing on coarse grid, during flow initialization.
// 0~500 is suggested.
int mgrid = 1;
int mgInitStep = 100;
#########################################################################
# File In or Out #
#########################################################################
// gridfile: The partitioned Grid file path, using relative path,
// which is relative to the working directory.
// IMPORTANT WARNNING: the file index should be ignored,
// e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts,
// Please use 'rae2822_hybrid2d__4.fts' here!
// visual_field: If dump out the whole field results to tecplot or not, 0/1.
string gridfile = "./grid/M6_str2unstr.fts";
int visual_field = 0;
// ---------------- advanced Parameters, DO NOT care it -----------
// nVisualVariables: number of variables want to be dumped for tecplot visualization.
// visualVariables : variable types dumped, listed as following:
// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6)
// -- viscosityLaminar(7), viscosityTurbulent(8)
// -- vorticity_x(9), vorticity_y(10), vorticity_z(11), vorticityMagnitude(12), strain_rate(13), Q_criteria(14)
// -- Cp(15), timeStep(16), volume(17)
// -- modeledTKE(18),modeleddissipationrate(19), SSTF1(20), SSTF2(21)
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!.
// Arriables order must from small to larger.
int nVisualVariables = 8;
int visualVariables[8] = 0, 1, 2, 3, 4, 5, 6, 15;
// limit_mode: limit model.
// 0 - limit only for pressure and denstiny, then get the min value
// 1 - limit for every variables, then get the min value
// limiter_vec:
// 0 - Each variable use the same limiter coefficient.
// 1 - Each variable use the respective limiter coefficients.
// reconmeth:
// 0 - When reconstruct face value, Q+, Q- use respective limiter coefficients.
// 1 - Q+, Q- use the min limiter coefficients of left and right cell.
int reconmeth = 1;
int limit_mode = 0;
int limiter_vec = 0;

View File

@ -0,0 +1,30 @@
#########################################################################
# 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 -- HyperFLOW( 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 = 2;
int from_gtype = 2;
#########################################################################
# File path #
#########################################################################
// from_gfile: path of original data file for unstructure grid convert from.
// out_gfile: path of target file for grid convert to, *.fts type of file usually.
string from_gfile = "./grid/M6_str2unstr.cgns";
string out_gfile = "./grid/M6_str2unstr.fts";

View File

@ -0,0 +1,51 @@
string title = "PHengLEI Main Parameter Control File";
// IMPORTANT NOTICE<43><45>DON NOT MODIFY THE FOWLLOWING LINE
string defaultParaFile = "./bin/cfd_para.hypara";
// ndim: Dimensional of the grid: 2 or 3.
// nparafile: the number of the parameter file.
// 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 HyperFLOW 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.
// 4 -- Knowledge repository / examples of PHengLEI-API.
int ndim = 3;
int nparafile = 1;
int nsimutask = 0;
//string parafilename = "./bin/cfd_para_subsonic.hypara";
string parafilename = "./bin/cfd_para_transonic.hypara";
//string parafilename = "./bin/cfd_para_supersonic.hypara";
//string parafilename = "./bin/cfd_para_hypersonic.hypara";
//string parafilename = "./bin/incompressible.hypara";
//int nsimutask = 1;
//string parafilename = "./bin/grid_para.hypara";
//int nsimutask = 2;
//string parafilename = "./bin/cfd_para.hypara";
//int nsimutask = 3;
//string parafilename = "./bin/partition.hypara";
//int nsimutask = 4;
//string parafilename = "./bin/repository.hypara";
//int nsimutask = 5;
//string parafilename = "./bin/overset_grid_view.hypara";
//int nsimutask = 99;
//string parafilename = "./bin/post_processing.hypara";
// ---------------- advanced Parameters, DO NOT care it -----------
int iovrlap = 0;
int numberOfGridProcessor = 0;
// ATP read
//@string parafilename1 = ""
//@string parafilename2 = "";

View File

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