X系列,Z系列参数及文档更新;替换和新增共13个不可压算例
This commit is contained in:
parent
e15d25f771
commit
9a0ac605d8
|
@ -0,0 +1,52 @@
|
||||||
|
# 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 = 3;
|
||||||
|
string bcName = "wall_1";
|
||||||
|
{
|
||||||
|
int bcType = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
string bcName = "inlet_1";
|
||||||
|
{
|
||||||
|
int bcType = 52;
|
||||||
|
double totalPressure = 200;
|
||||||
|
double initKinetic = 1.5;
|
||||||
|
double initEpsilon = 2025;
|
||||||
|
}
|
||||||
|
|
||||||
|
string bcName = "outlet_1";
|
||||||
|
{
|
||||||
|
int bcType = 6;
|
||||||
|
double initP =0;
|
||||||
|
double initKinetic = 1.5;
|
||||||
|
double initEpsilon = 2025;
|
||||||
|
}
|
||||||
|
|
||||||
|
# '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
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,211 @@
|
||||||
|
#########################################################################
|
||||||
|
# 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.
|
||||||
|
// intervalStepRes: The step intervals for residual 'res.dat' saved.
|
||||||
|
int maxSimuStep = 2000;
|
||||||
|
int intervalStepFlow = 2000;
|
||||||
|
int intervalStepPlot = 500;
|
||||||
|
int intervalStepForce = 1;
|
||||||
|
int intervalStepRes = 1;
|
||||||
|
|
||||||
|
// gridfile: The partitioned Grid file path, using relative path,
|
||||||
|
// which is relative to the working directory.
|
||||||
|
string gridfile = "./grid/back__4.fts";
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Flow Parameter #
|
||||||
|
#########################################################################
|
||||||
|
|
||||||
|
//flowSolverName : SIMPLE/CompressibleSIMPLE/PISO
|
||||||
|
string flowSolverName = "SIMPLE";
|
||||||
|
|
||||||
|
// Initial value of flow variables
|
||||||
|
double initRho = 1.0;
|
||||||
|
double initU = 20;
|
||||||
|
double initV = 0;
|
||||||
|
double initW = 0;
|
||||||
|
double initP = 0;
|
||||||
|
double initMu = 0.00001;
|
||||||
|
double initRg = 296.928571;
|
||||||
|
double refP = 101325;
|
||||||
|
int refPLocate = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Momentum Equation
|
||||||
|
// MomEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int MomEqSolMethod = 2;
|
||||||
|
// MomEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int MomEqPrecondMethod = 1;
|
||||||
|
int MomEqMaxSweep = 30;
|
||||||
|
double MomEqIterSolvTol = 1e-8;
|
||||||
|
double MomEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
//Parameters For Solving the Pressure Possion Equation
|
||||||
|
// PPEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int PPEqSolMethod= 3;
|
||||||
|
// PPEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int PPEqPrecondMethod= 1;
|
||||||
|
int PPEqMaxSweep = 30;
|
||||||
|
double PPEqIterSolvTol = 1e-8;
|
||||||
|
double PPEqRelaxCoeff = 0.3;
|
||||||
|
|
||||||
|
//Relaxation factor of surface flux
|
||||||
|
double FaceFluxRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
int isCalGravityVisSource = 0;
|
||||||
|
int bodyForceFlag = 0;
|
||||||
|
double gravityX = 0.0;
|
||||||
|
double gravityY = -9.81;
|
||||||
|
double gravityZ = 0.0;
|
||||||
|
|
||||||
|
int isBoussinesqApproximation = 0;
|
||||||
|
double thermalExpansionCoeff = 3.44827e-3;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Turbulence Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveTurb : is(1)/not(0);
|
||||||
|
int isSolveTurb = 1;
|
||||||
|
// TurbEqSolverName : k-epsilon(KE)/Spalart-Allmaras(SA)
|
||||||
|
string TurbEqSolverName = "KE";
|
||||||
|
|
||||||
|
// Initial value of Turbulence variables
|
||||||
|
double initKinetic = 1.5;
|
||||||
|
double initEpsilon = 2025;
|
||||||
|
|
||||||
|
//Parameters For Solving the Turbulence Equation
|
||||||
|
// TurbEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int TurbEqSolMethod = 2;
|
||||||
|
// TurbEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int TurbEqPrecondMethod = 1;
|
||||||
|
int TurbEqMaxSweep = 30;
|
||||||
|
double TurbEqIterSolvTol = 1e-8;
|
||||||
|
double TurbEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Energy Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveEnergy : is(1)/not(0);
|
||||||
|
int isSolveEnergy = 0;
|
||||||
|
|
||||||
|
// Initial value of Energy variables
|
||||||
|
double initT = 273.15;
|
||||||
|
double initCPg = 1007.0;
|
||||||
|
double initK = 0.0454;
|
||||||
|
double initkappa = 1.4;
|
||||||
|
double refT = 300;
|
||||||
|
|
||||||
|
//Parameters For Solving the Energy Equation
|
||||||
|
// EnergyEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int EnergyEqSolMethod = 2;
|
||||||
|
// EnergyEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int EnergyEqPrecondMethod = 1;
|
||||||
|
int EnergyEqMaxSweep = 30;
|
||||||
|
double EnergyEqIterSolvTol = 1e-8;
|
||||||
|
double EnergyEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Species Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveSpecies : is(1)/not(0);
|
||||||
|
int isSolveSpecies = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
int numberOfSpeciesIncom = 1;
|
||||||
|
string speciesNameIncom[] = [AIR];
|
||||||
|
double initMassFractionIncom[] = [1.0];
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
// SpeciesEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int SpeciesEqSolMethod = 2;
|
||||||
|
// SpeciesEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int SpeciesEqPrecondMethod = 1;
|
||||||
|
int SpeciesEqMaxSweep = 30;
|
||||||
|
double SpeciesEqIterSolvTol = 1e-8;
|
||||||
|
double SpeciesEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Unsteady Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// iunsteady : is(1)/not(0);
|
||||||
|
int iunsteady = 0;
|
||||||
|
double startTime = 0.0;
|
||||||
|
double endTime = 20;
|
||||||
|
double dt = 0.1;
|
||||||
|
int min_sub_iter = 50;
|
||||||
|
int max_sub_iter = 50;
|
||||||
|
|
||||||
|
// isStableUnsteadyMethod : is(1)/not(0);
|
||||||
|
int isStableUnsteadyMethod = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Solution Method #
|
||||||
|
#########################################################################
|
||||||
|
// ConvCalcMethod : UPWIND/CDS/QUICK/SUDS
|
||||||
|
string ConvCalcMethod = "UPWIND"
|
||||||
|
|
||||||
|
// DiffCalcMethod : NON_ORTHOGONAL(default)
|
||||||
|
string DiffCalcMethod = "NON_ORTHOGONAL";
|
||||||
|
|
||||||
|
//TranCalcMethod : IMPLICIT_EULER(1st)/IMPLICIT_2ND_ORDER(2st)
|
||||||
|
string TranCalcMethod = "IMPLICIT_EULER";
|
||||||
|
|
||||||
|
// GradCalcMethod : GAUSS/LSQ
|
||||||
|
string GradCalcMethod = "GAUSS";
|
||||||
|
|
||||||
|
// mathLibType : hypre(0)/unap(1)/yhamg(2)
|
||||||
|
int mathLibType = 0;
|
||||||
|
|
||||||
|
// compressible : is(0, default)/not(1)
|
||||||
|
int compressible = 0;
|
||||||
|
|
||||||
|
// SIMPLEC : SIMPLE(0)/SIMPLEC(1)
|
||||||
|
int SIMPLEC = 1;
|
||||||
|
|
||||||
|
// isSkewness : stable gradient method: is(1)/not(0)
|
||||||
|
int isSkewness = 0;
|
||||||
|
|
||||||
|
//rhoType : Constant(0)/IncompressibleIdealGas(1)/IdealGas(2)
|
||||||
|
int rhoType = 0;
|
||||||
|
|
||||||
|
//muType: Constant(0)/SutherLand(1)/IdealGasMixingLaw(2),
|
||||||
|
int muType = 0;
|
||||||
|
|
||||||
|
//kType : Constant(0)/MassWeightedMixingLaw(1)/IdealGasMixingLaw(2)
|
||||||
|
int kType = 0;
|
||||||
|
|
||||||
|
//cpType : Constant(0)/Mixing(1)
|
||||||
|
int cpType = 0;
|
||||||
|
|
||||||
|
//massdiffType : ConstantDiluteApprox(1)/DiluteApprox(2)
|
||||||
|
int massdiffType = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# 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), species(from 71 ~ 70 + numberOfSpecies)
|
||||||
|
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
|
||||||
|
// Variables order must from small to big.
|
||||||
|
|
||||||
|
int nVisualVariables = 7;
|
||||||
|
int visualVariables[] = [22, 23, 24, 25, 29, 31, 32];
|
||||||
|
int plotFieldType = 1;
|
||||||
|
|
||||||
|
string resSaveFile = "results/res.dat";
|
||||||
|
string aircoeffile = "results/aircoef.dat";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
#########################################################################
|
||||||
|
# Grid data type #
|
||||||
|
#########################################################################
|
||||||
|
// gridtype: Grid type for generation, conversion, reconstruction, merging.
|
||||||
|
// 0 -- Unstructured grid.
|
||||||
|
// 1 -- Structured grid.
|
||||||
|
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
|
||||||
|
// axisRotateOrder : axis rotating order.
|
||||||
|
// 1 -- X-axis.
|
||||||
|
// 2 -- Y-axis.
|
||||||
|
// 3 -- Z-axis.
|
||||||
|
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
|
||||||
|
// from_gtype: Type of grid data type in grid conversion process.
|
||||||
|
// -1 -- MULTI_TYPE.
|
||||||
|
// 1 -- PHengLEI, *.fts.
|
||||||
|
// 2 -- CGNS, *.cgns.
|
||||||
|
// 3 -- Plot3D type of structured grid, *.dat/*.grd.
|
||||||
|
// 4 -- Fieldview type of unstructured grid, *.dat/*.inp.
|
||||||
|
// 5 -- Fluent, *.cas/*.msh.
|
||||||
|
// 6 -- Ustar, mgrid.in.
|
||||||
|
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
|
||||||
|
// 8 -- GMSH, *.msh.
|
||||||
|
int gridtype = 0;
|
||||||
|
int nAxisRotateTimes = 0;
|
||||||
|
int axisRotateOrder[] = [1, 2, 3];
|
||||||
|
double axisRotateAngles[] = [0.0, 0.0, 0.0];
|
||||||
|
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";
|
|
@ -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 = 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 = 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 = "";
|
|
@ -0,0 +1,24 @@
|
||||||
|
// 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).
|
||||||
|
// numberOfMultifile: The number of partition grid files that want to be dumped out.
|
||||||
|
|
||||||
|
int pgridtype = 0;
|
||||||
|
int maxproc = 4;
|
||||||
|
|
||||||
|
string original_grid_file = "./grid/back.fts";
|
||||||
|
string partition_grid_file = "./grid/back__4.fts";
|
||||||
|
|
||||||
|
int numberOfMultifile = 1;
|
||||||
|
|
||||||
|
// 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;
|
|
@ -0,0 +1,5 @@
|
||||||
|
红山开源风雷算例库原始网格获取百度网盘链接:
|
||||||
|
链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA
|
||||||
|
提取码:w47m
|
||||||
|
|
||||||
|
注:plot3D格式网格需同时下载.grd和.inp文件
|
|
@ -0,0 +1,51 @@
|
||||||
|
# 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 = 4;
|
||||||
|
string bcName = "bottom";
|
||||||
|
{
|
||||||
|
int bcType = 2;
|
||||||
|
}
|
||||||
|
string bcName = "left";
|
||||||
|
{
|
||||||
|
int bcType = 2;
|
||||||
|
double initT=300;
|
||||||
|
}
|
||||||
|
string bcName = "right";
|
||||||
|
{
|
||||||
|
int bcType = 2;
|
||||||
|
double initT=500;
|
||||||
|
}
|
||||||
|
string bcName = "top";
|
||||||
|
{
|
||||||
|
int bcType = 2;
|
||||||
|
double initU=1.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
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,211 @@
|
||||||
|
#########################################################################
|
||||||
|
# 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.
|
||||||
|
// intervalStepRes: The step intervals for residual 'res.dat' saved.
|
||||||
|
int maxSimuStep = 2000;
|
||||||
|
int intervalStepFlow = 2000;
|
||||||
|
int intervalStepPlot = 500;
|
||||||
|
int intervalStepForce = 1;
|
||||||
|
int intervalStepRes = 1;
|
||||||
|
|
||||||
|
// gridfile: The partitioned Grid file path, using relative path,
|
||||||
|
// which is relative to the working directory.
|
||||||
|
string gridfile = "./grid/cavity__4.fts";
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Flow Parameter #
|
||||||
|
#########################################################################
|
||||||
|
|
||||||
|
//flowSolverName : SIMPLE/CompressibleSIMPLE/PISO
|
||||||
|
string flowSolverName = "SIMPLE";
|
||||||
|
|
||||||
|
// Initial value of flow variables
|
||||||
|
double initRho = 1;
|
||||||
|
double initU = 0;
|
||||||
|
double initV = 0;
|
||||||
|
double initW = 0;
|
||||||
|
double initP = 0;
|
||||||
|
double initMu =0.01;
|
||||||
|
double initRg =287.0425;
|
||||||
|
double refP = 101325;
|
||||||
|
int refPLocate = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Momentum Equation
|
||||||
|
// MomEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int MomEqSolMethod = 2;
|
||||||
|
// MomEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int MomEqPrecondMethod = 1;
|
||||||
|
int MomEqMaxSweep = 30;
|
||||||
|
double MomEqIterSolvTol = 1e-8;
|
||||||
|
double MomEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
//Parameters For Solving the Pressure Possion Equation
|
||||||
|
// PPEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int PPEqSolMethod= 3;
|
||||||
|
// PPEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int PPEqPrecondMethod= 1;
|
||||||
|
int PPEqMaxSweep = 30;
|
||||||
|
double PPEqIterSolvTol = 1e-8;
|
||||||
|
double PPEqRelaxCoeff = 0.3;
|
||||||
|
|
||||||
|
//Relaxation factor of surface flux
|
||||||
|
double FaceFluxRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
int isCalGravityVisSource = 0;
|
||||||
|
int bodyForceFlag = 0;
|
||||||
|
double gravityX = 0.0;
|
||||||
|
double gravityY = -9.81;
|
||||||
|
double gravityZ = 0.0;
|
||||||
|
|
||||||
|
int isBoussinesqApproximation = 0;
|
||||||
|
double thermalExpansionCoeff = 3.44827e-3;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Turbulence Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveTurb : is(1)/not(0);
|
||||||
|
int isSolveTurb = 0;
|
||||||
|
// TurbEqSolverName : k-epsilon(KE)/Spalart-Allmaras(SA)
|
||||||
|
string TurbEqSolverName = "KE";
|
||||||
|
|
||||||
|
// Initial value of Turbulence variables
|
||||||
|
double initKinetic = 0.64;
|
||||||
|
double initEpsilon = 5771;
|
||||||
|
|
||||||
|
//Parameters For Solving the Turbulence Equation
|
||||||
|
// TurbEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int TurbEqSolMethod = 2;
|
||||||
|
// TurbEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int TurbEqPrecondMethod = 1;
|
||||||
|
int TurbEqMaxSweep = 30;
|
||||||
|
double TurbEqIterSolvTol = 1e-8;
|
||||||
|
double TurbEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Energy Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveEnergy : is(1)/not(0);
|
||||||
|
int isSolveEnergy = 1;
|
||||||
|
|
||||||
|
// Initial value of Energy variables
|
||||||
|
double initT = 400;
|
||||||
|
double initCPg = 1006;
|
||||||
|
double initK = 0.0242;
|
||||||
|
double initkappa = 1.4;
|
||||||
|
double refT = 300;
|
||||||
|
|
||||||
|
//Parameters For Solving the Energy Equation
|
||||||
|
// EnergyEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int EnergyEqSolMethod = 2;
|
||||||
|
// EnergyEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int EnergyEqPrecondMethod = 1;
|
||||||
|
int EnergyEqMaxSweep = 30;
|
||||||
|
double EnergyEqIterSolvTol = 1e-8;
|
||||||
|
double EnergyEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Species Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveSpecies : is(1)/not(0);
|
||||||
|
int isSolveSpecies = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
int numberOfSpeciesIncom = 1;
|
||||||
|
string speciesNameIncom[] = [AIR];
|
||||||
|
double initMassFractionIncom[] = [1.0];
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
// SpeciesEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int SpeciesEqSolMethod = 2;
|
||||||
|
// SpeciesEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int SpeciesEqPrecondMethod = 1;
|
||||||
|
int SpeciesEqMaxSweep = 30;
|
||||||
|
double SpeciesEqIterSolvTol = 1e-8;
|
||||||
|
double SpeciesEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Unsteady Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// iunsteady : is(1)/not(0);
|
||||||
|
int iunsteady = 0;
|
||||||
|
double startTime = 0.0;
|
||||||
|
double endTime = 20;
|
||||||
|
double dt = 0.1;
|
||||||
|
int min_sub_iter = 50;
|
||||||
|
int max_sub_iter = 50;
|
||||||
|
|
||||||
|
// isStableUnsteadyMethod : is(1)/not(0);
|
||||||
|
int isStableUnsteadyMethod = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Solution Method #
|
||||||
|
#########################################################################
|
||||||
|
// ConvCalcMethod : UPWIND/CDS/QUICK/SUDS
|
||||||
|
string ConvCalcMethod = "UPWIND"
|
||||||
|
|
||||||
|
// DiffCalcMethod : NON_ORTHOGONAL(default)
|
||||||
|
string DiffCalcMethod = "NON_ORTHOGONAL";
|
||||||
|
|
||||||
|
//TranCalcMethod : IMPLICIT_EULER(1st)/IMPLICIT_2ND_ORDER(2st)
|
||||||
|
string TranCalcMethod = "IMPLICIT_EULER";
|
||||||
|
|
||||||
|
// GradCalcMethod : GAUSS/LSQ
|
||||||
|
string GradCalcMethod = "GAUSS";
|
||||||
|
|
||||||
|
// mathLibType : hypre(0)/unap(1)/yhamg(2)
|
||||||
|
int mathLibType = 0;
|
||||||
|
|
||||||
|
// compressible : is(0, default)/not(1)
|
||||||
|
int compressible = 0;
|
||||||
|
|
||||||
|
// SIMPLEC : SIMPLE(0)/SIMPLEC(1)
|
||||||
|
int SIMPLEC = 1;
|
||||||
|
|
||||||
|
// isSkewness : stable gradient method: is(1)/not(0)
|
||||||
|
int isSkewness = 0;
|
||||||
|
|
||||||
|
//rhoType : Constant(0)/IncompressibleIdealGas(1)/IdealGas(2)
|
||||||
|
int rhoType = 0;
|
||||||
|
|
||||||
|
//muType: Constant(0)/SutherLand(1)/IdealGasMixingLaw(2),
|
||||||
|
int muType = 0;
|
||||||
|
|
||||||
|
//kType : Constant(0)/MassWeightedMixingLaw(1)/IdealGasMixingLaw(2)
|
||||||
|
int kType = 0;
|
||||||
|
|
||||||
|
//cpType : Constant(0)/Mixing(1)
|
||||||
|
int cpType = 0;
|
||||||
|
|
||||||
|
//massdiffType : ConstantDiluteApprox(1)/DiluteApprox(2)
|
||||||
|
int massdiffType = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# 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), species(from 71 ~ 70 + numberOfSpecies)
|
||||||
|
// 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];
|
||||||
|
int plotFieldType = 1;
|
||||||
|
|
||||||
|
string resSaveFile = "results/res.dat";
|
||||||
|
string aircoeffile = "results/aircoef.dat";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
#########################################################################
|
||||||
|
# Grid data type #
|
||||||
|
#########################################################################
|
||||||
|
// gridtype: Grid type for generation, conversion, reconstruction, merging.
|
||||||
|
// 0 -- Unstructured grid.
|
||||||
|
// 1 -- Structured grid.
|
||||||
|
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
|
||||||
|
// axisRotateOrder : axis rotating order.
|
||||||
|
// 1 -- X-axis.
|
||||||
|
// 2 -- Y-axis.
|
||||||
|
// 3 -- Z-axis.
|
||||||
|
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
|
||||||
|
// from_gtype: Type of grid data type in grid conversion process.
|
||||||
|
// -1 -- MULTI_TYPE.
|
||||||
|
// 1 -- PHengLEI, *.fts.
|
||||||
|
// 2 -- CGNS, *.cgns.
|
||||||
|
// 3 -- Plot3D type of structured grid, *.dat/*.grd.
|
||||||
|
// 4 -- Fieldview type of unstructured grid, *.dat/*.inp.
|
||||||
|
// 5 -- Fluent, *.cas/*.msh.
|
||||||
|
// 6 -- Ustar, mgrid.in.
|
||||||
|
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
|
||||||
|
// 8 -- GMSH, *.msh.
|
||||||
|
int gridtype = 0;
|
||||||
|
int nAxisRotateTimes = 0;
|
||||||
|
int axisRotateOrder[] = [1, 2, 3];
|
||||||
|
double axisRotateAngles[] = [0.0, 0.0, 0.0];
|
||||||
|
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";
|
|
@ -0,0 +1,53 @@
|
||||||
|
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 = 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 = 4;
|
||||||
|
//string parafilename = "./bin/repository.hypara";
|
||||||
|
|
||||||
|
//int nsimutask = 5;
|
||||||
|
//string parafilename = "./bin/overset_grid_view.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 = "";
|
|
@ -0,0 +1,21 @@
|
||||||
|
// pgridtype: The grid type.
|
||||||
|
// 0 -- unstruct grid.
|
||||||
|
// 1 -- struct grid.
|
||||||
|
// maxproc: The number of partition zones that want to be divided into,
|
||||||
|
// which is equal to the number of CPU processors you want.
|
||||||
|
// Usually, 50~100 thousands structured cells per CPU-Core is suggested.
|
||||||
|
// 30~70 thousands unstructured cells per CPU-Core is suggested.
|
||||||
|
// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts).
|
||||||
|
// partition_grid_file: Target partition grid file(PHengLEI type, *.fts).
|
||||||
|
|
||||||
|
int pgridtype = 0;
|
||||||
|
int maxproc = 4;
|
||||||
|
|
||||||
|
string original_grid_file = "./grid/cavity.fts";
|
||||||
|
string partition_grid_file = "./grid/cavity__4.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;
|
|
@ -0,0 +1,5 @@
|
||||||
|
红山开源风雷算例库原始网格获取百度网盘链接:
|
||||||
|
链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA
|
||||||
|
提取码:w47m
|
||||||
|
|
||||||
|
注:plot3D格式网格需同时下载.grd和.inp文件
|
|
@ -0,0 +1,76 @@
|
||||||
|
# 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 = "wall";
|
||||||
|
{
|
||||||
|
string bodyName = "body";
|
||||||
|
int bcType = 2;
|
||||||
|
double initT = 294;
|
||||||
|
}
|
||||||
|
string bcName = "farinlet";
|
||||||
|
{
|
||||||
|
int bcType = 5;
|
||||||
|
double initU= 1.0;
|
||||||
|
double initT = 294;
|
||||||
|
double initMassFractionIncom[] = [1.0, 0.0, 0.0];
|
||||||
|
double initKinetic = 18.375;
|
||||||
|
double initEpsilon = 322881.7;
|
||||||
|
}
|
||||||
|
string bcName = "ycinlet";
|
||||||
|
{
|
||||||
|
int bcType = 52;
|
||||||
|
double totalPressure = 1000;
|
||||||
|
double initT = 294;
|
||||||
|
double initMassFractionIncom[] = [0.0, 0.9, 0.1];
|
||||||
|
double initKinetic = 0.3243375;
|
||||||
|
double initEpsilon = 66;
|
||||||
|
}
|
||||||
|
string bcName = "outlet";
|
||||||
|
{
|
||||||
|
int bcType = 6;
|
||||||
|
double initP = 0;
|
||||||
|
double initT = 294;
|
||||||
|
double initMassFractionIncom[] = [1.0, 0.0, 0.0];
|
||||||
|
double initKinetic = 0.3243375;
|
||||||
|
double initEpsilon = 66;
|
||||||
|
}
|
||||||
|
|
||||||
|
# '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
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,211 @@
|
||||||
|
#########################################################################
|
||||||
|
# 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.
|
||||||
|
// intervalStepRes: The step intervals for residual 'res.dat' saved.
|
||||||
|
int maxSimuStep = 2000;
|
||||||
|
int intervalStepFlow = 2000;
|
||||||
|
int intervalStepPlot = 500;
|
||||||
|
int intervalStepForce = 1;
|
||||||
|
int intervalStepRes = 1;
|
||||||
|
|
||||||
|
// gridfile: The partitioned Grid file path, using relative path,
|
||||||
|
// which is relative to the working directory.
|
||||||
|
string gridfile = "./grid/yanchongCase14__4.fts";
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Flow Parameter #
|
||||||
|
#########################################################################
|
||||||
|
|
||||||
|
//flowSolverName : SIMPLE/CompressibleSIMPLE/PISO
|
||||||
|
string flowSolverName = "CompressibleSIMPLE";
|
||||||
|
|
||||||
|
// Initial value of flow variables
|
||||||
|
double initRho = 1.225;
|
||||||
|
double initU = 0;
|
||||||
|
double initV = 0;
|
||||||
|
double initW = 0;
|
||||||
|
double initP = 0;
|
||||||
|
double initMu = 1.7894e-05;
|
||||||
|
double initRg = 296.928571;
|
||||||
|
double refP = 101325;
|
||||||
|
int refPLocate = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Momentum Equation
|
||||||
|
// MomEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int MomEqSolMethod = 2;
|
||||||
|
// MomEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int MomEqPrecondMethod = 1;
|
||||||
|
int MomEqMaxSweep = 30;
|
||||||
|
double MomEqIterSolvTol = 1e-8;
|
||||||
|
double MomEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
//Parameters For Solving the Pressure Possion Equation
|
||||||
|
// PPEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int PPEqSolMethod= 3;
|
||||||
|
// PPEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int PPEqPrecondMethod= 1;
|
||||||
|
int PPEqMaxSweep = 30;
|
||||||
|
double PPEqIterSolvTol = 1e-8;
|
||||||
|
double PPEqRelaxCoeff = 0.3;
|
||||||
|
|
||||||
|
//Relaxation factor of surface flux
|
||||||
|
double FaceFluxRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
int isCalGravityVisSource = 0;
|
||||||
|
int bodyForceFlag = 0;
|
||||||
|
double gravityX = 0.0;
|
||||||
|
double gravityY = -9.81;
|
||||||
|
double gravityZ = 0.0;
|
||||||
|
|
||||||
|
int isBoussinesqApproximation = 0;
|
||||||
|
double thermalExpansionCoeff = 3.44827e-3;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Turbulence Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveTurb : is(1)/not(0);
|
||||||
|
int isSolveTurb = 1;
|
||||||
|
// TurbEqSolverName : k-epsilon(KE)/Spalart-Allmaras(SA)
|
||||||
|
string TurbEqSolverName = "KE";
|
||||||
|
|
||||||
|
// Initial value of Turbulence variables
|
||||||
|
double initKinetic = 0.64;
|
||||||
|
double initEpsilon = 5771;
|
||||||
|
|
||||||
|
//Parameters For Solving the Turbulence Equation
|
||||||
|
// TurbEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int TurbEqSolMethod = 2;
|
||||||
|
// TurbEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int TurbEqPrecondMethod = 1;
|
||||||
|
int TurbEqMaxSweep = 30;
|
||||||
|
double TurbEqIterSolvTol = 1e-8;
|
||||||
|
double TurbEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Energy Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveEnergy : is(1)/not(0);
|
||||||
|
int isSolveEnergy = 1;
|
||||||
|
|
||||||
|
// Initial value of Energy variables
|
||||||
|
double initT = 273.15;
|
||||||
|
double initCPg = 1006.43;
|
||||||
|
double initK = 0.0242;
|
||||||
|
double initkappa = 1.4;
|
||||||
|
double refT = 300;
|
||||||
|
|
||||||
|
//Parameters For Solving the Energy Equation
|
||||||
|
// EnergyEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int EnergyEqSolMethod = 2;
|
||||||
|
// EnergyEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int EnergyEqPrecondMethod = 1;
|
||||||
|
int EnergyEqMaxSweep = 30;
|
||||||
|
double EnergyEqIterSolvTol = 1e-8;
|
||||||
|
double EnergyEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Species Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveSpecies : is(1)/not(0);
|
||||||
|
int isSolveSpecies = 1;
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
int numberOfSpeciesIncom = 3;
|
||||||
|
string speciesNameIncom[] = [AIR, CH4, H2S];
|
||||||
|
double initMassFractionIncom[] = [1.0, 0.0, 0.0];
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
// SpeciesEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int SpeciesEqSolMethod = 2;
|
||||||
|
// SpeciesEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int SpeciesEqPrecondMethod = 1;
|
||||||
|
int SpeciesEqMaxSweep = 30;
|
||||||
|
double SpeciesEqIterSolvTol = 1e-8;
|
||||||
|
double SpeciesEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Unsteady Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// iunsteady : is(1)/not(0);
|
||||||
|
int iunsteady = 0;
|
||||||
|
double startTime = 0.0;
|
||||||
|
double endTime = 20;
|
||||||
|
double dt = 0.1;
|
||||||
|
int min_sub_iter = 50;
|
||||||
|
int max_sub_iter = 50;
|
||||||
|
|
||||||
|
// isStableUnsteadyMethod : is(1)/not(0);
|
||||||
|
int isStableUnsteadyMethod = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Solution Method #
|
||||||
|
#########################################################################
|
||||||
|
// ConvCalcMethod : UPWIND/CDS/QUICK/SUDS
|
||||||
|
string ConvCalcMethod = "UPWIND"
|
||||||
|
|
||||||
|
// DiffCalcMethod : NON_ORTHOGONAL(default)
|
||||||
|
string DiffCalcMethod = "NON_ORTHOGONAL";
|
||||||
|
|
||||||
|
//TranCalcMethod : IMPLICIT_EULER(1st)/IMPLICIT_2ND_ORDER(2st)
|
||||||
|
string TranCalcMethod = "IMPLICIT_EULER";
|
||||||
|
|
||||||
|
// GradCalcMethod : GAUSS/LSQ
|
||||||
|
string GradCalcMethod = "GAUSS";
|
||||||
|
|
||||||
|
// mathLibType : hypre(0)/unap(1)/yhamg(2)
|
||||||
|
int mathLibType = 0;
|
||||||
|
|
||||||
|
// compressible : is(0, default)/not(1)
|
||||||
|
int compressible = 0;
|
||||||
|
|
||||||
|
// SIMPLEC : SIMPLE(0)/SIMPLEC(1)
|
||||||
|
int SIMPLEC = 1;
|
||||||
|
|
||||||
|
// isSkewness : stable gradient method: is(1)/not(0)
|
||||||
|
int isSkewness = 0;
|
||||||
|
|
||||||
|
//rhoType : Constant(0)/IncompressibleIdealGas(1)/IdealGas(2)
|
||||||
|
int rhoType = 2;
|
||||||
|
|
||||||
|
//muType: Constant(0)/SutherLand(1)/IdealGasMixingLaw(2),
|
||||||
|
int muType = 0;
|
||||||
|
|
||||||
|
//kType : Constant(0)/MassWeightedMixingLaw(1)/IdealGasMixingLaw(2)
|
||||||
|
int kType = 0;
|
||||||
|
|
||||||
|
//cpType : Constant(0)/Mixing(1)
|
||||||
|
int cpType = 0;
|
||||||
|
|
||||||
|
//massdiffType : ConstantDiluteApprox(1)/DiluteApprox(2)
|
||||||
|
int massdiffType = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# 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), species(from 71 ~ 70 + numberOfSpecies)
|
||||||
|
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
|
||||||
|
// Variables order must from small to big.
|
||||||
|
|
||||||
|
int nVisualVariables = 13;
|
||||||
|
int visualVariables[] = [22, 23, 24, 25, 27, 28, 29, 31, 32, 70, 71, 72, 73];
|
||||||
|
int plotFieldType = 1;
|
||||||
|
|
||||||
|
string resSaveFile = "results/res.dat";
|
||||||
|
string aircoeffile = "results/aircoef.dat";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
#########################################################################
|
||||||
|
# Grid data type #
|
||||||
|
#########################################################################
|
||||||
|
// gridtype: Grid type for generation, conversion, reconstruction, merging.
|
||||||
|
// 0 -- Unstructured grid.
|
||||||
|
// 1 -- Structured grid.
|
||||||
|
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
|
||||||
|
// axisRotateOrder : axis rotating order.
|
||||||
|
// 1 -- X-axis.
|
||||||
|
// 2 -- Y-axis.
|
||||||
|
// 3 -- Z-axis.
|
||||||
|
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
|
||||||
|
// from_gtype: Type of grid data type in grid conversion process.
|
||||||
|
// -1 -- MULTI_TYPE.
|
||||||
|
// 1 -- PHengLEI, *.fts.
|
||||||
|
// 2 -- CGNS, *.cgns.
|
||||||
|
// 3 -- Plot3D type of structured grid, *.dat/*.grd.
|
||||||
|
// 4 -- Fieldview type of unstructured grid, *.dat/*.inp.
|
||||||
|
// 5 -- Fluent, *.cas/*.msh.
|
||||||
|
// 6 -- Ustar, mgrid.in.
|
||||||
|
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
|
||||||
|
// 8 -- GMSH, *.msh.
|
||||||
|
int gridtype = 0;
|
||||||
|
int nAxisRotateTimes = 0;
|
||||||
|
int axisRotateOrder[] = [1, 2, 3];
|
||||||
|
double axisRotateAngles[] = [0.0, 0.0, 0.0];
|
||||||
|
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.
|
||||||
|
int numberOfMultifile = 1;
|
||||||
|
string from_gfile = "./grid/yanchongCase14.cas";
|
||||||
|
string out_gfile = "./grid/yanchongCase14.fts";
|
|
@ -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 = 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 = 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 = "";
|
|
@ -0,0 +1,22 @@
|
||||||
|
// pgridtype: The grid type.
|
||||||
|
// 0 -- unstruct grid.
|
||||||
|
// 1 -- struct grid.
|
||||||
|
// maxproc: The number of partition zones that want to be divided into,
|
||||||
|
// which is equal to the number of CPU processors you want.
|
||||||
|
// Usually, 50~100 thousands structured cells per CPU-Core is suggested.
|
||||||
|
// 30~70 thousands unstructured cells per CPU-Core is suggested.
|
||||||
|
// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts).
|
||||||
|
// partition_grid_file: Target partition grid file(PHengLEI type, *.fts).
|
||||||
|
|
||||||
|
int pgridtype = 0;
|
||||||
|
int maxproc = 4;
|
||||||
|
|
||||||
|
string original_grid_file = "./grid/yanchongCase14.fts";
|
||||||
|
string partition_grid_file = "./grid/yanchongCase14__4.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;
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
红山开源风雷算例库原始网格获取百度网盘链接:
|
||||||
|
链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA
|
||||||
|
提取码:w47m
|
||||||
|
|
||||||
|
注:plot3D格式网格需同时下载.grd和.inp文件
|
|
@ -0,0 +1,48 @@
|
||||||
|
# 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 = 3;
|
||||||
|
string bcName = "airfoil_lower";
|
||||||
|
{
|
||||||
|
int bcType = 2;
|
||||||
|
}
|
||||||
|
string bcName = "airfoil_upper";
|
||||||
|
{
|
||||||
|
int bcType = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
string bcName = "farfield";
|
||||||
|
{
|
||||||
|
int bcType = 5;
|
||||||
|
double initU = 1;
|
||||||
|
double initV = 0;
|
||||||
|
double initKinetic =0.0001460735;
|
||||||
|
}
|
||||||
|
|
||||||
|
# '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
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,211 @@
|
||||||
|
#########################################################################
|
||||||
|
# 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.
|
||||||
|
// intervalStepRes: The step intervals for residual 'res.dat' saved.
|
||||||
|
int maxSimuStep = 2000;
|
||||||
|
int intervalStepFlow = 2000;
|
||||||
|
int intervalStepPlot = 500;
|
||||||
|
int intervalStepForce = 1;
|
||||||
|
int intervalStepRes = 1;
|
||||||
|
|
||||||
|
// gridfile: The partitioned Grid file path, using relative path,
|
||||||
|
// which is relative to the working directory.
|
||||||
|
string gridfile = "./grid/NACA0012__4.fts";
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Flow Parameter #
|
||||||
|
#########################################################################
|
||||||
|
|
||||||
|
//flowSolverName : SIMPLE/CompressibleSIMPLE/PISO
|
||||||
|
string flowSolverName = "PISO";
|
||||||
|
|
||||||
|
// Initial value of flow variables
|
||||||
|
double initRho = 1.225;
|
||||||
|
double initU = 1;
|
||||||
|
double initV = 0;
|
||||||
|
double initW = 0;
|
||||||
|
double initP = 0;
|
||||||
|
double initMu = 1.7894e-05;
|
||||||
|
double initRg = 296.928571;
|
||||||
|
double refP = 101325;
|
||||||
|
int refPLocate = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Momentum Equation
|
||||||
|
// MomEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int MomEqSolMethod = 2;
|
||||||
|
// MomEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int MomEqPrecondMethod = 1;
|
||||||
|
int MomEqMaxSweep = 30;
|
||||||
|
double MomEqIterSolvTol = 1e-8;
|
||||||
|
double MomEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
//Parameters For Solving the Pressure Possion Equation
|
||||||
|
// PPEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int PPEqSolMethod= 3;
|
||||||
|
// PPEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int PPEqPrecondMethod= 1;
|
||||||
|
int PPEqMaxSweep = 30;
|
||||||
|
double PPEqIterSolvTol = 1e-8;
|
||||||
|
double PPEqRelaxCoeff = 0.7;
|
||||||
|
|
||||||
|
//Relaxation factor of surface flux
|
||||||
|
double FaceFluxRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
int isCalGravityVisSource = 0;
|
||||||
|
int bodyForceFlag = 0;
|
||||||
|
double gravityX = 0.0;
|
||||||
|
double gravityY = -9.81;
|
||||||
|
double gravityZ = 0.0;
|
||||||
|
|
||||||
|
int isBoussinesqApproximation = 0;
|
||||||
|
double thermalExpansionCoeff = 3.44827e-3;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Turbulence Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveTurb : is(1)/not(0);
|
||||||
|
int isSolveTurb = 1;
|
||||||
|
// TurbEqSolverName : k-epsilon(KE)/Spalart-Allmaras(SA)
|
||||||
|
string TurbEqSolverName = "SA";
|
||||||
|
|
||||||
|
// Initial value of Turbulence variables
|
||||||
|
double initKinetic = 0.0001460735;
|
||||||
|
double initEpsilon = 2025;
|
||||||
|
|
||||||
|
//Parameters For Solving the Turbulence Equation
|
||||||
|
// TurbEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int TurbEqSolMethod = 2;
|
||||||
|
// TurbEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int TurbEqPrecondMethod = 1;
|
||||||
|
int TurbEqMaxSweep = 30;
|
||||||
|
double TurbEqIterSolvTol = 1e-8;
|
||||||
|
double TurbEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Energy Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveEnergy : is(1)/not(0);
|
||||||
|
int isSolveEnergy = 0;
|
||||||
|
|
||||||
|
// Initial value of Energy variables
|
||||||
|
double initT = 273.15;
|
||||||
|
double initCPg = 1007.0;
|
||||||
|
double initK = 0.0454;
|
||||||
|
double initkappa = 1.4;
|
||||||
|
double refT = 273;
|
||||||
|
|
||||||
|
//Parameters For Solving the Energy Equation
|
||||||
|
// EnergyEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int EnergyEqSolMethod = 2;
|
||||||
|
// EnergyEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int EnergyEqPrecondMethod = 1;
|
||||||
|
int EnergyEqMaxSweep = 30;
|
||||||
|
double EnergyEqIterSolvTol = 1e-8;
|
||||||
|
double EnergyEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Species Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveSpecies : is(1)/not(0);
|
||||||
|
int isSolveSpecies = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
int numberOfSpeciesIncom = 1;
|
||||||
|
string speciesNameIncom[] = [AIR];
|
||||||
|
double initMassFractionIncom[] = [1.0];
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
// SpeciesEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int SpeciesEqSolMethod = 2;
|
||||||
|
// SpeciesEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int SpeciesEqPrecondMethod = 1;
|
||||||
|
int SpeciesEqMaxSweep = 30;
|
||||||
|
double SpeciesEqIterSolvTol = 1e-8;
|
||||||
|
double SpeciesEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Unsteady Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// iunsteady : is(1)/not(0);
|
||||||
|
int iunsteady = 0;
|
||||||
|
double startTime = 0.0;
|
||||||
|
double endTime = 20;
|
||||||
|
double dt = 0.1;
|
||||||
|
int min_sub_iter = 50;
|
||||||
|
int max_sub_iter = 50;
|
||||||
|
|
||||||
|
// isStableUnsteadyMethod : is(1)/not(0);
|
||||||
|
int isStableUnsteadyMethod = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Solution Method #
|
||||||
|
#########################################################################
|
||||||
|
// ConvCalcMethod : UPWIND/CDS/QUICK/SUDS
|
||||||
|
string ConvCalcMethod = "UPWIND"
|
||||||
|
|
||||||
|
// DiffCalcMethod : NON_ORTHOGONAL(default)
|
||||||
|
string DiffCalcMethod = "NON_ORTHOGONAL";
|
||||||
|
|
||||||
|
//TranCalcMethod : IMPLICIT_EULER(1st)/IMPLICIT_2ND_ORDER(2st)
|
||||||
|
string TranCalcMethod = "IMPLICIT_EULER";
|
||||||
|
|
||||||
|
// GradCalcMethod : GAUSS/LSQ
|
||||||
|
string GradCalcMethod = "GAUSS";
|
||||||
|
|
||||||
|
// mathLibType : hypre(0)/unap(1)/yhamg(2)
|
||||||
|
int mathLibType = 0;
|
||||||
|
|
||||||
|
// compressible : is(0, default)/not(1)
|
||||||
|
int compressible = 0;
|
||||||
|
|
||||||
|
// SIMPLEC : SIMPLE(0)/SIMPLEC(1)
|
||||||
|
int SIMPLEC = 1;
|
||||||
|
|
||||||
|
// isSkewness : stable gradient method: is(1)/not(0)
|
||||||
|
int isSkewness = 0;
|
||||||
|
|
||||||
|
//rhoType : Constant(0)/IncompressibleIdealGas(1)/IdealGas(2)
|
||||||
|
int rhoType = 0;
|
||||||
|
|
||||||
|
//muType: Constant(0)/SutherLand(1)/IdealGasMixingLaw(2),
|
||||||
|
int muType = 0;
|
||||||
|
|
||||||
|
//kType : Constant(0)/MassWeightedMixingLaw(1)/IdealGasMixingLaw(2)
|
||||||
|
int kType = 0;
|
||||||
|
|
||||||
|
//cpType : Constant(0)/Mixing(1)
|
||||||
|
int cpType = 0;
|
||||||
|
|
||||||
|
//massdiffType : ConstantDiluteApprox(1)/DiluteApprox(2)
|
||||||
|
int massdiffType = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# 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), species(from 71 ~ 70 + numberOfSpecies)
|
||||||
|
// 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, 29, 31];
|
||||||
|
int plotFieldType = 1;
|
||||||
|
|
||||||
|
string resSaveFile = "results/res.dat";
|
||||||
|
string aircoeffile = "results/aircoef.dat";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
#########################################################################
|
||||||
|
# Grid data type #
|
||||||
|
#########################################################################
|
||||||
|
// gridtype: Grid type for generation, conversion, reconstruction, merging.
|
||||||
|
// 0 -- Unstructured grid.
|
||||||
|
// 1 -- Structured grid.
|
||||||
|
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
|
||||||
|
// axisRotateOrder : axis rotating order.
|
||||||
|
// 1 -- X-axis.
|
||||||
|
// 2 -- Y-axis.
|
||||||
|
// 3 -- Z-axis.
|
||||||
|
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
|
||||||
|
// from_gtype: Type of grid data type in grid conversion process.
|
||||||
|
// -1 -- MULTI_TYPE.
|
||||||
|
// 1 -- PHengLEI, *.fts.
|
||||||
|
// 2 -- CGNS, *.cgns.
|
||||||
|
// 3 -- Plot3D type of structured grid, *.dat/*.grd.
|
||||||
|
// 4 -- Fieldview type of unstructured grid, *.dat/*.inp.
|
||||||
|
// 5 -- Fluent, *.cas/*.msh.
|
||||||
|
// 6 -- Ustar, mgrid.in.
|
||||||
|
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
|
||||||
|
// 8 -- GMSH, *.msh.
|
||||||
|
int gridtype = 0;
|
||||||
|
int nAxisRotateTimes = 0;
|
||||||
|
int axisRotateOrder[] = [1, 2, 3];
|
||||||
|
double axisRotateAngles[] = [0.0, 0.0, 0.0];
|
||||||
|
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/NACA0012.cas";
|
||||||
|
string out_gfile = "./grid/NACA0012.fts";
|
|
@ -0,0 +1,53 @@
|
||||||
|
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 = 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 = 4;
|
||||||
|
//string parafilename = "./bin/repository.hypara";
|
||||||
|
|
||||||
|
//int nsimutask = 5;
|
||||||
|
//string parafilename = "./bin/overset_grid_view.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 = "";
|
|
@ -0,0 +1,22 @@
|
||||||
|
// pgridtype: The grid type.
|
||||||
|
// 0 -- unstruct grid.
|
||||||
|
// 1 -- struct grid.
|
||||||
|
// maxproc: The number of partition zones that want to be divided into,
|
||||||
|
// which is equal to the number of CPU processors you want.
|
||||||
|
// Usually, 50~100 thousands structured cells per CPU-Core is suggested.
|
||||||
|
// 30~70 thousands unstructured cells per CPU-Core is suggested.
|
||||||
|
// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts).
|
||||||
|
// partition_grid_file: Target partition grid file(PHengLEI type, *.fts).
|
||||||
|
|
||||||
|
int pgridtype = 0;
|
||||||
|
int maxproc = 4;
|
||||||
|
|
||||||
|
string original_grid_file = "./grid/NACA0012.fts";
|
||||||
|
string partition_grid_file = "./grid/NACA0012_4.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;
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
红山开源风雷算例库原始网格获取百度网盘链接:
|
||||||
|
链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA
|
||||||
|
提取码:w47m
|
||||||
|
|
||||||
|
注:plot3D格式网格需同时下载.grd和.inp文件
|
|
@ -0,0 +1,48 @@
|
||||||
|
# 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 = 3;
|
||||||
|
string bcName = "airfoil_lower";
|
||||||
|
{
|
||||||
|
int bcType = 2;
|
||||||
|
}
|
||||||
|
string bcName = "airfoil_upper";
|
||||||
|
{
|
||||||
|
int bcType = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
string bcName = "farfield";
|
||||||
|
{
|
||||||
|
int bcType = 5;
|
||||||
|
double initU = 100;
|
||||||
|
double initKinetic = 0.0001460735;
|
||||||
|
double initEpsilon = 2025;
|
||||||
|
}
|
||||||
|
|
||||||
|
# '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
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,211 @@
|
||||||
|
#########################################################################
|
||||||
|
# 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.
|
||||||
|
// intervalStepRes: The step intervals for residual 'res.dat' saved.
|
||||||
|
int maxSimuStep = 2000;
|
||||||
|
int intervalStepFlow = 2000;
|
||||||
|
int intervalStepPlot = 500;
|
||||||
|
int intervalStepForce = 1;
|
||||||
|
int intervalStepRes = 1;
|
||||||
|
|
||||||
|
// gridfile: The partitioned Grid file path, using relative path,
|
||||||
|
// which is relative to the working directory.
|
||||||
|
string gridfile = "./grid/NACA0012__4.fts";
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Flow Parameter #
|
||||||
|
#########################################################################
|
||||||
|
|
||||||
|
//flowSolverName : SIMPLE/CompressibleSIMPLE/PISO
|
||||||
|
string flowSolverName = "SIMPLE";
|
||||||
|
|
||||||
|
// Initial value of flow variables
|
||||||
|
double initRho = 1.0;
|
||||||
|
double initU = 100;
|
||||||
|
double initV = 0;
|
||||||
|
double initW = 0;
|
||||||
|
double initP = 0;
|
||||||
|
double initMu = 0.00001;
|
||||||
|
double initRg = 296.928571;
|
||||||
|
double refP = 101325;
|
||||||
|
int refPLocate = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Momentum Equation
|
||||||
|
// MomEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int MomEqSolMethod = 2;
|
||||||
|
// MomEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int MomEqPrecondMethod = 1;
|
||||||
|
int MomEqMaxSweep = 30;
|
||||||
|
double MomEqIterSolvTol = 1e-8;
|
||||||
|
double MomEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
//Parameters For Solving the Pressure Possion Equation
|
||||||
|
// PPEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int PPEqSolMethod= 3;
|
||||||
|
// PPEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int PPEqPrecondMethod= 1;
|
||||||
|
int PPEqMaxSweep = 30;
|
||||||
|
double PPEqIterSolvTol = 1e-8;
|
||||||
|
double PPEqRelaxCoeff = 0.3;
|
||||||
|
|
||||||
|
//Relaxation factor of surface flux
|
||||||
|
double FaceFluxRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
int isCalGravityVisSource = 0;
|
||||||
|
int bodyForceFlag = 0;
|
||||||
|
double gravityX = 0.0;
|
||||||
|
double gravityY = -9.81;
|
||||||
|
double gravityZ = 0.0;
|
||||||
|
|
||||||
|
int isBoussinesqApproximation = 0;
|
||||||
|
double thermalExpansionCoeff = 3.44827e-3;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Turbulence Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveTurb : is(1)/not(0);
|
||||||
|
int isSolveTurb = 1;
|
||||||
|
// TurbEqSolverName : k-epsilon(KE)/Spalart-Allmaras(SA)
|
||||||
|
string TurbEqSolverName = "KE";
|
||||||
|
|
||||||
|
// Initial value of Turbulence variables
|
||||||
|
double initKinetic = 0.0001460735;
|
||||||
|
double initEpsilon = 2025;
|
||||||
|
|
||||||
|
//Parameters For Solving the Turbulence Equation
|
||||||
|
// TurbEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int TurbEqSolMethod = 2;
|
||||||
|
// TurbEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int TurbEqPrecondMethod = 1;
|
||||||
|
int TurbEqMaxSweep = 30;
|
||||||
|
double TurbEqIterSolvTol = 1e-8;
|
||||||
|
double TurbEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Energy Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveEnergy : is(1)/not(0);
|
||||||
|
int isSolveEnergy = 0;
|
||||||
|
|
||||||
|
// Initial value of Energy variables
|
||||||
|
double initT = 273.15;
|
||||||
|
double initCPg = 1007.0;
|
||||||
|
double initK = 0.0454;
|
||||||
|
double initkappa = 1.4;
|
||||||
|
double refT = 273;
|
||||||
|
|
||||||
|
//Parameters For Solving the Energy Equation
|
||||||
|
// EnergyEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int EnergyEqSolMethod = 2;
|
||||||
|
// EnergyEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int EnergyEqPrecondMethod = 1;
|
||||||
|
int EnergyEqMaxSweep = 30;
|
||||||
|
double EnergyEqIterSolvTol = 1e-8;
|
||||||
|
double EnergyEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Species Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveSpecies : is(1)/not(0);
|
||||||
|
int isSolveSpecies = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
int numberOfSpeciesIncom = 1;
|
||||||
|
string speciesNameIncom[] = [AIR];
|
||||||
|
double initMassFractionIncom[] = [1.0];
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
// SpeciesEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int SpeciesEqSolMethod = 2;
|
||||||
|
// SpeciesEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int SpeciesEqPrecondMethod = 1;
|
||||||
|
int SpeciesEqMaxSweep = 30;
|
||||||
|
double SpeciesEqIterSolvTol = 1e-8;
|
||||||
|
double SpeciesEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Unsteady Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// iunsteady : is(1)/not(0);
|
||||||
|
int iunsteady = 0;
|
||||||
|
double startTime = 0.0;
|
||||||
|
double endTime = 20;
|
||||||
|
double dt = 0.1;
|
||||||
|
int min_sub_iter = 50;
|
||||||
|
int max_sub_iter = 50;
|
||||||
|
|
||||||
|
// isStableUnsteadyMethod : is(1)/not(0);
|
||||||
|
int isStableUnsteadyMethod = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Solution Method #
|
||||||
|
#########################################################################
|
||||||
|
// ConvCalcMethod : UPWIND/CDS/QUICK/SUDS
|
||||||
|
string ConvCalcMethod = "UPWIND"
|
||||||
|
|
||||||
|
// DiffCalcMethod : NON_ORTHOGONAL(default)
|
||||||
|
string DiffCalcMethod = "NON_ORTHOGONAL";
|
||||||
|
|
||||||
|
//TranCalcMethod : IMPLICIT_EULER(1st)/IMPLICIT_2ND_ORDER(2st)
|
||||||
|
string TranCalcMethod = "IMPLICIT_EULER";
|
||||||
|
|
||||||
|
// GradCalcMethod : GAUSS/LSQ
|
||||||
|
string GradCalcMethod = "GAUSS";
|
||||||
|
|
||||||
|
// mathLibType : hypre(0)/unap(1)/yhamg(2)
|
||||||
|
int mathLibType = 0;
|
||||||
|
|
||||||
|
// compressible : is(0, default)/not(1)
|
||||||
|
int compressible = 0;
|
||||||
|
|
||||||
|
// SIMPLEC : SIMPLE(0)/SIMPLEC(1)
|
||||||
|
int SIMPLEC = 1;
|
||||||
|
|
||||||
|
// isSkewness : stable gradient method: is(1)/not(0)
|
||||||
|
int isSkewness = 0;
|
||||||
|
|
||||||
|
//rhoType : Constant(0)/IncompressibleIdealGas(1)/IdealGas(2)
|
||||||
|
int rhoType = 0;
|
||||||
|
|
||||||
|
//muType: Constant(0)/SutherLand(1)/IdealGasMixingLaw(2),
|
||||||
|
int muType = 0;
|
||||||
|
|
||||||
|
//kType : Constant(0)/MassWeightedMixingLaw(1)/IdealGasMixingLaw(2)
|
||||||
|
int kType = 0;
|
||||||
|
|
||||||
|
//cpType : Constant(0)/Mixing(1)
|
||||||
|
int cpType = 0;
|
||||||
|
|
||||||
|
//massdiffType : ConstantDiluteApprox(1)/DiluteApprox(2)
|
||||||
|
int massdiffType = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# 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), species(from 71 ~ 70 + numberOfSpecies)
|
||||||
|
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
|
||||||
|
// Variables order must from small to big.
|
||||||
|
|
||||||
|
int nVisualVariables = 7;
|
||||||
|
int visualVariables[] = [22, 23, 24, 25, 29, 31,32];
|
||||||
|
int plotFieldType = 1;
|
||||||
|
|
||||||
|
string resSaveFile = "results/res.dat";
|
||||||
|
string aircoeffile = "results/aircoef.dat";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
#########################################################################
|
||||||
|
# Grid data type #
|
||||||
|
#########################################################################
|
||||||
|
// gridtype: Grid type for generation, conversion, reconstruction, merging.
|
||||||
|
// 0 -- Unstructured grid.
|
||||||
|
// 1 -- Structured grid.
|
||||||
|
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
|
||||||
|
// axisRotateOrder : axis rotating order.
|
||||||
|
// 1 -- X-axis.
|
||||||
|
// 2 -- Y-axis.
|
||||||
|
// 3 -- Z-axis.
|
||||||
|
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
|
||||||
|
// from_gtype: Type of grid data type in grid conversion process.
|
||||||
|
// -1 -- MULTI_TYPE.
|
||||||
|
// 1 -- PHengLEI, *.fts.
|
||||||
|
// 2 -- CGNS, *.cgns.
|
||||||
|
// 3 -- Plot3D type of structured grid, *.dat/*.grd.
|
||||||
|
// 4 -- Fieldview type of unstructured grid, *.dat/*.inp.
|
||||||
|
// 5 -- Fluent, *.cas/*.msh.
|
||||||
|
// 6 -- Ustar, mgrid.in.
|
||||||
|
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
|
||||||
|
// 8 -- GMSH, *.msh.
|
||||||
|
int gridtype = 0;
|
||||||
|
int nAxisRotateTimes = 0;
|
||||||
|
int axisRotateOrder[] = [1, 2, 3];
|
||||||
|
double axisRotateAngles[] = [0.0, 0.0, 0.0];
|
||||||
|
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/NACA0012.cas";
|
||||||
|
string out_gfile = "./grid/NACA0012.fts";
|
|
@ -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 = 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 = 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 = "";
|
|
@ -0,0 +1,22 @@
|
||||||
|
// pgridtype: The grid type.
|
||||||
|
// 0 -- unstruct grid.
|
||||||
|
// 1 -- struct grid.
|
||||||
|
// maxproc: The number of partition zones that want to be divided into,
|
||||||
|
// which is equal to the number of CPU processors you want.
|
||||||
|
// Usually, 50~100 thousands structured cells per CPU-Core is suggested.
|
||||||
|
// 30~70 thousands unstructured cells per CPU-Core is suggested.
|
||||||
|
// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts).
|
||||||
|
// partition_grid_file: Target partition grid file(PHengLEI type, *.fts).
|
||||||
|
|
||||||
|
int pgridtype = 0;
|
||||||
|
int maxproc = 4;
|
||||||
|
|
||||||
|
string original_grid_file = "./grid/NACA0012.fts";
|
||||||
|
string partition_grid_file = "./grid/NACA0012_4.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;
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
红山开源风雷算例库原始网格获取百度网盘链接:
|
||||||
|
链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA
|
||||||
|
提取码:w47m
|
||||||
|
|
||||||
|
注:plot3D格式网格需同时下载.grd和.inp文件
|
|
@ -0,0 +1,65 @@
|
||||||
|
# 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 bcName = "coldwall";
|
||||||
|
{
|
||||||
|
string bodyName = "body";
|
||||||
|
int bcType = 2;
|
||||||
|
double initT = 290.0;
|
||||||
|
}
|
||||||
|
string bcName = "hotwall";
|
||||||
|
{
|
||||||
|
string bodyName = "body";
|
||||||
|
int bcType = 2;
|
||||||
|
double initT = 305.0;
|
||||||
|
}
|
||||||
|
string bcName = "topwall";
|
||||||
|
{
|
||||||
|
string bodyName = "body";
|
||||||
|
int bcType = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
# '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
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,211 @@
|
||||||
|
#########################################################################
|
||||||
|
# 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.
|
||||||
|
// intervalStepRes: The step intervals for residual 'res.dat' saved.
|
||||||
|
int maxSimuStep = 2000;
|
||||||
|
int intervalStepFlow = 2000;
|
||||||
|
int intervalStepPlot = 500;
|
||||||
|
int intervalStepForce = 1;
|
||||||
|
int intervalStepRes = 1;
|
||||||
|
|
||||||
|
// gridfile: The partitioned Grid file path, using relative path,
|
||||||
|
// which is relative to the working directory.
|
||||||
|
string gridfile = "./grid/run__4.fts";
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Flow Parameter #
|
||||||
|
#########################################################################
|
||||||
|
|
||||||
|
//flowSolverName : SIMPLE/CompressibleSIMPLE/PISO
|
||||||
|
string flowSolverName = "SIMPLE";
|
||||||
|
|
||||||
|
// Initial value of flow variables
|
||||||
|
double initRho = 1.1405;
|
||||||
|
double initU = 0;
|
||||||
|
double initV = 0;
|
||||||
|
double initW = 0;
|
||||||
|
double initP = 0;
|
||||||
|
double initMu = 1.7894e-05;
|
||||||
|
double initRg = 296.928571;
|
||||||
|
double refP = 101325;
|
||||||
|
int refPLocate = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Momentum Equation
|
||||||
|
// MomEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int MomEqSolMethod = 2;
|
||||||
|
// MomEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int MomEqPrecondMethod = 1;
|
||||||
|
int MomEqMaxSweep = 30;
|
||||||
|
double MomEqIterSolvTol = 1e-8;
|
||||||
|
double MomEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
//Parameters For Solving the Pressure Possion Equation
|
||||||
|
// PPEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int PPEqSolMethod= 3;
|
||||||
|
// PPEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int PPEqPrecondMethod= 1;
|
||||||
|
int PPEqMaxSweep = 30;
|
||||||
|
double PPEqIterSolvTol = 1e-8;
|
||||||
|
double PPEqRelaxCoeff = 0.3;
|
||||||
|
|
||||||
|
//Relaxation factor of surface flux
|
||||||
|
double FaceFluxRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
int isCalGravityVisSource = 1;
|
||||||
|
int bodyForceFlag = 0;
|
||||||
|
double gravityX = 0.0;
|
||||||
|
double gravityY = -9.81;
|
||||||
|
double gravityZ = 0.0;
|
||||||
|
|
||||||
|
int isBoussinesqApproximation = 1;
|
||||||
|
double thermalExpansionCoeff = 3.44827e-3;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Turbulence Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveTurb : is(1)/not(0);
|
||||||
|
int isSolveTurb = 0;
|
||||||
|
// TurbEqSolverName : k-epsilon(KE)/Spalart-Allmaras(SA)
|
||||||
|
string TurbEqSolverName = "KE";
|
||||||
|
|
||||||
|
// Initial value of Turbulence variables
|
||||||
|
double initKinetic = 0.64;
|
||||||
|
double initEpsilon = 5771;
|
||||||
|
|
||||||
|
//Parameters For Solving the Turbulence Equation
|
||||||
|
// TurbEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int TurbEqSolMethod = 2;
|
||||||
|
// TurbEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int TurbEqPrecondMethod = 1;
|
||||||
|
int TurbEqMaxSweep = 30;
|
||||||
|
double TurbEqIterSolvTol = 1e-8;
|
||||||
|
double TurbEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Energy Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveEnergy : is(1)/not(0);
|
||||||
|
int isSolveEnergy = 1;
|
||||||
|
|
||||||
|
// Initial value of Energy variables
|
||||||
|
double initT = 295;
|
||||||
|
double initCPg = 1006.43;
|
||||||
|
double initK = 0.0242;
|
||||||
|
double initkappa = 1.4;
|
||||||
|
double refT = 290;
|
||||||
|
|
||||||
|
//Parameters For Solving the Energy Equation
|
||||||
|
// EnergyEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int EnergyEqSolMethod = 2;
|
||||||
|
// EnergyEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int EnergyEqPrecondMethod = 1;
|
||||||
|
int EnergyEqMaxSweep = 30;
|
||||||
|
double EnergyEqIterSolvTol = 1e-8;
|
||||||
|
double EnergyEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Species Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveSpecies : is(1)/not(0);
|
||||||
|
int isSolveSpecies = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
int numberOfSpeciesIncom = 1;
|
||||||
|
string speciesNameIncom[] = [AIR];
|
||||||
|
double initMassFractionIncom[] = [1.0];
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
// SpeciesEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int SpeciesEqSolMethod = 2;
|
||||||
|
// SpeciesEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int SpeciesEqPrecondMethod = 1;
|
||||||
|
int SpeciesEqMaxSweep = 30;
|
||||||
|
double SpeciesEqIterSolvTol = 1e-8;
|
||||||
|
double SpeciesEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Unsteady Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// iunsteady : is(1)/not(0);
|
||||||
|
int iunsteady = 0;
|
||||||
|
double startTime = 0.0;
|
||||||
|
double endTime = 20;
|
||||||
|
double dt = 0.1;
|
||||||
|
int min_sub_iter = 50;
|
||||||
|
int max_sub_iter = 50;
|
||||||
|
|
||||||
|
// isStableUnsteadyMethod : is(1)/not(0);
|
||||||
|
int isStableUnsteadyMethod = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Solution Method #
|
||||||
|
#########################################################################
|
||||||
|
// ConvCalcMethod : UPWIND/CDS/QUICK/SUDS
|
||||||
|
string ConvCalcMethod = "CDS"
|
||||||
|
|
||||||
|
// DiffCalcMethod : NON_ORTHOGONAL(default)
|
||||||
|
string DiffCalcMethod = "NON_ORTHOGONAL";
|
||||||
|
|
||||||
|
//TranCalcMethod : IMPLICIT_EULER(1st)/IMPLICIT_2ND_ORDER(2st)
|
||||||
|
string TranCalcMethod = "IMPLICIT_EULER";
|
||||||
|
|
||||||
|
// GradCalcMethod : GAUSS/LSQ
|
||||||
|
string GradCalcMethod = "GAUSS";
|
||||||
|
|
||||||
|
// mathLibType : hypre(0)/unap(1)/yhamg(2)
|
||||||
|
int mathLibType = 0;
|
||||||
|
|
||||||
|
// compressible : is(0, default)/not(1)
|
||||||
|
int compressible = 0;
|
||||||
|
|
||||||
|
// SIMPLEC : SIMPLE(0)/SIMPLEC(1)
|
||||||
|
int SIMPLEC = 1;
|
||||||
|
|
||||||
|
// isSkewness : stable gradient method: is(1)/not(0)
|
||||||
|
int isSkewness = 0;
|
||||||
|
|
||||||
|
//rhoType : Constant(0)/IncompressibleIdealGas(1)/IdealGas(2)
|
||||||
|
int rhoType = 0;
|
||||||
|
|
||||||
|
//muType: Constant(0)/SutherLand(1)/IdealGasMixingLaw(2),
|
||||||
|
int muType = 0;
|
||||||
|
|
||||||
|
//kType : Constant(0)/MassWeightedMixingLaw(1)/IdealGasMixingLaw(2)
|
||||||
|
int kType = 0;
|
||||||
|
|
||||||
|
//cpType : Constant(0)/Mixing(1)
|
||||||
|
int cpType = 0;
|
||||||
|
|
||||||
|
//massdiffType : ConstantDiluteApprox(1)/DiluteApprox(2)
|
||||||
|
int massdiffType = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# 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), species(from 71 ~ 70 + numberOfSpecies)
|
||||||
|
// 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];
|
||||||
|
int plotFieldType = 1;
|
||||||
|
|
||||||
|
string resSaveFile = "results/res.dat";
|
||||||
|
string aircoeffile = "results/aircoef.dat";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
#########################################################################
|
||||||
|
# Grid data type #
|
||||||
|
#########################################################################
|
||||||
|
// gridtype: Grid type for generation, conversion, reconstruction, merging.
|
||||||
|
// 0 -- Unstructured grid.
|
||||||
|
// 1 -- Structured grid.
|
||||||
|
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
|
||||||
|
// axisRotateOrder : axis rotating order.
|
||||||
|
// 1 -- X-axis.
|
||||||
|
// 2 -- Y-axis.
|
||||||
|
// 3 -- Z-axis.
|
||||||
|
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
|
||||||
|
// from_gtype: Type of grid data type in grid conversion process.
|
||||||
|
// -1 -- MULTI_TYPE.
|
||||||
|
// 1 -- PHengLEI, *.fts.
|
||||||
|
// 2 -- CGNS, *.cgns.
|
||||||
|
// 3 -- Plot3D type of structured grid, *.dat/*.grd.
|
||||||
|
// 4 -- Fieldview type of unstructured grid, *.dat/*.inp.
|
||||||
|
// 5 -- Fluent, *.cas/*.msh.
|
||||||
|
// 6 -- Ustar, mgrid.in.
|
||||||
|
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
|
||||||
|
// 8 -- GMSH, *.msh.
|
||||||
|
int gridtype = 0;
|
||||||
|
int nAxisRotateTimes = 0;
|
||||||
|
int axisRotateOrder[] = [1, 2, 3];
|
||||||
|
double axisRotateAngles[] = [0.0, 0.0, 0.0];
|
||||||
|
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";
|
|
@ -0,0 +1,52 @@
|
||||||
|
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 = "";
|
|
@ -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(PHengLEI type, *.fts).
|
||||||
|
// partition_grid_file: Target partition grid file(PHengLEI type, *.fts).
|
||||||
|
int numberOfMultifile = 1;
|
||||||
|
int isWennScheme = 0;
|
||||||
|
int pgridtype = 0;
|
||||||
|
int maxproc = 4;
|
||||||
|
|
||||||
|
string original_grid_file = "./grid/run.fts";
|
||||||
|
string partition_grid_file = "./grid/run__4.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;
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
红山开源风雷算例库原始网格获取百度网盘链接:
|
||||||
|
链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA
|
||||||
|
提取码:w47m
|
||||||
|
|
||||||
|
注:plot3D格式网格需同时下载.grd和.inp文件
|
|
@ -0,0 +1,68 @@
|
||||||
|
# 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 = "in";
|
||||||
|
{
|
||||||
|
string bodyName = "body";
|
||||||
|
int bcType = 5;
|
||||||
|
double initU = 20;
|
||||||
|
double initKinetic = 0.135;
|
||||||
|
double initEpsilon = 1.64025;
|
||||||
|
}
|
||||||
|
string bcName = "out";
|
||||||
|
{
|
||||||
|
string bodyName = "body";
|
||||||
|
int bcType = 6;
|
||||||
|
double initP =0;
|
||||||
|
double initKinetic = 0.135;
|
||||||
|
double initEpsilon = 1.64025;
|
||||||
|
}
|
||||||
|
string bcName = "wall";
|
||||||
|
{
|
||||||
|
string bodyName = "body";
|
||||||
|
int bcType = 2;
|
||||||
|
}
|
||||||
|
string bcName = "symmetry";
|
||||||
|
{
|
||||||
|
int bcType = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
# '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
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,211 @@
|
||||||
|
#########################################################################
|
||||||
|
# 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.
|
||||||
|
// intervalStepRes: The step intervals for residual 'res.dat' saved.
|
||||||
|
int maxSimuStep = 2000;
|
||||||
|
int intervalStepFlow = 2000;
|
||||||
|
int intervalStepPlot = 500;
|
||||||
|
int intervalStepForce = 1;
|
||||||
|
int intervalStepRes = 1;
|
||||||
|
|
||||||
|
// gridfile: The partitioned Grid file path, using relative path,
|
||||||
|
// which is relative to the working directory.
|
||||||
|
string gridfile = "./grid/TurbPlate__4.fts";
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Flow Parameter #
|
||||||
|
#########################################################################
|
||||||
|
|
||||||
|
//flowSolverName : SIMPLE/CompressibleSIMPLE/PISO
|
||||||
|
string flowSolverName = "CompressibleSIMPLE";
|
||||||
|
|
||||||
|
// Initial value of flow variables
|
||||||
|
double initRho = 1.0;
|
||||||
|
double initU = 0;
|
||||||
|
double initV = 0;
|
||||||
|
double initW = 0;
|
||||||
|
double initP = 0;
|
||||||
|
double initMu = 0.00001;
|
||||||
|
double initRg = 296.928571;
|
||||||
|
double refP = 101325;
|
||||||
|
int refPLocate = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Momentum Equation
|
||||||
|
// MomEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int MomEqSolMethod = 2;
|
||||||
|
// MomEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int MomEqPrecondMethod = 1;
|
||||||
|
int MomEqMaxSweep = 30;
|
||||||
|
double MomEqIterSolvTol = 1e-8;
|
||||||
|
double MomEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
//Parameters For Solving the Pressure Possion Equation
|
||||||
|
// PPEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int PPEqSolMethod= 3;
|
||||||
|
// PPEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int PPEqPrecondMethod= 1;
|
||||||
|
int PPEqMaxSweep = 30;
|
||||||
|
double PPEqIterSolvTol = 1e-8;
|
||||||
|
double PPEqRelaxCoeff = 0.3;
|
||||||
|
|
||||||
|
//Relaxation factor of surface flux
|
||||||
|
double FaceFluxRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
int isCalGravityVisSource = 0;
|
||||||
|
int bodyForceFlag = 0;
|
||||||
|
double gravityX = 0.0;
|
||||||
|
double gravityY = -9.81;
|
||||||
|
double gravityZ = 0.0;
|
||||||
|
|
||||||
|
int isBoussinesqApproximation = 0;
|
||||||
|
double thermalExpansionCoeff = 3.44827e-3;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Turbulence Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveTurb : is(1)/not(0);
|
||||||
|
int isSolveTurb = 1;
|
||||||
|
// TurbEqSolverName : k-epsilon(KE)/Spalart-Allmaras(SA)
|
||||||
|
string TurbEqSolverName = "KE";
|
||||||
|
|
||||||
|
// Initial value of Turbulence variables
|
||||||
|
double initKinetic = 0.135;
|
||||||
|
double initEpsilon = 1.64025;
|
||||||
|
|
||||||
|
//Parameters For Solving the Turbulence Equation
|
||||||
|
// TurbEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int TurbEqSolMethod = 2;
|
||||||
|
// TurbEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int TurbEqPrecondMethod = 1;
|
||||||
|
int TurbEqMaxSweep = 30;
|
||||||
|
double TurbEqIterSolvTol = 1e-8;
|
||||||
|
double TurbEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Energy Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveEnergy : is(1)/not(0);
|
||||||
|
int isSolveEnergy = 0;
|
||||||
|
|
||||||
|
// Initial value of Energy variables
|
||||||
|
double initT = 273.15;
|
||||||
|
double initCPg = 1007.0;
|
||||||
|
double initK = 0.0454;
|
||||||
|
double initkappa = 1.4;
|
||||||
|
double refT = 273;
|
||||||
|
|
||||||
|
//Parameters For Solving the Energy Equation
|
||||||
|
// EnergyEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int EnergyEqSolMethod = 2;
|
||||||
|
// EnergyEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int EnergyEqPrecondMethod = 1;
|
||||||
|
int EnergyEqMaxSweep = 30;
|
||||||
|
double EnergyEqIterSolvTol = 1e-8;
|
||||||
|
double EnergyEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Species Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveSpecies : is(1)/not(0);
|
||||||
|
int isSolveSpecies = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
int numberOfSpeciesIncom = 1;
|
||||||
|
string speciesNameIncom[] = [AIR];
|
||||||
|
double initMassFractionIncom[] = [1.0];
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
// SpeciesEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int SpeciesEqSolMethod = 2;
|
||||||
|
// SpeciesEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int SpeciesEqPrecondMethod = 1;
|
||||||
|
int SpeciesEqMaxSweep = 30;
|
||||||
|
double SpeciesEqIterSolvTol = 1e-8;
|
||||||
|
double SpeciesEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Unsteady Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// iunsteady : is(1)/not(0);
|
||||||
|
int iunsteady = 0;
|
||||||
|
double startTime = 0.0;
|
||||||
|
double endTime = 20;
|
||||||
|
double dt = 0.1;
|
||||||
|
int min_sub_iter = 50;
|
||||||
|
int max_sub_iter = 50;
|
||||||
|
|
||||||
|
// isStableUnsteadyMethod : is(1)/not(0);
|
||||||
|
int isStableUnsteadyMethod = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Solution Method #
|
||||||
|
#########################################################################
|
||||||
|
// ConvCalcMethod : UPWIND/CDS/QUICK/SUDS
|
||||||
|
string ConvCalcMethod = "UPWIND"
|
||||||
|
|
||||||
|
// DiffCalcMethod : NON_ORTHOGONAL(default)
|
||||||
|
string DiffCalcMethod = "NON_ORTHOGONAL";
|
||||||
|
|
||||||
|
//TranCalcMethod : IMPLICIT_EULER(1st)/IMPLICIT_2ND_ORDER(2st)
|
||||||
|
string TranCalcMethod = "IMPLICIT_EULER";
|
||||||
|
|
||||||
|
// GradCalcMethod : GAUSS/LSQ
|
||||||
|
string GradCalcMethod = "GAUSS";
|
||||||
|
|
||||||
|
// mathLibType : hypre(0)/unap(1)/yhamg(2)
|
||||||
|
int mathLibType = 0;
|
||||||
|
|
||||||
|
// compressible : is(0, default)/not(1)
|
||||||
|
int compressible = 0;
|
||||||
|
|
||||||
|
// SIMPLEC : SIMPLE(0)/SIMPLEC(1)
|
||||||
|
int SIMPLEC = 1;
|
||||||
|
|
||||||
|
// isSkewness : stable gradient method: is(1)/not(0)
|
||||||
|
int isSkewness = 0;
|
||||||
|
|
||||||
|
//rhoType : Constant(0)/IncompressibleIdealGas(1)/IdealGas(2)
|
||||||
|
int rhoType = 0;
|
||||||
|
|
||||||
|
//muType: Constant(0)/SutherLand(1)/IdealGasMixingLaw(2),
|
||||||
|
int muType = 0;
|
||||||
|
|
||||||
|
//kType : Constant(0)/MassWeightedMixingLaw(1)/IdealGasMixingLaw(2)
|
||||||
|
int kType = 0;
|
||||||
|
|
||||||
|
//cpType : Constant(0)/Mixing(1)
|
||||||
|
int cpType = 0;
|
||||||
|
|
||||||
|
//massdiffType : ConstantDiluteApprox(1)/DiluteApprox(2)
|
||||||
|
int massdiffType = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# 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), species(from 71 ~ 70 + numberOfSpecies)
|
||||||
|
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
|
||||||
|
// Variables order must from small to big.
|
||||||
|
|
||||||
|
int nVisualVariables = 7;
|
||||||
|
int visualVariables[] = [22, 23, 24, 25, 29, 31, 32];
|
||||||
|
int plotFieldType = 1;
|
||||||
|
|
||||||
|
string resSaveFile = "results/res.dat";
|
||||||
|
string aircoeffile = "results/aircoef.dat";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
#########################################################################
|
||||||
|
# Grid data type #
|
||||||
|
#########################################################################
|
||||||
|
// gridtype: Grid type for generation, conversion, reconstruction, merging.
|
||||||
|
// 0 -- Unstructured grid.
|
||||||
|
// 1 -- Structured grid.
|
||||||
|
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
|
||||||
|
// axisRotateOrder : axis rotating order.
|
||||||
|
// 1 -- X-axis.
|
||||||
|
// 2 -- Y-axis.
|
||||||
|
// 3 -- Z-axis.
|
||||||
|
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
|
||||||
|
// from_gtype: Type of grid data type in grid conversion process.
|
||||||
|
// -1 -- MULTI_TYPE.
|
||||||
|
// 1 -- PHengLEI, *.fts.
|
||||||
|
// 2 -- CGNS, *.cgns.
|
||||||
|
// 3 -- Plot3D type of structured grid, *.dat/*.grd.
|
||||||
|
// 4 -- Fieldview type of unstructured grid, *.dat/*.inp.
|
||||||
|
// 5 -- Fluent, *.cas/*.msh.
|
||||||
|
// 6 -- Ustar, mgrid.in.
|
||||||
|
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
|
||||||
|
// 8 -- GMSH, *.msh.
|
||||||
|
int gridtype = 0;
|
||||||
|
int nAxisRotateTimes = 0;
|
||||||
|
int axisRotateOrder[] = [1, 2, 3];
|
||||||
|
double axisRotateAngles[] = [0.0, 0.0, 0.0];
|
||||||
|
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/TurbPlate.cas";
|
||||||
|
string out_gfile = "./grid/TurbPlate.fts";
|
|
@ -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 = 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 = 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 = "";
|
|
@ -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(PHengLEI type, *.fts).
|
||||||
|
// partition_grid_file: Target partition grid file(PHengLEI type, *.fts).
|
||||||
|
int numberOfMultifile = 1;
|
||||||
|
int isWennScheme = 0;
|
||||||
|
int pgridtype = 0;
|
||||||
|
int maxproc = 4;
|
||||||
|
|
||||||
|
string original_grid_file = "./grid/TurbPlate.fts";
|
||||||
|
string partition_grid_file = "./grid/TurbPlate__4.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;
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
红山开源风雷算例库原始网格获取百度网盘链接:
|
||||||
|
链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA
|
||||||
|
提取码:w47m
|
||||||
|
|
||||||
|
注:plot3D格式网格需同时下载.grd和.inp文件
|
|
@ -0,0 +1,86 @@
|
||||||
|
# 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 = 6;
|
||||||
|
string bcName = "in1";
|
||||||
|
{
|
||||||
|
int bcType = 5;
|
||||||
|
double initU= 53;
|
||||||
|
double initT = 300;
|
||||||
|
double initMassFractionIncom[] = [1.0, 0.0];
|
||||||
|
double initKinetic = 18.375;
|
||||||
|
double initEpsilon = 322881.7;
|
||||||
|
}
|
||||||
|
string bcName = "in2";
|
||||||
|
{
|
||||||
|
int bcType = 5;
|
||||||
|
double initU= 9.3;
|
||||||
|
double initT = 294;
|
||||||
|
double initMassFractionIncom[] = [0.03, 0.97];
|
||||||
|
double initKinetic = 0.3243375;
|
||||||
|
double initEpsilon = 66;
|
||||||
|
}
|
||||||
|
string bcName = "out";
|
||||||
|
{
|
||||||
|
int bcType = 6;
|
||||||
|
double initP = 0;
|
||||||
|
double initT = 294;
|
||||||
|
double initMassFractionIncom[] = [1.0, 0.0];
|
||||||
|
double initKinetic = 0.3243375;
|
||||||
|
double initEpsilon = 66;
|
||||||
|
}
|
||||||
|
string bcName = "wall1";
|
||||||
|
{
|
||||||
|
string bodyName = "body";
|
||||||
|
int bcType = 2;
|
||||||
|
double initT = 294;
|
||||||
|
}
|
||||||
|
string bcName = "wall2";
|
||||||
|
{
|
||||||
|
string bodyName = "body";
|
||||||
|
int bcType = 2;
|
||||||
|
double initT = 294;
|
||||||
|
}
|
||||||
|
string bcName = "sym";
|
||||||
|
{
|
||||||
|
int bcType = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
# '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
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,211 @@
|
||||||
|
#########################################################################
|
||||||
|
# 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.
|
||||||
|
// intervalStepRes: The step intervals for residual 'res.dat' saved.
|
||||||
|
int maxSimuStep = 4000;
|
||||||
|
int intervalStepFlow = 2000;
|
||||||
|
int intervalStepPlot = 500;
|
||||||
|
int intervalStepForce = 1;
|
||||||
|
int intervalStepRes = 1;
|
||||||
|
|
||||||
|
// gridfile: The partitioned Grid file path, using relative path,
|
||||||
|
// which is relative to the working directory.
|
||||||
|
string gridfile = "./grid/airmixture__4.fts";
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Flow Parameter #
|
||||||
|
#########################################################################
|
||||||
|
|
||||||
|
//flowSolverName : SIMPLE/CompressibleSIMPLE/PISO
|
||||||
|
string flowSolverName = "CompressibleSIMPLE";
|
||||||
|
|
||||||
|
// Initial value of flow variables
|
||||||
|
double initRho = 1.225;
|
||||||
|
double initU = 0;
|
||||||
|
double initV = 0;
|
||||||
|
double initW = 0;
|
||||||
|
double initP = 0;
|
||||||
|
double initMu = 1.7894e-05;
|
||||||
|
double initRg = 296.928571;
|
||||||
|
double refP = 101325;
|
||||||
|
int refPLocate = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Momentum Equation
|
||||||
|
// MomEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int MomEqSolMethod = 2;
|
||||||
|
// MomEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int MomEqPrecondMethod = 1;
|
||||||
|
int MomEqMaxSweep = 30;
|
||||||
|
double MomEqIterSolvTol = 1e-8;
|
||||||
|
double MomEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
//Parameters For Solving the Pressure Possion Equation
|
||||||
|
// PPEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int PPEqSolMethod= 3;
|
||||||
|
// PPEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int PPEqPrecondMethod= 1;
|
||||||
|
int PPEqMaxSweep = 30;
|
||||||
|
double PPEqIterSolvTol = 1e-8;
|
||||||
|
double PPEqRelaxCoeff = 0.7;
|
||||||
|
|
||||||
|
//Relaxation factor of surface flux
|
||||||
|
double FaceFluxRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
int isCalGravityVisSource = 0;
|
||||||
|
int bodyForceFlag = 0;
|
||||||
|
double gravityX = 0.0;
|
||||||
|
double gravityY = -9.81;
|
||||||
|
double gravityZ = 0.0;
|
||||||
|
|
||||||
|
int isBoussinesqApproximation = 0;
|
||||||
|
double thermalExpansionCoeff = 3.44827e-3;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Turbulence Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveTurb : is(1)/not(0);
|
||||||
|
int isSolveTurb = 1;
|
||||||
|
// TurbEqSolverName : k-epsilon(KE)/Spalart-Allmaras(SA)
|
||||||
|
string TurbEqSolverName = "KE";
|
||||||
|
|
||||||
|
// Initial value of Turbulence variables
|
||||||
|
double initKinetic = 0.64;
|
||||||
|
double initEpsilon = 5771;
|
||||||
|
|
||||||
|
//Parameters For Solving the Turbulence Equation
|
||||||
|
// TurbEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int TurbEqSolMethod = 2;
|
||||||
|
// TurbEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int TurbEqPrecondMethod = 1;
|
||||||
|
int TurbEqMaxSweep = 30;
|
||||||
|
double TurbEqIterSolvTol = 1e-8;
|
||||||
|
double TurbEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Energy Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveEnergy : is(1)/not(0);
|
||||||
|
int isSolveEnergy = 1;
|
||||||
|
|
||||||
|
// Initial value of Energy variables
|
||||||
|
double initT = 273.15;
|
||||||
|
double initCPg = 1007.0;
|
||||||
|
double initK = 0.0454;
|
||||||
|
double initkappa = 1.4;
|
||||||
|
double refT = 273;
|
||||||
|
|
||||||
|
//Parameters For Solving the Energy Equation
|
||||||
|
// EnergyEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int EnergyEqSolMethod = 2;
|
||||||
|
// EnergyEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int EnergyEqPrecondMethod = 1;
|
||||||
|
int EnergyEqMaxSweep = 30;
|
||||||
|
double EnergyEqIterSolvTol = 1e-8;
|
||||||
|
double EnergyEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Species Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveSpecies : is(1)/not(0);
|
||||||
|
int isSolveSpecies = 1;
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
int numberOfSpeciesIncom = 2;
|
||||||
|
string speciesNameIncom[] = [C3H8, AIR];
|
||||||
|
double initMassFractionIncom[] = [1.0, 0.0];
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
// SpeciesEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int SpeciesEqSolMethod = 2;
|
||||||
|
// SpeciesEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int SpeciesEqPrecondMethod = 1;
|
||||||
|
int SpeciesEqMaxSweep = 30;
|
||||||
|
double SpeciesEqIterSolvTol = 1e-8;
|
||||||
|
double SpeciesEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Unsteady Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// iunsteady : is(1)/not(0);
|
||||||
|
int iunsteady = 0;
|
||||||
|
double startTime = 0.0;
|
||||||
|
double endTime = 20;
|
||||||
|
double dt = 0.1;
|
||||||
|
int min_sub_iter = 50;
|
||||||
|
int max_sub_iter = 50;
|
||||||
|
|
||||||
|
// isStableUnsteadyMethod : is(1)/not(0);
|
||||||
|
int isStableUnsteadyMethod = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Solution Method #
|
||||||
|
#########################################################################
|
||||||
|
// ConvCalcMethod : UPWIND/CDS/QUICK/SUDS
|
||||||
|
string ConvCalcMethod = "UPWIND"
|
||||||
|
|
||||||
|
// DiffCalcMethod : NON_ORTHOGONAL(default)
|
||||||
|
string DiffCalcMethod = "NON_ORTHOGONAL";
|
||||||
|
|
||||||
|
//TranCalcMethod : IMPLICIT_EULER(1st)/IMPLICIT_2ND_ORDER(2st)
|
||||||
|
string TranCalcMethod = "IMPLICIT_EULER";
|
||||||
|
|
||||||
|
// GradCalcMethod : GAUSS/LSQ
|
||||||
|
string GradCalcMethod = "GAUSS";
|
||||||
|
|
||||||
|
// mathLibType : hypre(0)/unap(1)/yhamg(2)
|
||||||
|
int mathLibType = 0;
|
||||||
|
|
||||||
|
// compressible : is(0, default)/not(1)
|
||||||
|
int compressible = 0;
|
||||||
|
|
||||||
|
// SIMPLEC : SIMPLE(0)/SIMPLEC(1)
|
||||||
|
int SIMPLEC = 1;
|
||||||
|
|
||||||
|
// isSkewness : stable gradient method: is(1)/not(0)
|
||||||
|
int isSkewness = 0;
|
||||||
|
|
||||||
|
//rhoType : Constant(0)/IncompressibleIdealGas(1)/IdealGas(2)
|
||||||
|
int rhoType = 2;
|
||||||
|
|
||||||
|
//muType: Constant(0)/SutherLand(1)/IdealGasMixingLaw(2),
|
||||||
|
int muType = 0;
|
||||||
|
|
||||||
|
//kType : Constant(0)/MassWeightedMixingLaw(1)/IdealGasMixingLaw(2)
|
||||||
|
int kType = 0;
|
||||||
|
|
||||||
|
//cpType : Constant(0)/Mixing(1)
|
||||||
|
int cpType = 0;
|
||||||
|
|
||||||
|
//massdiffType : ConstantDiluteApprox(1)/DiluteApprox(2)
|
||||||
|
int massdiffType = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# 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), species(from 71 ~ 70 + numberOfSpecies)
|
||||||
|
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
|
||||||
|
// Variables order must from small to big.
|
||||||
|
|
||||||
|
int nVisualVariables = 12;
|
||||||
|
int visualVariables[] = [22, 23, 24, 25, 27, 28, 29, 31, 32, 70, 71, 72];
|
||||||
|
int plotFieldType = 1;
|
||||||
|
|
||||||
|
string resSaveFile = "results/res.dat";
|
||||||
|
string aircoeffile = "results/aircoef.dat";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
#########################################################################
|
||||||
|
# Grid data type #
|
||||||
|
#########################################################################
|
||||||
|
// gridtype: Grid type for generation, conversion, reconstruction, merging.
|
||||||
|
// 0 -- Unstructured grid.
|
||||||
|
// 1 -- Structured grid.
|
||||||
|
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
|
||||||
|
// axisRotateOrder : axis rotating order.
|
||||||
|
// 1 -- X-axis.
|
||||||
|
// 2 -- Y-axis.
|
||||||
|
// 3 -- Z-axis.
|
||||||
|
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
|
||||||
|
// from_gtype: Type of grid data type in grid conversion process.
|
||||||
|
// -1 -- MULTI_TYPE.
|
||||||
|
// 1 -- PHengLEI, *.fts.
|
||||||
|
// 2 -- CGNS, *.cgns.
|
||||||
|
// 3 -- Plot3D type of structured grid, *.dat/*.grd.
|
||||||
|
// 4 -- Fieldview type of unstructured grid, *.dat/*.inp.
|
||||||
|
// 5 -- Fluent, *.cas/*.msh.
|
||||||
|
// 6 -- Ustar, mgrid.in.
|
||||||
|
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
|
||||||
|
// 8 -- GMSH, *.msh.
|
||||||
|
int gridtype = 0;
|
||||||
|
int nAxisRotateTimes = 0;
|
||||||
|
int axisRotateOrder[] = [1, 2, 3];
|
||||||
|
double axisRotateAngles[] = [0.0, 0.0, 0.0];
|
||||||
|
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/airmixture.cas";
|
||||||
|
string out_gfile = "./grid/airmixture.fts";
|
|
@ -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 = 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 = 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 = "";
|
|
@ -0,0 +1,21 @@
|
||||||
|
// pgridtype: The grid type.
|
||||||
|
// 0 -- unstruct grid.
|
||||||
|
// 1 -- struct grid.
|
||||||
|
// maxproc: The number of partition zones that want to be divided into,
|
||||||
|
// which is equal to the number of CPU processors you want.
|
||||||
|
// Usually, 50~100 thousands structured cells per CPU-Core is suggested.
|
||||||
|
// 30~70 thousands unstructured cells per CPU-Core is suggested.
|
||||||
|
// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts).
|
||||||
|
// partition_grid_file: Target partition grid file(PHengLEI type, *.fts).
|
||||||
|
|
||||||
|
int pgridtype = 0;
|
||||||
|
int maxproc = 4;
|
||||||
|
|
||||||
|
string original_grid_file = "./grid/airmixture.fts";
|
||||||
|
string partition_grid_file = "./grid/airmixture__4.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;
|
|
@ -0,0 +1,5 @@
|
||||||
|
红山开源风雷算例库原始网格获取百度网盘链接:
|
||||||
|
链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA
|
||||||
|
提取码:w47m
|
||||||
|
|
||||||
|
注:plot3D格式网格需同时下载.grd和.inp文件
|
|
@ -0,0 +1,71 @@
|
||||||
|
# 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 = "car_1";
|
||||||
|
{
|
||||||
|
string bodyName = "body";
|
||||||
|
int bcType = 2;
|
||||||
|
}
|
||||||
|
string bcName = "wall_1";
|
||||||
|
{
|
||||||
|
string bodyName = "body";
|
||||||
|
int bcType = 2;
|
||||||
|
}
|
||||||
|
string bcName = "sym_1";
|
||||||
|
{
|
||||||
|
int bcType = 3;
|
||||||
|
}
|
||||||
|
string bcName = "inlet_1";
|
||||||
|
{
|
||||||
|
int bcType = 5;
|
||||||
|
double initU =10;
|
||||||
|
double initKinetic = 0.375;
|
||||||
|
double initEpsilon =86.64304;
|
||||||
|
}
|
||||||
|
string bcName = "outlet_1";
|
||||||
|
{
|
||||||
|
int bcType = 6;
|
||||||
|
double flowP =0;
|
||||||
|
double initKinetic =0.375;
|
||||||
|
double initEpsilon =86.64304;
|
||||||
|
}
|
||||||
|
|
||||||
|
# '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
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,211 @@
|
||||||
|
#########################################################################
|
||||||
|
# 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.
|
||||||
|
// intervalStepRes: The step intervals for residual 'res.dat' saved.
|
||||||
|
int maxSimuStep = 1000;
|
||||||
|
int intervalStepFlow = 1000;
|
||||||
|
int intervalStepPlot = 100;
|
||||||
|
int intervalStepForce = 1;
|
||||||
|
int intervalStepRes = 1;
|
||||||
|
|
||||||
|
// gridfile: The partitioned Grid file path, using relative path,
|
||||||
|
// which is relative to the working directory.
|
||||||
|
string gridfile = "./grid/car__4.fts";
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Flow Parameter #
|
||||||
|
#########################################################################
|
||||||
|
|
||||||
|
//flowSolverName : SIMPLE/CompressibleSIMPLE/PISO
|
||||||
|
string flowSolverName = "SIMPLE";
|
||||||
|
|
||||||
|
// Initial value of flow variables
|
||||||
|
double initRho = 1.225;
|
||||||
|
double initU = 10;
|
||||||
|
double initV = 0;
|
||||||
|
double initW = 0;
|
||||||
|
double initP = 0;
|
||||||
|
double initMu = 1.7894e-05;
|
||||||
|
double initRg = 296.928571;
|
||||||
|
double refP = 101325;
|
||||||
|
int refPLocate = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Momentum Equation
|
||||||
|
// MomEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int MomEqSolMethod = 2;
|
||||||
|
// MomEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int MomEqPrecondMethod = 1;
|
||||||
|
int MomEqMaxSweep = 30;
|
||||||
|
double MomEqIterSolvTol = 1e-8;
|
||||||
|
double MomEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
//Parameters For Solving the Pressure Possion Equation
|
||||||
|
// PPEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int PPEqSolMethod= 3;
|
||||||
|
// PPEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int PPEqPrecondMethod= 1;
|
||||||
|
int PPEqMaxSweep = 30;
|
||||||
|
double PPEqIterSolvTol = 1e-8;
|
||||||
|
double PPEqRelaxCoeff = 0.3;
|
||||||
|
|
||||||
|
//Relaxation factor of surface flux
|
||||||
|
double FaceFluxRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
int isCalGravityVisSource = 0;
|
||||||
|
int bodyForceFlag = 0;
|
||||||
|
double gravityX = 0.0;
|
||||||
|
double gravityY = -9.81;
|
||||||
|
double gravityZ = 0.0;
|
||||||
|
|
||||||
|
int isBoussinesqApproximation = 0;
|
||||||
|
double thermalExpansionCoeff = 3.44827e-3;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Turbulence Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveTurb : is(1)/not(0);
|
||||||
|
int isSolveTurb = 1;
|
||||||
|
// TurbEqSolverName : k-epsilon(KE)/Spalart-Allmaras(SA)
|
||||||
|
string TurbEqSolverName = "KE";
|
||||||
|
|
||||||
|
// Initial value of Turbulence variables
|
||||||
|
double initKinetic = 0.375;
|
||||||
|
double initEpsilon = 86.643;
|
||||||
|
|
||||||
|
//Parameters For Solving the Turbulence Equation
|
||||||
|
// TurbEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int TurbEqSolMethod = 2;
|
||||||
|
// TurbEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int TurbEqPrecondMethod = 1;
|
||||||
|
int TurbEqMaxSweep = 30;
|
||||||
|
double TurbEqIterSolvTol = 1e-8;
|
||||||
|
double TurbEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Energy Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveEnergy : is(1)/not(0);
|
||||||
|
int isSolveEnergy = 0;
|
||||||
|
|
||||||
|
// Initial value of Energy variables
|
||||||
|
double initT = 273.15;
|
||||||
|
double initCPg = 1007.0;
|
||||||
|
double initK = 0.0454;
|
||||||
|
double initkappa = 1.4;
|
||||||
|
double refT = 273;
|
||||||
|
|
||||||
|
//Parameters For Solving the Energy Equation
|
||||||
|
// EnergyEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int EnergyEqSolMethod = 2;
|
||||||
|
// EnergyEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int EnergyEqPrecondMethod = 1;
|
||||||
|
int EnergyEqMaxSweep = 30;
|
||||||
|
double EnergyEqIterSolvTol = 1e-8;
|
||||||
|
double EnergyEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Species Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveSpecies : is(1)/not(0);
|
||||||
|
int isSolveSpecies = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
int numberOfSpeciesIncom = 1;
|
||||||
|
string speciesNameIncom[] = [AIR];
|
||||||
|
double initMassFractionIncom[] = [1.0];
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
// SpeciesEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int SpeciesEqSolMethod = 2;
|
||||||
|
// SpeciesEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int SpeciesEqPrecondMethod = 1;
|
||||||
|
int SpeciesEqMaxSweep = 30;
|
||||||
|
double SpeciesEqIterSolvTol = 1e-8;
|
||||||
|
double SpeciesEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Unsteady Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// iunsteady : is(1)/not(0);
|
||||||
|
int iunsteady = 0;
|
||||||
|
double startTime = 0.0;
|
||||||
|
double endTime = 20;
|
||||||
|
double dt = 0.1;
|
||||||
|
int min_sub_iter = 50;
|
||||||
|
int max_sub_iter = 50;
|
||||||
|
|
||||||
|
// isStableUnsteadyMethod : is(1)/not(0);
|
||||||
|
int isStableUnsteadyMethod = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Solution Method #
|
||||||
|
#########################################################################
|
||||||
|
// ConvCalcMethod : UPWIND/CDS/QUICK/SUDS
|
||||||
|
string ConvCalcMethod = "UPWIND"
|
||||||
|
|
||||||
|
// DiffCalcMethod : NON_ORTHOGONAL(default)
|
||||||
|
string DiffCalcMethod = "NON_ORTHOGONAL";
|
||||||
|
|
||||||
|
//TranCalcMethod : IMPLICIT_EULER(1st)/IMPLICIT_2ND_ORDER(2st)
|
||||||
|
string TranCalcMethod = "IMPLICIT_EULER";
|
||||||
|
|
||||||
|
// GradCalcMethod : GAUSS/LSQ
|
||||||
|
string GradCalcMethod = "GAUSS";
|
||||||
|
|
||||||
|
// mathLibType : hypre(0)/unap(1)/yhamg(2)
|
||||||
|
int mathLibType = 0;
|
||||||
|
|
||||||
|
// compressible : is(0, default)/not(1)
|
||||||
|
int compressible = 0;
|
||||||
|
|
||||||
|
// SIMPLEC : SIMPLE(0)/SIMPLEC(1)
|
||||||
|
int SIMPLEC = 1;
|
||||||
|
|
||||||
|
// isSkewness : stable gradient method: is(1)/not(0)
|
||||||
|
int isSkewness = 0;
|
||||||
|
|
||||||
|
//rhoType : Constant(0)/IncompressibleIdealGas(1)/IdealGas(2)
|
||||||
|
int rhoType = 0;
|
||||||
|
|
||||||
|
//muType: Constant(0)/SutherLand(1)/IdealGasMixingLaw(2),
|
||||||
|
int muType = 0;
|
||||||
|
|
||||||
|
//kType : Constant(0)/MassWeightedMixingLaw(1)/IdealGasMixingLaw(2)
|
||||||
|
int kType = 0;
|
||||||
|
|
||||||
|
//cpType : Constant(0)/Mixing(1)
|
||||||
|
int cpType = 0;
|
||||||
|
|
||||||
|
//massdiffType : ConstantDiluteApprox(1)/DiluteApprox(2)
|
||||||
|
int massdiffType = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# 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), species(from 71 ~ 70 + numberOfSpecies)
|
||||||
|
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
|
||||||
|
// Variables order must from small to big.
|
||||||
|
|
||||||
|
int nVisualVariables = 7;
|
||||||
|
int visualVariables[] = [22, 23, 24, 25, 29, 31, 32];
|
||||||
|
int plotFieldType = 1;
|
||||||
|
|
||||||
|
string resSaveFile = "results/res.dat";
|
||||||
|
string aircoeffile = "results/aircoef.dat";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
#########################################################################
|
||||||
|
# Grid data type #
|
||||||
|
#########################################################################
|
||||||
|
// gridtype: Grid type for generation, conversion, reconstruction, merging.
|
||||||
|
// 0 -- Unstructured grid.
|
||||||
|
// 1 -- Structured grid.
|
||||||
|
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
|
||||||
|
// axisRotateOrder : axis rotating order.
|
||||||
|
// 1 -- X-axis.
|
||||||
|
// 2 -- Y-axis.
|
||||||
|
// 3 -- Z-axis.
|
||||||
|
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
|
||||||
|
// from_gtype: Type of grid data type in grid conversion process.
|
||||||
|
// -1 -- MULTI_TYPE.
|
||||||
|
// 1 -- PHengLEI, *.fts.
|
||||||
|
// 2 -- CGNS, *.cgns.
|
||||||
|
// 3 -- Plot3D type of structured grid, *.dat/*.grd.
|
||||||
|
// 4 -- Fieldview type of unstructured grid, *.dat/*.inp.
|
||||||
|
// 5 -- Fluent, *.cas/*.msh.
|
||||||
|
// 6 -- Ustar, mgrid.in.
|
||||||
|
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
|
||||||
|
// 8 -- GMSH, *.msh.
|
||||||
|
int gridtype = 0;
|
||||||
|
int nAxisRotateTimes = 0;
|
||||||
|
int axisRotateOrder[] = [1, 2, 3];
|
||||||
|
double axisRotateAngles[] = [0.0, 0.0, 0.0];
|
||||||
|
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.
|
||||||
|
int numberOfMultifile = 1;
|
||||||
|
string from_gfile = "./grid/car.cas";
|
||||||
|
string out_gfile = "./grid/car.fts";
|
|
@ -0,0 +1,53 @@
|
||||||
|
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 = 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 = 4;
|
||||||
|
//string parafilename = "./bin/repository.hypara";
|
||||||
|
|
||||||
|
//int nsimutask = 5;
|
||||||
|
//string parafilename = "./bin/overset_grid_view.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 = "";
|
|
@ -0,0 +1,22 @@
|
||||||
|
// pgridtype: The grid type.
|
||||||
|
// 0 -- unstruct grid.
|
||||||
|
// 1 -- struct grid.
|
||||||
|
// maxproc: The number of partition zones that want to be divided into,
|
||||||
|
// which is equal to the number of CPU processors you want.
|
||||||
|
// Usually, 50~100 thousands structured cells per CPU-Core is suggested.
|
||||||
|
// 30~70 thousands unstructured cells per CPU-Core is suggested.
|
||||||
|
// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts).
|
||||||
|
// partition_grid_file: Target partition grid file(PHengLEI type, *.fts).
|
||||||
|
|
||||||
|
int pgridtype = 0;
|
||||||
|
int maxproc = 4;
|
||||||
|
|
||||||
|
string original_grid_file = "./grid/car.fts";
|
||||||
|
string partition_grid_file = "./grid/car__4.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;
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
红山开源风雷算例库原始网格获取百度网盘链接:
|
||||||
|
链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA
|
||||||
|
提取码:w47m
|
||||||
|
|
||||||
|
注:plot3D格式网格需同时下载.grd和.inp文件
|
|
@ -0,0 +1,62 @@
|
||||||
|
# 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 = "wall";
|
||||||
|
{
|
||||||
|
string bodyName = "body";
|
||||||
|
int bcType = 2;
|
||||||
|
}
|
||||||
|
string bcName = "symmetry";
|
||||||
|
{
|
||||||
|
int bcType = 3;
|
||||||
|
}
|
||||||
|
string bcName = "pressure_inlet";
|
||||||
|
{
|
||||||
|
int bcType = 5;
|
||||||
|
double initU = 10;
|
||||||
|
}
|
||||||
|
string bcName = "pressure_outlet";
|
||||||
|
{
|
||||||
|
int bcType = 6;
|
||||||
|
double initP = 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
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,211 @@
|
||||||
|
#########################################################################
|
||||||
|
# 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.
|
||||||
|
// intervalStepRes: The step intervals for residual 'res.dat' saved.
|
||||||
|
int maxSimuStep = 1000;
|
||||||
|
int intervalStepFlow = 1000;
|
||||||
|
int intervalStepPlot = 500;
|
||||||
|
int intervalStepForce = 1;
|
||||||
|
int intervalStepRes = 1;
|
||||||
|
|
||||||
|
// gridfile: The partitioned Grid file path, using relative path,
|
||||||
|
// which is relative to the working directory.
|
||||||
|
string gridfile = "./grid/chnt_InOutBC_test1__4.fts";
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Flow Parameter #
|
||||||
|
#########################################################################
|
||||||
|
|
||||||
|
//flowSolverName : SIMPLE/CompressibleSIMPLE/PISO
|
||||||
|
string flowSolverName = "SIMPLE";
|
||||||
|
|
||||||
|
// Initial value of flow variables
|
||||||
|
double initRho = 1.225;
|
||||||
|
double initU = 10;
|
||||||
|
double initV = 0;
|
||||||
|
double initW = 0;
|
||||||
|
double initP = 0;
|
||||||
|
double initMu = 1.7894e-05;
|
||||||
|
double initRg = 296.928571;
|
||||||
|
double refP = 101325;
|
||||||
|
int refPLocate = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Momentum Equation
|
||||||
|
// MomEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int MomEqSolMethod = 2;
|
||||||
|
// MomEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int MomEqPrecondMethod = 1;
|
||||||
|
int MomEqMaxSweep = 30;
|
||||||
|
double MomEqIterSolvTol = 1e-8;
|
||||||
|
double MomEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
//Parameters For Solving the Pressure Possion Equation
|
||||||
|
// PPEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int PPEqSolMethod= 3;
|
||||||
|
// PPEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int PPEqPrecondMethod= 1;
|
||||||
|
int PPEqMaxSweep = 30;
|
||||||
|
double PPEqIterSolvTol = 1e-8;
|
||||||
|
double PPEqRelaxCoeff = 0.1;
|
||||||
|
|
||||||
|
//Relaxation factor of surface flux
|
||||||
|
double FaceFluxRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
int isCalGravityVisSource = 0;
|
||||||
|
int bodyForceFlag = 0;
|
||||||
|
double gravityX = 0.0;
|
||||||
|
double gravityY = -9.81;
|
||||||
|
double gravityZ = 0.0;
|
||||||
|
|
||||||
|
int isBoussinesqApproximation = 0;
|
||||||
|
double thermalExpansionCoeff = 3.44827e-3;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Turbulence Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveTurb : is(1)/not(0);
|
||||||
|
int isSolveTurb = 0;
|
||||||
|
// TurbEqSolverName : k-epsilon(KE)/Spalart-Allmaras(SA)
|
||||||
|
string TurbEqSolverName = "KE";
|
||||||
|
|
||||||
|
// Initial value of Turbulence variables
|
||||||
|
double initKinetic = 0.375;
|
||||||
|
double initEpsilon = 86.643;
|
||||||
|
|
||||||
|
//Parameters For Solving the Turbulence Equation
|
||||||
|
// TurbEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int TurbEqSolMethod = 2;
|
||||||
|
// TurbEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int TurbEqPrecondMethod = 1;
|
||||||
|
int TurbEqMaxSweep = 30;
|
||||||
|
double TurbEqIterSolvTol = 1e-8;
|
||||||
|
double TurbEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Energy Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveEnergy : is(1)/not(0);
|
||||||
|
int isSolveEnergy = 0;
|
||||||
|
|
||||||
|
// Initial value of Energy variables
|
||||||
|
double initT = 273.15;
|
||||||
|
double initCPg = 1007.0;
|
||||||
|
double initK = 0.0454;
|
||||||
|
double initkappa = 1.4;
|
||||||
|
double refT = 273;
|
||||||
|
|
||||||
|
//Parameters For Solving the Energy Equation
|
||||||
|
// EnergyEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int EnergyEqSolMethod = 2;
|
||||||
|
// EnergyEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int EnergyEqPrecondMethod = 1;
|
||||||
|
int EnergyEqMaxSweep = 30;
|
||||||
|
double EnergyEqIterSolvTol = 1e-8;
|
||||||
|
double EnergyEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Species Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveSpecies : is(1)/not(0);
|
||||||
|
int isSolveSpecies = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
int numberOfSpeciesIncom = 1;
|
||||||
|
string speciesNameIncom[] = [AIR];
|
||||||
|
double initMassFractionIncom[] = [1.0];
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
// SpeciesEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int SpeciesEqSolMethod = 2;
|
||||||
|
// SpeciesEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int SpeciesEqPrecondMethod = 1;
|
||||||
|
int SpeciesEqMaxSweep = 30;
|
||||||
|
double SpeciesEqIterSolvTol = 1e-8;
|
||||||
|
double SpeciesEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Unsteady Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// iunsteady : is(1)/not(0);
|
||||||
|
int iunsteady = 0;
|
||||||
|
double startTime = 0.0;
|
||||||
|
double endTime = 20;
|
||||||
|
double dt = 0.1;
|
||||||
|
int min_sub_iter = 50;
|
||||||
|
int max_sub_iter = 50;
|
||||||
|
|
||||||
|
// isStableUnsteadyMethod : is(1)/not(0);
|
||||||
|
int isStableUnsteadyMethod = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Solution Method #
|
||||||
|
#########################################################################
|
||||||
|
// ConvCalcMethod : UPWIND/CDS/QUICK/SUDS
|
||||||
|
string ConvCalcMethod = "UPWIND"
|
||||||
|
|
||||||
|
// DiffCalcMethod : NON_ORTHOGONAL(default)
|
||||||
|
string DiffCalcMethod = "NON_ORTHOGONAL";
|
||||||
|
|
||||||
|
//TranCalcMethod : IMPLICIT_EULER(1st)/IMPLICIT_2ND_ORDER(2st)
|
||||||
|
string TranCalcMethod = "IMPLICIT_EULER";
|
||||||
|
|
||||||
|
// GradCalcMethod : GAUSS/LSQ
|
||||||
|
string GradCalcMethod = "GAUSS";
|
||||||
|
|
||||||
|
// mathLibType : hypre(0)/unap(1)/yhamg(2)
|
||||||
|
int mathLibType = 0;
|
||||||
|
|
||||||
|
// compressible : is(0, default)/not(1)
|
||||||
|
int compressible = 0;
|
||||||
|
|
||||||
|
// SIMPLEC : SIMPLE(0)/SIMPLEC(1)
|
||||||
|
int SIMPLEC = 1;
|
||||||
|
|
||||||
|
// isSkewness : stable gradient method: is(1)/not(0)
|
||||||
|
int isSkewness = 0;
|
||||||
|
|
||||||
|
//rhoType : Constant(0)/IncompressibleIdealGas(1)/IdealGas(2)
|
||||||
|
int rhoType = 0;
|
||||||
|
|
||||||
|
//muType: Constant(0)/SutherLand(1)/IdealGasMixingLaw(2),
|
||||||
|
int muType = 0;
|
||||||
|
|
||||||
|
//kType : Constant(0)/MassWeightedMixingLaw(1)/IdealGasMixingLaw(2)
|
||||||
|
int kType = 0;
|
||||||
|
|
||||||
|
//cpType : Constant(0)/Mixing(1)
|
||||||
|
int cpType = 0;
|
||||||
|
|
||||||
|
//massdiffType : ConstantDiluteApprox(1)/DiluteApprox(2)
|
||||||
|
int massdiffType = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# 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), species(from 71 ~ 70 + numberOfSpecies)
|
||||||
|
// 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];
|
||||||
|
int plotFieldType = 1;
|
||||||
|
|
||||||
|
string resSaveFile = "results/res.dat";
|
||||||
|
string aircoeffile = "results/aircoef.dat";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
#########################################################################
|
||||||
|
# Grid data type #
|
||||||
|
#########################################################################
|
||||||
|
// gridtype: Grid type for generation, conversion, reconstruction, merging.
|
||||||
|
// 0 -- Unstructured grid.
|
||||||
|
// 1 -- Structured grid.
|
||||||
|
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
|
||||||
|
// axisRotateOrder : axis rotating order.
|
||||||
|
// 1 -- X-axis.
|
||||||
|
// 2 -- Y-axis.
|
||||||
|
// 3 -- Z-axis.
|
||||||
|
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
|
||||||
|
// from_gtype: Type of grid data type in grid conversion process.
|
||||||
|
// -1 -- MULTI_TYPE.
|
||||||
|
// 1 -- PHengLEI, *.fts.
|
||||||
|
// 2 -- CGNS, *.cgns.
|
||||||
|
// 3 -- Plot3D type of structured grid, *.dat/*.grd.
|
||||||
|
// 4 -- Fieldview type of unstructured grid, *.dat/*.inp.
|
||||||
|
// 5 -- Fluent, *.cas/*.msh.
|
||||||
|
// 6 -- Ustar, mgrid.in.
|
||||||
|
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
|
||||||
|
// 8 -- GMSH, *.msh.
|
||||||
|
int gridtype = 0;
|
||||||
|
int nAxisRotateTimes = 0;
|
||||||
|
int axisRotateOrder[] = [1, 2, 3];
|
||||||
|
double axisRotateAngles[] = [0.0, 0.0, 0.0];
|
||||||
|
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/chnt_InOutBC_test1.cas";
|
||||||
|
string out_gfile = "./grid/chnt_InOutBC_test1.fts";
|
|
@ -0,0 +1,53 @@
|
||||||
|
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 = 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 = 4;
|
||||||
|
//string parafilename = "./bin/repository.hypara";
|
||||||
|
|
||||||
|
//int nsimutask = 5;
|
||||||
|
//string parafilename = "./bin/overset_grid_view.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 = "";
|
|
@ -0,0 +1,22 @@
|
||||||
|
// pgridtype: The grid type.
|
||||||
|
// 0 -- unstruct grid.
|
||||||
|
// 1 -- struct grid.
|
||||||
|
// maxproc: The number of partition zones that want to be divided into,
|
||||||
|
// which is equal to the number of CPU processors you want.
|
||||||
|
// Usually, 50~100 thousands structured cells per CPU-Core is suggested.
|
||||||
|
// 30~70 thousands unstructured cells per CPU-Core is suggested.
|
||||||
|
// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts).
|
||||||
|
// partition_grid_file: Target partition grid file(PHengLEI type, *.fts).
|
||||||
|
|
||||||
|
int pgridtype = 0;
|
||||||
|
int maxproc = 4;
|
||||||
|
|
||||||
|
string original_grid_file = "./grid/chnt_InOutBC_test1.fts";
|
||||||
|
string partition_grid_file = "./grid/chnt_InOutBC_test1__4.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;
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
红山开源风雷算例库原始网格获取百度网盘链接:
|
||||||
|
链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA
|
||||||
|
提取码:w47m
|
||||||
|
|
||||||
|
注:plot3D格式网格需同时下载.grd和.inp文件
|
|
@ -0,0 +1,76 @@
|
||||||
|
# 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 = "wall";
|
||||||
|
{
|
||||||
|
string bodyName = "body";
|
||||||
|
int bcType = 2;
|
||||||
|
double initT = 300;
|
||||||
|
}
|
||||||
|
string bcName = "inlet1";
|
||||||
|
{
|
||||||
|
int bcType = 5;
|
||||||
|
double totalVelocity = 1.0;
|
||||||
|
double initT = 300.0;
|
||||||
|
double initMassFractionIncom[] = [0.21, 0.008, 0.002, 0.78, 0.0];
|
||||||
|
double initKinetic = 0.00375;
|
||||||
|
double initEpsilon = 8.61435e-6;
|
||||||
|
}
|
||||||
|
string bcName = "inlet2";
|
||||||
|
{
|
||||||
|
int bcType = 5;
|
||||||
|
double initV = 5;
|
||||||
|
double initT = 300.0;
|
||||||
|
double initMassFractionIncom[] = [0.0, 0.0, 0.0, 0.0, 1.0];
|
||||||
|
double initKinetic = 0.09375;
|
||||||
|
double initEpsilon = 0.02411757;
|
||||||
|
}
|
||||||
|
string bcName = "outlet";
|
||||||
|
{
|
||||||
|
int bcType = 6;
|
||||||
|
double initP = 0;
|
||||||
|
double initT = 300.0;
|
||||||
|
double initMassFractionIncom[] = [0.21, 0.008, 0.002, 0.78, 0.0];
|
||||||
|
double initKinetic = 0.09375;
|
||||||
|
double initEpsilon = 0.02411757;
|
||||||
|
}
|
||||||
|
|
||||||
|
# '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
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,211 @@
|
||||||
|
#########################################################################
|
||||||
|
# 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.
|
||||||
|
// intervalStepRes: The step intervals for residual 'res.dat' saved.
|
||||||
|
int maxSimuStep = 1000;
|
||||||
|
int intervalStepFlow = 1000;
|
||||||
|
int intervalStepPlot = 100;
|
||||||
|
int intervalStepForce = 1;
|
||||||
|
int intervalStepRes = 1;
|
||||||
|
|
||||||
|
// gridfile: The partitioned Grid file path, using relative path,
|
||||||
|
// which is relative to the working directory.
|
||||||
|
string gridfile = "./grid/gasleak__4.fts";
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Flow Parameter #
|
||||||
|
#########################################################################
|
||||||
|
|
||||||
|
//flowSolverName : SIMPLE/CompressibleSIMPLE/PISO
|
||||||
|
string flowSolverName = "CompressibleSIMPLE";
|
||||||
|
|
||||||
|
// Initial value of flow variables
|
||||||
|
double initRho = 1.225;
|
||||||
|
double initU = 0;
|
||||||
|
double initV = 0;
|
||||||
|
double initW = 0;
|
||||||
|
double initP = 0;
|
||||||
|
double initMu = 1.7894e-05;
|
||||||
|
double initRg = 296.928571;
|
||||||
|
double refP = 101325;
|
||||||
|
int refPLocate = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Momentum Equation
|
||||||
|
// MomEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int MomEqSolMethod = 2;
|
||||||
|
// MomEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int MomEqPrecondMethod = 1;
|
||||||
|
int MomEqMaxSweep = 30;
|
||||||
|
double MomEqIterSolvTol = 1e-8;
|
||||||
|
double MomEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
//Parameters For Solving the Pressure Possion Equation
|
||||||
|
// PPEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int PPEqSolMethod= 3;
|
||||||
|
// PPEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int PPEqPrecondMethod= 1;
|
||||||
|
int PPEqMaxSweep = 30;
|
||||||
|
double PPEqIterSolvTol = 1e-8;
|
||||||
|
double PPEqRelaxCoeff = 0.3;
|
||||||
|
|
||||||
|
//Relaxation factor of surface flux
|
||||||
|
double FaceFluxRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
int isCalGravityVisSource = 0;
|
||||||
|
int bodyForceFlag = 0;
|
||||||
|
double gravityX = 0.0;
|
||||||
|
double gravityY = -9.81;
|
||||||
|
double gravityZ = 0.0;
|
||||||
|
|
||||||
|
int isBoussinesqApproximation = 0;
|
||||||
|
double thermalExpansionCoeff = 3.44827e-3;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Turbulence Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveTurb : is(1)/not(0);
|
||||||
|
int isSolveTurb = 0;
|
||||||
|
// TurbEqSolverName : k-epsilon(KE)/Spalart-Allmaras(SA)
|
||||||
|
string TurbEqSolverName = "KE";
|
||||||
|
|
||||||
|
// Initial value of Turbulence variables
|
||||||
|
double initKinetic = 0.64;
|
||||||
|
double initEpsilon = 5771;
|
||||||
|
|
||||||
|
//Parameters For Solving the Turbulence Equation
|
||||||
|
// TurbEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int TurbEqSolMethod = 2;
|
||||||
|
// TurbEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int TurbEqPrecondMethod = 1;
|
||||||
|
int TurbEqMaxSweep = 30;
|
||||||
|
double TurbEqIterSolvTol = 1e-8;
|
||||||
|
double TurbEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Energy Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveEnergy : is(1)/not(0);
|
||||||
|
int isSolveEnergy = 1;
|
||||||
|
|
||||||
|
// Initial value of Energy variables
|
||||||
|
double initT = 273.0;
|
||||||
|
double initCPg = 1006.0;
|
||||||
|
double initK = 0.0242;
|
||||||
|
double initkappa = 1.4;
|
||||||
|
double refT = 273;
|
||||||
|
|
||||||
|
//Parameters For Solving the Energy Equation
|
||||||
|
// EnergyEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int EnergyEqSolMethod = 2;
|
||||||
|
// EnergyEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int EnergyEqPrecondMethod = 1;
|
||||||
|
int EnergyEqMaxSweep = 30;
|
||||||
|
double EnergyEqIterSolvTol = 1e-8;
|
||||||
|
double EnergyEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Species Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveSpecies : is(1)/not(0);
|
||||||
|
int isSolveSpecies = 1;
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
int numberOfSpeciesIncom = 5;
|
||||||
|
string speciesNameIncom[] = [C2H4, H2_l, LNG, H2S, NH3];
|
||||||
|
double initMassFractionIncom[] = [0.164, 0.008, 0.624, 0.2, 0.004];
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
// SpeciesEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int SpeciesEqSolMethod = 2;
|
||||||
|
// SpeciesEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int SpeciesEqPrecondMethod = 1;
|
||||||
|
int SpeciesEqMaxSweep = 30;
|
||||||
|
double SpeciesEqIterSolvTol = 1e-8;
|
||||||
|
double SpeciesEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Unsteady Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// iunsteady : is(1)/not(0);
|
||||||
|
int iunsteady = 1;
|
||||||
|
double startTime = 0.0;
|
||||||
|
double endTime = 200;
|
||||||
|
double dt = 0.1;
|
||||||
|
int min_sub_iter = 50;
|
||||||
|
int max_sub_iter = 50;
|
||||||
|
|
||||||
|
// isStableUnsteadyMethod : is(1)/not(0);
|
||||||
|
int isStableUnsteadyMethod = 1;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Solution Method #
|
||||||
|
#########################################################################
|
||||||
|
// ConvCalcMethod : UPWIND/CDS/QUICK/SUDS
|
||||||
|
string ConvCalcMethod = "UPWIND"
|
||||||
|
|
||||||
|
// DiffCalcMethod : NON_ORTHOGONAL(default)
|
||||||
|
string DiffCalcMethod = "NON_ORTHOGONAL";
|
||||||
|
|
||||||
|
//TranCalcMethod : IMPLICIT_EULER(1st)/IMPLICIT_2ND_ORDER(2st)
|
||||||
|
string TranCalcMethod = "IMPLICIT_EULER";
|
||||||
|
|
||||||
|
// GradCalcMethod : GAUSS/LSQ
|
||||||
|
string GradCalcMethod = "GAUSS";
|
||||||
|
|
||||||
|
// mathLibType : hypre(0)/unap(1)/yhamg(2)
|
||||||
|
int mathLibType = 0;
|
||||||
|
|
||||||
|
// compressible : is(0, default)/not(1)
|
||||||
|
int compressible = 0;
|
||||||
|
|
||||||
|
// SIMPLEC : SIMPLE(0)/SIMPLEC(1)
|
||||||
|
int SIMPLEC = 1;
|
||||||
|
|
||||||
|
// isSkewness : stable gradient method: is(1)/not(0)
|
||||||
|
int isSkewness = 0;
|
||||||
|
|
||||||
|
//rhoType : Constant(0)/IncompressibleIdealGas(1)/IdealGas(2)
|
||||||
|
int rhoType = 2;
|
||||||
|
|
||||||
|
//muType: Constant(0)/SutherLand(1)/IdealGasMixingLaw(2),
|
||||||
|
int muType = 0;
|
||||||
|
|
||||||
|
//kType : Constant(0)/MassWeightedMixingLaw(1)/IdealGasMixingLaw(2)
|
||||||
|
int kType = 0;
|
||||||
|
|
||||||
|
//cpType : Constant(0)/Mixing(1)
|
||||||
|
int cpType = 0;
|
||||||
|
|
||||||
|
//massdiffType : ConstantDiluteApprox(1)/DiluteApprox(2)
|
||||||
|
int massdiffType = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# 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), species(from 71 ~ 70 + numberOfSpecies)
|
||||||
|
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
|
||||||
|
// Variables order must from small to big.
|
||||||
|
|
||||||
|
int nVisualVariables = 13;
|
||||||
|
int visualVariables[] = [22, 23, 24, 25, 27, 28, 70, 71, 72, 73, 74, 75, 76];
|
||||||
|
int plotFieldType = 1;
|
||||||
|
|
||||||
|
string resSaveFile = "results/res.dat";
|
||||||
|
string aircoeffile = "results/aircoef.dat";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
#########################################################################
|
||||||
|
# Grid data type #
|
||||||
|
#########################################################################
|
||||||
|
// gridtype: Grid type for generation, conversion, reconstruction, merging.
|
||||||
|
// 0 -- Unstructured grid.
|
||||||
|
// 1 -- Structured grid.
|
||||||
|
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
|
||||||
|
// axisRotateOrder : axis rotating order.
|
||||||
|
// 1 -- X-axis.
|
||||||
|
// 2 -- Y-axis.
|
||||||
|
// 3 -- Z-axis.
|
||||||
|
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
|
||||||
|
// from_gtype: Type of grid data type in grid conversion process.
|
||||||
|
// -1 -- MULTI_TYPE.
|
||||||
|
// 1 -- PHengLEI, *.fts.
|
||||||
|
// 2 -- CGNS, *.cgns.
|
||||||
|
// 3 -- Plot3D type of structured grid, *.dat/*.grd.
|
||||||
|
// 4 -- Fieldview type of unstructured grid, *.dat/*.inp.
|
||||||
|
// 5 -- Fluent, *.cas/*.msh.
|
||||||
|
// 6 -- Ustar, mgrid.in.
|
||||||
|
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
|
||||||
|
// 8 -- GMSH, *.msh.
|
||||||
|
int gridtype = 0;
|
||||||
|
int nAxisRotateTimes = 0;
|
||||||
|
int axisRotateOrder[] = [1, 2, 3];
|
||||||
|
double axisRotateAngles[] = [0.0, 0.0, 0.0];
|
||||||
|
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.
|
||||||
|
int numberOfMultifile = 1;
|
||||||
|
string from_gfile = "./grid/gasleak.cas";
|
||||||
|
string out_gfile = "./grid/gasleak.fts";
|
|
@ -0,0 +1,53 @@
|
||||||
|
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 = 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 = 4;
|
||||||
|
//string parafilename = "./bin/repository.hypara";
|
||||||
|
|
||||||
|
//int nsimutask = 5;
|
||||||
|
//string parafilename = "./bin/overset_grid_view.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 = "";
|
|
@ -0,0 +1,22 @@
|
||||||
|
// pgridtype: The grid type.
|
||||||
|
// 0 -- unstruct grid.
|
||||||
|
// 1 -- struct grid.
|
||||||
|
// maxproc: The number of partition zones that want to be divided into,
|
||||||
|
// which is equal to the number of CPU processors you want.
|
||||||
|
// Usually, 50~100 thousands structured cells per CPU-Core is suggested.
|
||||||
|
// 30~70 thousands unstructured cells per CPU-Core is suggested.
|
||||||
|
// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts).
|
||||||
|
// partition_grid_file: Target partition grid file(PHengLEI type, *.fts).
|
||||||
|
|
||||||
|
int pgridtype = 0;
|
||||||
|
int maxproc = 4;
|
||||||
|
|
||||||
|
string original_grid_file = "./grid/gasleak.fts";
|
||||||
|
string partition_grid_file = "./grid/gasleak__4.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;
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
红山开源风雷算例库原始网格获取百度网盘链接:
|
||||||
|
链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA
|
||||||
|
提取码:w47m
|
||||||
|
|
||||||
|
注:plot3D格式网格需同时下载.grd和.inp文件
|
|
@ -0,0 +1,88 @@
|
||||||
|
# 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 = 7;
|
||||||
|
string bcName = "wall_down";//壁面的边界条件
|
||||||
|
{
|
||||||
|
string bodyName = "body";
|
||||||
|
int bcType = 2;
|
||||||
|
double initT = 500.0;
|
||||||
|
}
|
||||||
|
string bcName = "wall_fb";//边界类型为壁面
|
||||||
|
{
|
||||||
|
string bodyName = "body";
|
||||||
|
int bcType = 2;
|
||||||
|
double initT = 500.0;
|
||||||
|
}
|
||||||
|
string bcName = "wall_in";
|
||||||
|
{
|
||||||
|
string bodyName = "body";
|
||||||
|
int bcType = 2;
|
||||||
|
double initT = 500.0;
|
||||||
|
}
|
||||||
|
string bcName = "wall_up";
|
||||||
|
{
|
||||||
|
string bodyName = "body";
|
||||||
|
int bcType = 2;
|
||||||
|
double initT = 500.0;
|
||||||
|
}
|
||||||
|
string bcName = "inlet_down";
|
||||||
|
{
|
||||||
|
int bcType = 5;
|
||||||
|
double initU = 0.05;
|
||||||
|
double initT = 300.0;
|
||||||
|
double initMassFractionIncom[] = [0.0, 0.0, 0.0, 0.97, 0.03, 0.0];
|
||||||
|
}
|
||||||
|
string bcName = "inlet_up";
|
||||||
|
{
|
||||||
|
int bcType = 5;
|
||||||
|
double initU = 0.5;
|
||||||
|
double initT = 600.0;
|
||||||
|
double initMassFractionIncom[] = [0.21, 0.78, 0.009, 0.0, 0.0, 0.001];
|
||||||
|
}
|
||||||
|
string bcName = "outlet";
|
||||||
|
{
|
||||||
|
int bcType = 6;
|
||||||
|
double initP = 0;
|
||||||
|
double initT = 300.0;
|
||||||
|
double initMassFractionIncom[] = [0.1, 0.1, 0.1, 0.1, 0.5, 0.1];
|
||||||
|
}
|
||||||
|
|
||||||
|
# '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
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,211 @@
|
||||||
|
#########################################################################
|
||||||
|
# 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.
|
||||||
|
// intervalStepRes: The step intervals for residual 'res.dat' saved.
|
||||||
|
int maxSimuStep = 1000;
|
||||||
|
int intervalStepFlow = 1000;
|
||||||
|
int intervalStepPlot = 100;
|
||||||
|
int intervalStepForce = 1;
|
||||||
|
int intervalStepRes = 1;
|
||||||
|
|
||||||
|
// gridfile: The partitioned Grid file path, using relative path,
|
||||||
|
// which is relative to the working directory.
|
||||||
|
string gridfile = "./grid/methaneair__4.fts";
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Flow Parameter #
|
||||||
|
#########################################################################
|
||||||
|
|
||||||
|
//flowSolverName : SIMPLE/CompressibleSIMPLE/PISO
|
||||||
|
string flowSolverName = "CompressibleSIMPLE";
|
||||||
|
|
||||||
|
// Initial value of flow variables
|
||||||
|
double initRho = 1.225;
|
||||||
|
double initU = 0;
|
||||||
|
double initV = 0;
|
||||||
|
double initW = 0;
|
||||||
|
double initP = 0;
|
||||||
|
double initMu = 1.72e-5;
|
||||||
|
double initRg = 296.928571;
|
||||||
|
double refP = 101325;
|
||||||
|
int refPLocate = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Momentum Equation
|
||||||
|
// MomEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int MomEqSolMethod = 2;
|
||||||
|
// MomEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int MomEqPrecondMethod = 1;
|
||||||
|
int MomEqMaxSweep = 30;
|
||||||
|
double MomEqIterSolvTol = 1e-8;
|
||||||
|
double MomEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
//Parameters For Solving the Pressure Possion Equation
|
||||||
|
// PPEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int PPEqSolMethod= 3;
|
||||||
|
// PPEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int PPEqPrecondMethod= 1;
|
||||||
|
int PPEqMaxSweep = 30;
|
||||||
|
double PPEqIterSolvTol = 1e-8;
|
||||||
|
double PPEqRelaxCoeff = 0.3;
|
||||||
|
|
||||||
|
//Relaxation factor of surface flux
|
||||||
|
double FaceFluxRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
int isCalGravityVisSource = 0;
|
||||||
|
int bodyForceFlag = 0;
|
||||||
|
double gravityX = 0.0;
|
||||||
|
double gravityY = -9.81;
|
||||||
|
double gravityZ = 0.0;
|
||||||
|
|
||||||
|
int isBoussinesqApproximation = 0;
|
||||||
|
double thermalExpansionCoeff = 3.44827e-3;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Turbulence Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveTurb : is(1)/not(0);
|
||||||
|
int isSolveTurb = 0;
|
||||||
|
// TurbEqSolverName : k-epsilon(KE)/Spalart-Allmaras(SA)
|
||||||
|
string TurbEqSolverName = "KE";
|
||||||
|
|
||||||
|
// Initial value of Turbulence variables
|
||||||
|
double initKinetic = 0.64;
|
||||||
|
double initEpsilon = 5771;
|
||||||
|
|
||||||
|
//Parameters For Solving the Turbulence Equation
|
||||||
|
// TurbEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int TurbEqSolMethod = 2;
|
||||||
|
// TurbEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int TurbEqPrecondMethod = 1;
|
||||||
|
int TurbEqMaxSweep = 30;
|
||||||
|
double TurbEqIterSolvTol = 1e-8;
|
||||||
|
double TurbEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Energy Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveEnergy : is(1)/not(0);
|
||||||
|
int isSolveEnergy = 1;
|
||||||
|
|
||||||
|
// Initial value of Energy variables
|
||||||
|
double initT = 273.0;
|
||||||
|
double initCPg = 1006.0;
|
||||||
|
double initK = 0.0454;
|
||||||
|
double initkappa = 1.4;
|
||||||
|
double refT = 273;
|
||||||
|
|
||||||
|
//Parameters For Solving the Energy Equation
|
||||||
|
// EnergyEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int EnergyEqSolMethod = 2;
|
||||||
|
// EnergyEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int EnergyEqPrecondMethod = 1;
|
||||||
|
int EnergyEqMaxSweep = 30;
|
||||||
|
double EnergyEqIterSolvTol = 1e-8;
|
||||||
|
double EnergyEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Species Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveSpecies : is(1)/not(0);
|
||||||
|
int isSolveSpecies = 1;
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
int numberOfSpeciesIncom = 6;
|
||||||
|
string speciesNameIncom[] = [C2H4, H2_l, C3H8, NG, H2S, Cl2];
|
||||||
|
double initMassFractionIncom[] = [0.21, 0.78, 0.009, 0.0, 0.001, 0.0];
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
// SpeciesEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int SpeciesEqSolMethod = 2;
|
||||||
|
// SpeciesEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int SpeciesEqPrecondMethod = 1;
|
||||||
|
int SpeciesEqMaxSweep = 30;
|
||||||
|
double SpeciesEqIterSolvTol = 1e-8;
|
||||||
|
double SpeciesEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Unsteady Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// iunsteady : is(1)/not(0);
|
||||||
|
int iunsteady = 1;
|
||||||
|
double startTime = 0.0;
|
||||||
|
double endTime = 200;
|
||||||
|
double dt = 0.1;
|
||||||
|
int min_sub_iter = 50;
|
||||||
|
int max_sub_iter = 50;
|
||||||
|
|
||||||
|
// isStableUnsteadyMethod : is(1)/not(0);
|
||||||
|
int isStableUnsteadyMethod = 1;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Solution Method #
|
||||||
|
#########################################################################
|
||||||
|
// ConvCalcMethod : UPWIND/CDS/QUICK/SUDS
|
||||||
|
string ConvCalcMethod = "UPWIND"
|
||||||
|
|
||||||
|
// DiffCalcMethod : NON_ORTHOGONAL(default)
|
||||||
|
string DiffCalcMethod = "NON_ORTHOGONAL";
|
||||||
|
|
||||||
|
//TranCalcMethod : IMPLICIT_EULER(1st)/IMPLICIT_2ND_ORDER(2st)
|
||||||
|
string TranCalcMethod = "IMPLICIT_EULER";
|
||||||
|
|
||||||
|
// GradCalcMethod : GAUSS/LSQ
|
||||||
|
string GradCalcMethod = "GAUSS";
|
||||||
|
|
||||||
|
// mathLibType : hypre(0)/unap(1)/yhamg(2)
|
||||||
|
int mathLibType = 0;
|
||||||
|
|
||||||
|
// compressible : is(0, default)/not(1)
|
||||||
|
int compressible = 0;
|
||||||
|
|
||||||
|
// SIMPLEC : SIMPLE(0)/SIMPLEC(1)
|
||||||
|
int SIMPLEC = 1;
|
||||||
|
|
||||||
|
// isSkewness : stable gradient method: is(1)/not(0)
|
||||||
|
int isSkewness = 0;
|
||||||
|
|
||||||
|
//rhoType : Constant(0)/IncompressibleIdealGas(1)/IdealGas(2)
|
||||||
|
int rhoType = 2;
|
||||||
|
|
||||||
|
//muType: Constant(0)/SutherLand(1)/IdealGasMixingLaw(2),
|
||||||
|
int muType = 0;
|
||||||
|
|
||||||
|
//kType : Constant(0)/MassWeightedMixingLaw(1)/IdealGasMixingLaw(2)
|
||||||
|
int kType = 0;
|
||||||
|
|
||||||
|
//cpType : Constant(0)/Mixing(1)
|
||||||
|
int cpType = 0;
|
||||||
|
|
||||||
|
//massdiffType : ConstantDiluteApprox(1)/DiluteApprox(2)
|
||||||
|
int massdiffType = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# 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), species(from 71 ~ 70 + numberOfSpecies)
|
||||||
|
// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!
|
||||||
|
// Variables order must from small to big.
|
||||||
|
|
||||||
|
int nVisualVariables = 13;
|
||||||
|
int visualVariables[] = [22, 23, 24, 25, 27, 28, 70, 71, 72, 73, 74, 75, 76];
|
||||||
|
int plotFieldType = 1;
|
||||||
|
|
||||||
|
string resSaveFile = "results/res.dat";
|
||||||
|
string aircoeffile = "results/aircoef.dat";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
#########################################################################
|
||||||
|
# Grid data type #
|
||||||
|
#########################################################################
|
||||||
|
// gridtype: Grid type for generation, conversion, reconstruction, merging.
|
||||||
|
// 0 -- Unstructured grid.
|
||||||
|
// 1 -- Structured grid.
|
||||||
|
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
|
||||||
|
// axisRotateOrder : axis rotating order.
|
||||||
|
// 1 -- X-axis.
|
||||||
|
// 2 -- Y-axis.
|
||||||
|
// 3 -- Z-axis.
|
||||||
|
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
|
||||||
|
// from_gtype: Type of grid data type in grid conversion process.
|
||||||
|
// -1 -- MULTI_TYPE.
|
||||||
|
// 1 -- PHengLEI, *.fts.
|
||||||
|
// 2 -- CGNS, *.cgns.
|
||||||
|
// 3 -- Plot3D type of structured grid, *.dat/*.grd.
|
||||||
|
// 4 -- Fieldview type of unstructured grid, *.dat/*.inp.
|
||||||
|
// 5 -- Fluent, *.cas/*.msh.
|
||||||
|
// 6 -- Ustar, mgrid.in.
|
||||||
|
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
|
||||||
|
// 8 -- GMSH, *.msh.
|
||||||
|
int gridtype = 0;
|
||||||
|
int nAxisRotateTimes = 0;
|
||||||
|
int axisRotateOrder[] = [1, 2, 3];
|
||||||
|
double axisRotateAngles[] = [0.0, 0.0, 0.0];
|
||||||
|
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.
|
||||||
|
int numberOfMultifile = 1;
|
||||||
|
string from_gfile = "./grid/methaneair.cas";
|
||||||
|
string out_gfile = "./grid/methaneair.fts";
|
|
@ -0,0 +1,53 @@
|
||||||
|
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 = 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 = 4;
|
||||||
|
//string parafilename = "./bin/repository.hypara";
|
||||||
|
|
||||||
|
//int nsimutask = 5;
|
||||||
|
//string parafilename = "./bin/overset_grid_view.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 = "";
|
|
@ -0,0 +1,22 @@
|
||||||
|
// pgridtype: The grid type.
|
||||||
|
// 0 -- unstruct grid.
|
||||||
|
// 1 -- struct grid.
|
||||||
|
// maxproc: The number of partition zones that want to be divided into,
|
||||||
|
// which is equal to the number of CPU processors you want.
|
||||||
|
// Usually, 50~100 thousands structured cells per CPU-Core is suggested.
|
||||||
|
// 30~70 thousands unstructured cells per CPU-Core is suggested.
|
||||||
|
// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts).
|
||||||
|
// partition_grid_file: Target partition grid file(PHengLEI type, *.fts).
|
||||||
|
|
||||||
|
int pgridtype = 0;
|
||||||
|
int maxproc = 4;
|
||||||
|
|
||||||
|
string original_grid_file = "./grid/methaneair.fts";
|
||||||
|
string partition_grid_file = "./grid/methaneair__4.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;
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
红山开源风雷算例库原始网格获取百度网盘链接:
|
||||||
|
链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA
|
||||||
|
提取码:w47m
|
||||||
|
|
||||||
|
注:plot3D格式网格需同时下载.grd和.inp文件
|
|
@ -0,0 +1,71 @@
|
||||||
|
# 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 = "in_1";
|
||||||
|
{
|
||||||
|
string bodyName = "body";
|
||||||
|
int bcType = 5;
|
||||||
|
double initU =3.05;
|
||||||
|
double initKinetic = 0.375;
|
||||||
|
double initEpsilon =86.64304;
|
||||||
|
}
|
||||||
|
string bcName = "out_1";
|
||||||
|
{
|
||||||
|
string bodyName = "body";
|
||||||
|
int bcType = 6;
|
||||||
|
double initP =0;
|
||||||
|
double initKinetic = 0.3756;
|
||||||
|
double initEpsilon = 86.64304;
|
||||||
|
}
|
||||||
|
string bcName = "wall_1";
|
||||||
|
{
|
||||||
|
int bcType = 2;
|
||||||
|
}
|
||||||
|
string bcName = "sym_1";
|
||||||
|
{
|
||||||
|
int bcType = 3;
|
||||||
|
}
|
||||||
|
string bcName = "symf_1";
|
||||||
|
{
|
||||||
|
int bcType = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
# '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
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,211 @@
|
||||||
|
#########################################################################
|
||||||
|
# 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.
|
||||||
|
// intervalStepRes: The step intervals for residual 'res.dat' saved.
|
||||||
|
int maxSimuStep = 1000;
|
||||||
|
int intervalStepFlow = 1000;
|
||||||
|
int intervalStepPlot = 100;
|
||||||
|
int intervalStepForce = 1;
|
||||||
|
int intervalStepRes = 1;
|
||||||
|
|
||||||
|
// gridfile: The partitioned Grid file path, using relative path,
|
||||||
|
// which is relative to the working directory.
|
||||||
|
string gridfile = "./grid/sub__4.fts";
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Flow Parameter #
|
||||||
|
#########################################################################
|
||||||
|
|
||||||
|
//flowSolverName : SIMPLE/CompressibleSIMPLE/PISO
|
||||||
|
string flowSolverName = "SIMPLE";
|
||||||
|
|
||||||
|
// Initial value of flow variables
|
||||||
|
double initRho = 998.2;
|
||||||
|
double initU = 3.05;
|
||||||
|
double initV = 0;
|
||||||
|
double initW = 0;
|
||||||
|
double initP = 0;
|
||||||
|
double initMu =0.001003;
|
||||||
|
double initRg = 296.928571;
|
||||||
|
double refP = 101325;
|
||||||
|
int refPLocate = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Momentum Equation
|
||||||
|
// MomEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int MomEqSolMethod = 2;
|
||||||
|
// MomEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int MomEqPrecondMethod = 1;
|
||||||
|
int MomEqMaxSweep = 30;
|
||||||
|
double MomEqIterSolvTol = 1e-8;
|
||||||
|
double MomEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
//Parameters For Solving the Pressure Possion Equation
|
||||||
|
// PPEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int PPEqSolMethod= 3;
|
||||||
|
// PPEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int PPEqPrecondMethod= 1;
|
||||||
|
int PPEqMaxSweep = 30;
|
||||||
|
double PPEqIterSolvTol = 1e-8;
|
||||||
|
double PPEqRelaxCoeff = 0.3;
|
||||||
|
|
||||||
|
//Relaxation factor of surface flux
|
||||||
|
double FaceFluxRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
int isCalGravityVisSource = 0;
|
||||||
|
int bodyForceFlag = 0;
|
||||||
|
double gravityX = 0.0;
|
||||||
|
double gravityY = -9.81;
|
||||||
|
double gravityZ = 0.0;
|
||||||
|
|
||||||
|
int isBoussinesqApproximation = 0;
|
||||||
|
double thermalExpansionCoeff = 3.44827e-3;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Turbulence Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveTurb : is(1)/not(0);
|
||||||
|
int isSolveTurb = 1;
|
||||||
|
// TurbEqSolverName : k-epsilon(KE)/Spalart-Allmaras(SA)
|
||||||
|
string TurbEqSolverName = "SA";
|
||||||
|
|
||||||
|
// Initial value of Turbulence variables
|
||||||
|
double initKinetic = 0.0348844;
|
||||||
|
double initEpsilon = 10.89987;
|
||||||
|
|
||||||
|
//Parameters For Solving the Turbulence Equation
|
||||||
|
// TurbEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int TurbEqSolMethod = 2;
|
||||||
|
// TurbEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int TurbEqPrecondMethod = 1;
|
||||||
|
int TurbEqMaxSweep = 30;
|
||||||
|
double TurbEqIterSolvTol = 1e-8;
|
||||||
|
double TurbEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Energy Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveEnergy : is(1)/not(0);
|
||||||
|
int isSolveEnergy = 0;
|
||||||
|
|
||||||
|
// Initial value of Energy variables
|
||||||
|
double initT = 273.15;
|
||||||
|
double initCPg = 1007.0;
|
||||||
|
double initK = 0.0454;
|
||||||
|
double initkappa = 1.4;
|
||||||
|
double refT = 273;
|
||||||
|
|
||||||
|
//Parameters For Solving the Energy Equation
|
||||||
|
// EnergyEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int EnergyEqSolMethod = 2;
|
||||||
|
// EnergyEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int EnergyEqPrecondMethod = 1;
|
||||||
|
int EnergyEqMaxSweep = 30;
|
||||||
|
double EnergyEqIterSolvTol = 1e-8;
|
||||||
|
double EnergyEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Species Equation Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// isSolveSpecies : is(1)/not(0);
|
||||||
|
int isSolveSpecies = 0;
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
int numberOfSpeciesIncom = 1;
|
||||||
|
string speciesNameIncom[] = [AIR];
|
||||||
|
double initMassFractionIncom[] = [1.0];
|
||||||
|
|
||||||
|
//Parameters For Solving the Species Equation
|
||||||
|
// SpeciesEqSolMethod : GaussSeidel(0)/GMRES(1)/Bicgstab(2)/AMG(3)/PCG(4)/FlexGMRES(5)/ILU(10)/AMGDD(11)/Hybrid(12)
|
||||||
|
int SpeciesEqSolMethod = 2;
|
||||||
|
// SpeciesEqPrecondMethod : None(0)/ILU(1)/AMG(2)/Euclid(3)/LduDiag(8) /LduDIC(9) /LduDILU(10)
|
||||||
|
int SpeciesEqPrecondMethod = 1;
|
||||||
|
int SpeciesEqMaxSweep = 30;
|
||||||
|
double SpeciesEqIterSolvTol = 1e-8;
|
||||||
|
double SpeciesEqRelaxCoeff = 0.5;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Unsteady Parameter #
|
||||||
|
#########################################################################
|
||||||
|
// iunsteady : is(1)/not(0);
|
||||||
|
int iunsteady = 0;
|
||||||
|
double startTime = 0.0;
|
||||||
|
double endTime = 20;
|
||||||
|
double dt = 0.1;
|
||||||
|
int min_sub_iter = 50;
|
||||||
|
int max_sub_iter = 50;
|
||||||
|
|
||||||
|
// isStableUnsteadyMethod : is(1)/not(0);
|
||||||
|
int isStableUnsteadyMethod = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# Solution Method #
|
||||||
|
#########################################################################
|
||||||
|
// ConvCalcMethod : UPWIND/CDS/QUICK/SUDS
|
||||||
|
string ConvCalcMethod = "UPWIND"
|
||||||
|
|
||||||
|
// DiffCalcMethod : NON_ORTHOGONAL(default)
|
||||||
|
string DiffCalcMethod = "NON_ORTHOGONAL";
|
||||||
|
|
||||||
|
//TranCalcMethod : IMPLICIT_EULER(1st)/IMPLICIT_2ND_ORDER(2st)
|
||||||
|
string TranCalcMethod = "IMPLICIT_EULER";
|
||||||
|
|
||||||
|
// GradCalcMethod : GAUSS/LSQ
|
||||||
|
string GradCalcMethod = "GAUSS";
|
||||||
|
|
||||||
|
// mathLibType : hypre(0)/unap(1)/yhamg(2)
|
||||||
|
int mathLibType = 0;
|
||||||
|
|
||||||
|
// compressible : is(0, default)/not(1)
|
||||||
|
int compressible = 0;
|
||||||
|
|
||||||
|
// SIMPLEC : SIMPLE(0)/SIMPLEC(1)
|
||||||
|
int SIMPLEC = 1;
|
||||||
|
|
||||||
|
// isSkewness : stable gradient method: is(1)/not(0)
|
||||||
|
int isSkewness = 0;
|
||||||
|
|
||||||
|
//rhoType : Constant(0)/IncompressibleIdealGas(1)/IdealGas(2)
|
||||||
|
int rhoType = 0;
|
||||||
|
|
||||||
|
//muType: Constant(0)/SutherLand(1)/IdealGasMixingLaw(2),
|
||||||
|
int muType = 0;
|
||||||
|
|
||||||
|
//kType : Constant(0)/MassWeightedMixingLaw(1)/IdealGasMixingLaw(2)
|
||||||
|
int kType = 0;
|
||||||
|
|
||||||
|
//cpType : Constant(0)/Mixing(1)
|
||||||
|
int cpType = 0;
|
||||||
|
|
||||||
|
//massdiffType : ConstantDiluteApprox(1)/DiluteApprox(2)
|
||||||
|
int massdiffType = 0;
|
||||||
|
|
||||||
|
#########################################################################
|
||||||
|
# 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), species(from 71 ~ 70 + numberOfSpecies)
|
||||||
|
// 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, 29, 31];
|
||||||
|
int plotFieldType = 1;
|
||||||
|
|
||||||
|
string resSaveFile = "results/res.dat";
|
||||||
|
string aircoeffile = "results/aircoef.dat";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,36 @@
|
||||||
|
#########################################################################
|
||||||
|
# Grid data type #
|
||||||
|
#########################################################################
|
||||||
|
// gridtype: Grid type for generation, conversion, reconstruction, merging.
|
||||||
|
// 0 -- Unstructured grid.
|
||||||
|
// 1 -- Structured grid.
|
||||||
|
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
|
||||||
|
// axisRotateOrder : axis rotating order.
|
||||||
|
// 1 -- X-axis.
|
||||||
|
// 2 -- Y-axis.
|
||||||
|
// 3 -- Z-axis.
|
||||||
|
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
|
||||||
|
// from_gtype: Type of grid data type in grid conversion process.
|
||||||
|
// -1 -- MULTI_TYPE.
|
||||||
|
// 1 -- PHengLEI, *.fts.
|
||||||
|
// 2 -- CGNS, *.cgns.
|
||||||
|
// 3 -- Plot3D type of structured grid, *.dat/*.grd.
|
||||||
|
// 4 -- Fieldview type of unstructured grid, *.dat/*.inp.
|
||||||
|
// 5 -- Fluent, *.cas/*.msh.
|
||||||
|
// 6 -- Ustar, mgrid.in.
|
||||||
|
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
|
||||||
|
// 8 -- GMSH, *.msh.
|
||||||
|
int gridtype = 0;
|
||||||
|
int nAxisRotateTimes = 0;
|
||||||
|
int axisRotateOrder[] = [1, 2, 3];
|
||||||
|
double axisRotateAngles[] = [0.0, 0.0, 0.0];
|
||||||
|
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.
|
||||||
|
int numberOfMultifile = 1;
|
||||||
|
string from_gfile = "./grid/sub.cas";
|
||||||
|
string out_gfile = "./grid/sub.fts";
|
|
@ -0,0 +1,53 @@
|
||||||
|
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 = 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 = 4;
|
||||||
|
//string parafilename = "./bin/repository.hypara";
|
||||||
|
|
||||||
|
//int nsimutask = 5;
|
||||||
|
//string parafilename = "./bin/overset_grid_view.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 = "";
|
|
@ -0,0 +1,22 @@
|
||||||
|
// pgridtype: The grid type.
|
||||||
|
// 0 -- unstruct grid.
|
||||||
|
// 1 -- struct grid.
|
||||||
|
// maxproc: The number of partition zones that want to be divided into,
|
||||||
|
// which is equal to the number of CPU processors you want.
|
||||||
|
// Usually, 50~100 thousands structured cells per CPU-Core is suggested.
|
||||||
|
// 30~70 thousands unstructured cells per CPU-Core is suggested.
|
||||||
|
// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts).
|
||||||
|
// partition_grid_file: Target partition grid file(PHengLEI type, *.fts).
|
||||||
|
|
||||||
|
int pgridtype = 0;
|
||||||
|
int maxproc = 4;
|
||||||
|
|
||||||
|
string original_grid_file = "./grid/sub.fts";
|
||||||
|
string partition_grid_file = "./grid/sub__4.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;
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
红山开源风雷算例库原始网格获取百度网盘链接:
|
||||||
|
链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA
|
||||||
|
提取码:w47m
|
||||||
|
|
||||||
|
注:plot3D格式网格需同时下载.grd和.inp文件
|
File diff suppressed because it is too large
Load Diff
|
@ -4,9 +4,12 @@
|
||||||
// gridtype: Grid type for generation, conversion, reconstruction, merging.
|
// gridtype: Grid type for generation, conversion, reconstruction, merging.
|
||||||
// 0 -- Unstructured grid.
|
// 0 -- Unstructured grid.
|
||||||
// 1 -- Structured grid.
|
// 1 -- Structured grid.
|
||||||
// axisup: Type of Cartisien coordinates system, used in grid conversion.
|
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
|
||||||
// 1 -- Y upward. (default)
|
// axisRotateOrder : axis rotating order.
|
||||||
// 2 -- Z upward.
|
// 1 -- X-axis.
|
||||||
|
// 2 -- Y-axis.
|
||||||
|
// 3 -- Z-axis.
|
||||||
|
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
|
||||||
// from_gtype: Type of grid data type in grid conversion process.
|
// from_gtype: Type of grid data type in grid conversion process.
|
||||||
// -1 -- MULTI_TYPE.
|
// -1 -- MULTI_TYPE.
|
||||||
// 1 -- PHengLEI, *.fts.
|
// 1 -- PHengLEI, *.fts.
|
||||||
|
@ -18,7 +21,9 @@
|
||||||
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
|
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
|
||||||
// 8 -- GMSH, *.msh.
|
// 8 -- GMSH, *.msh.
|
||||||
int gridtype = 1;
|
int gridtype = 1;
|
||||||
int axisup = 1;
|
int nAxisRotateTimes = 0;
|
||||||
|
int axisRotateOrder[] = [1, 2, 3];
|
||||||
|
double axisRotateAngles[] = [0.0, 0.0, 0.0];
|
||||||
int from_gtype = 2;
|
int from_gtype = 2;
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
|
@ -42,15 +42,9 @@ string parafilename = "./bin/cfd_para_supersonic.hypara";
|
||||||
//int nsimutask = 5;
|
//int nsimutask = 5;
|
||||||
//string parafilename = "./bin/overset_grid_view.hypara";
|
//string parafilename = "./bin/overset_grid_view.hypara";
|
||||||
|
|
||||||
//int nsimutask = 13;
|
|
||||||
//string parafilename = "./bin/lbm_para.hypara";
|
|
||||||
|
|
||||||
//int nsimutask = 14;
|
//int nsimutask = 14;
|
||||||
//string parafilename = "./bin/integrative_solver.hypara";
|
//string parafilename = "./bin/integrative_solver.hypara";
|
||||||
|
|
||||||
//int nsimutask = 15;
|
|
||||||
//string parafilename = "./bin/gridcheck_solver.hypara";
|
|
||||||
|
|
||||||
//int nsimutask = 99;
|
//int nsimutask = 99;
|
||||||
//string parafilename = "./bin/post_processing.hypara";
|
//string parafilename = "./bin/post_processing.hypara";
|
||||||
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -4,9 +4,12 @@
|
||||||
// gridtype: Grid type for generation, conversion, reconstruction, merging.
|
// gridtype: Grid type for generation, conversion, reconstruction, merging.
|
||||||
// 0 -- Unstructured grid.
|
// 0 -- Unstructured grid.
|
||||||
// 1 -- Structured grid.
|
// 1 -- Structured grid.
|
||||||
// axisup: Type of Cartisien coordinates system, used in grid conversion.
|
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
|
||||||
// 1 -- Y upward. (default)
|
// axisRotateOrder : axis rotating order.
|
||||||
// 2 -- Z upward.
|
// 1 -- X-axis.
|
||||||
|
// 2 -- Y-axis.
|
||||||
|
// 3 -- Z-axis.
|
||||||
|
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
|
||||||
// from_gtype: Type of grid data type in grid conversion process.
|
// from_gtype: Type of grid data type in grid conversion process.
|
||||||
// -1 -- MULTI_TYPE.
|
// -1 -- MULTI_TYPE.
|
||||||
// 1 -- PHengLEI, *.fts.
|
// 1 -- PHengLEI, *.fts.
|
||||||
|
@ -18,7 +21,9 @@
|
||||||
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
|
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
|
||||||
// 8 -- GMSH, *.msh.
|
// 8 -- GMSH, *.msh.
|
||||||
int gridtype = 1;
|
int gridtype = 1;
|
||||||
int axisup = 1;
|
int nAxisRotateTimes = 0;
|
||||||
|
int axisRotateOrder[] = [1, 2, 3];
|
||||||
|
double axisRotateAngles[] = [0.0, 0.0, 0.0];
|
||||||
int from_gtype = 3;
|
int from_gtype = 3;
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -4,9 +4,12 @@
|
||||||
// gridtype: Grid type for generation, conversion, reconstruction, merging.
|
// gridtype: Grid type for generation, conversion, reconstruction, merging.
|
||||||
// 0 -- Unstructured grid.
|
// 0 -- Unstructured grid.
|
||||||
// 1 -- Structured grid.
|
// 1 -- Structured grid.
|
||||||
// axisup: Type of Cartisien coordinates system, used in grid conversion.
|
// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating.
|
||||||
// 1 -- Y upward. (default)
|
// axisRotateOrder : axis rotating order.
|
||||||
// 2 -- Z upward.
|
// 1 -- X-axis.
|
||||||
|
// 2 -- Y-axis.
|
||||||
|
// 3 -- Z-axis.
|
||||||
|
// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order.
|
||||||
// from_gtype: Type of grid data type in grid conversion process.
|
// from_gtype: Type of grid data type in grid conversion process.
|
||||||
// -1 -- MULTI_TYPE.
|
// -1 -- MULTI_TYPE.
|
||||||
// 1 -- PHengLEI, *.fts.
|
// 1 -- PHengLEI, *.fts.
|
||||||
|
@ -18,7 +21,9 @@
|
||||||
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
|
// 7 -- Hybrid, include both of unstructured and structured grid, *.fts.
|
||||||
// 8 -- GMSH, *.msh.
|
// 8 -- GMSH, *.msh.
|
||||||
int gridtype = 0;
|
int gridtype = 0;
|
||||||
int axisup = 1;
|
int nAxisRotateTimes = 0;
|
||||||
|
int axisRotateOrder[] = [1, 2, 3];
|
||||||
|
double axisRotateAngles[] = [0.0, 0.0, 0.0];
|
||||||
int from_gtype = 2;
|
int from_gtype = 2;
|
||||||
|
|
||||||
#########################################################################
|
#########################################################################
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue