diff --git a/B20_TwoD_NACA0012_SA_Gmresh_Unstruct_1CPU/bin/cfd_para.hypara b/B20_TwoD_NACA0012_SA_GMRES_Unstruct_1CPU/bin/cfd_para.hypara similarity index 100% rename from B20_TwoD_NACA0012_SA_Gmresh_Unstruct_1CPU/bin/cfd_para.hypara rename to B20_TwoD_NACA0012_SA_GMRES_Unstruct_1CPU/bin/cfd_para.hypara diff --git a/B20_TwoD_NACA0012_SA_Gmresh_Unstruct_1CPU/bin/cfd_para_subsonic.hypara b/B20_TwoD_NACA0012_SA_GMRES_Unstruct_1CPU/bin/cfd_para_subsonic.hypara similarity index 100% rename from B20_TwoD_NACA0012_SA_Gmresh_Unstruct_1CPU/bin/cfd_para_subsonic.hypara rename to B20_TwoD_NACA0012_SA_GMRES_Unstruct_1CPU/bin/cfd_para_subsonic.hypara diff --git a/B20_TwoD_NACA0012_SA_Gmresh_Unstruct_1CPU/bin/grid_para.hypara b/B20_TwoD_NACA0012_SA_GMRES_Unstruct_1CPU/bin/grid_para.hypara similarity index 100% rename from B20_TwoD_NACA0012_SA_Gmresh_Unstruct_1CPU/bin/grid_para.hypara rename to B20_TwoD_NACA0012_SA_GMRES_Unstruct_1CPU/bin/grid_para.hypara diff --git a/B20_TwoD_NACA0012_SA_Gmresh_Unstruct_1CPU/bin/key.hypara b/B20_TwoD_NACA0012_SA_GMRES_Unstruct_1CPU/bin/key.hypara similarity index 100% rename from B20_TwoD_NACA0012_SA_Gmresh_Unstruct_1CPU/bin/key.hypara rename to B20_TwoD_NACA0012_SA_GMRES_Unstruct_1CPU/bin/key.hypara diff --git a/B20_TwoD_NACA0012_SA_Gmresh_Unstruct_1CPU/bin/partition.hypara b/B20_TwoD_NACA0012_SA_GMRES_Unstruct_1CPU/bin/partition.hypara similarity index 100% rename from B20_TwoD_NACA0012_SA_Gmresh_Unstruct_1CPU/bin/partition.hypara rename to B20_TwoD_NACA0012_SA_GMRES_Unstruct_1CPU/bin/partition.hypara diff --git a/B20_TwoD_NACA0012_SA_Gmresh_Unstruct_1CPU/grid/网格地址.txt b/B20_TwoD_NACA0012_SA_GMRES_Unstruct_1CPU/grid/网格地址.txt similarity index 100% rename from B20_TwoD_NACA0012_SA_Gmresh_Unstruct_1CPU/grid/网格地址.txt rename to B20_TwoD_NACA0012_SA_GMRES_Unstruct_1CPU/grid/网格地址.txt diff --git a/B21_ThreeD_Sphere_Laminar_Gmresh_Unstruct_1CPU/bin/cfd_para.hypara b/B21_ThreeD_Sphere_Laminar_GMRES_Unstruct_1CPU/bin/cfd_para.hypara similarity index 100% rename from B21_ThreeD_Sphere_Laminar_Gmresh_Unstruct_1CPU/bin/cfd_para.hypara rename to B21_ThreeD_Sphere_Laminar_GMRES_Unstruct_1CPU/bin/cfd_para.hypara diff --git a/B21_ThreeD_Sphere_Laminar_Gmresh_Unstruct_1CPU/bin/cfd_para_hypersonic.hypara b/B21_ThreeD_Sphere_Laminar_GMRES_Unstruct_1CPU/bin/cfd_para_hypersonic.hypara similarity index 100% rename from B21_ThreeD_Sphere_Laminar_Gmresh_Unstruct_1CPU/bin/cfd_para_hypersonic.hypara rename to B21_ThreeD_Sphere_Laminar_GMRES_Unstruct_1CPU/bin/cfd_para_hypersonic.hypara diff --git a/B21_ThreeD_Sphere_Laminar_Gmresh_Unstruct_1CPU/bin/grid_para.hypara b/B21_ThreeD_Sphere_Laminar_GMRES_Unstruct_1CPU/bin/grid_para.hypara similarity index 100% rename from B21_ThreeD_Sphere_Laminar_Gmresh_Unstruct_1CPU/bin/grid_para.hypara rename to B21_ThreeD_Sphere_Laminar_GMRES_Unstruct_1CPU/bin/grid_para.hypara diff --git a/B21_ThreeD_Sphere_Laminar_Gmresh_Unstruct_1CPU/bin/key.hypara b/B21_ThreeD_Sphere_Laminar_GMRES_Unstruct_1CPU/bin/key.hypara similarity index 100% rename from B21_ThreeD_Sphere_Laminar_Gmresh_Unstruct_1CPU/bin/key.hypara rename to B21_ThreeD_Sphere_Laminar_GMRES_Unstruct_1CPU/bin/key.hypara diff --git a/B21_ThreeD_Sphere_Laminar_Gmresh_Unstruct_1CPU/bin/partition.hypara b/B21_ThreeD_Sphere_Laminar_GMRES_Unstruct_1CPU/bin/partition.hypara similarity index 100% rename from B21_ThreeD_Sphere_Laminar_Gmresh_Unstruct_1CPU/bin/partition.hypara rename to B21_ThreeD_Sphere_Laminar_GMRES_Unstruct_1CPU/bin/partition.hypara diff --git a/B21_ThreeD_Sphere_Laminar_Gmresh_Unstruct_1CPU/grid/网格地址.txt b/B21_ThreeD_Sphere_Laminar_GMRES_Unstruct_1CPU/grid/网格地址.txt similarity index 100% rename from B21_ThreeD_Sphere_Laminar_Gmresh_Unstruct_1CPU/grid/网格地址.txt rename to B21_ThreeD_Sphere_Laminar_GMRES_Unstruct_1CPU/grid/网格地址.txt diff --git a/B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU/bin/cfd_para.hypara b/B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU/bin/cfd_para.hypara new file mode 100644 index 0000000..8171ce5 --- /dev/null +++ b/B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU/bin/cfd_para.hypara @@ -0,0 +1,1465 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// PPPPP H H EEEEE N N GGGGG L EEEEE III + +// P P H H E NN N G L E I + +// PPPPP HHHHH EEEEE N N N G GG L EEEEE I + +// P H H E N N N G G L E I + +// P H H EEEEE N N GGGGG LLLLL EEEEE III + +//------------------------------------------------------------------------+ +// Platform for Hybrid Engineering Simulation of Flows + +// China Aerodynamics Research and Development Center + +// (C) Copyright, Since 2010 + +// PHengLEI 2312 + +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +########################################################################### +# Default parameters for Grid conversion # +########################################################################### +// gridtype: Grid type for generation, conversion, reconstruction, merging. +// 0 -- Unstructured grid. +// 1 -- Structured grid. +// 2 -- Hybrid grid, include both of unstructured and structured grid. +// gridobj: Task type of grid treatment. +// 0 -- Grid generation of typical case, such as cylinder, flat plate, etc. +// 1 -- Grid conversion, from other grid data to PHenglEI, such as Fluent, CGNS. +// 2 -- Grid refinement. +// 3 -- Grid merging, merge two blocks into one block. +// 4 -- Grid deformation, achieve unstructured grid deformation. +// 5 -- Grid repairing, repair the original grid in order to remove the negative volume cells. +// 6 -- Grid mirroring, mirror a symmetry grid to whole grid. +// 7 -- Grid type change, convert structured grid to unstructured grid. +// multiblock: Multi-block grid or not, only for structured grid conversion. +// 0 -- Not. +// 1 -- Yes. +// iadapt: Adaptation number for unstructure grid. +// SymmetryFaceVector: The vector of symmetry face. +// 0 -- X axis. +// 1 -- Y axis. +// 2 -- Z axis. +// gridReorder: Reorder cell and face of grid or not, only for 3D unstructured grid conversion, +// which is CGNS type. +// 0 -- Not. +// 1 -- Yes. +// faceReorderMethod: the reorder method face of unstructured grid. +// 0 -- BSFCELLFACEORG. +// 1 -- BSFCELLFACELEFT. +// 2 -- BSFCELLFACERIGHT. +int gridtype = 0; +int gridobj = 1; +int multiblock = 0; +int iadapt = 0; +int SymmetryFaceVector = 1; +int gridReorder = 0; +int faceReorderMethod = 0; + +// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating. +// axisRotateOrder : axis rotating order. The size of array "axisRotateOrder" is equal to nAxisRotateTimes. +// 1 -- X-axis. +// 2 -- Y-axis. +// 3 -- Z-axis. +// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order. +int nAxisRotateTimes = 0; +int axisRotateOrder[] = [1, 2, 3]; +double axisRotateAngles[] = [0.0, 0.0, 0.0]; + +// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". +// 0 -- Interface. (default) +// 1 -- Physical boundary condition, used in Hybrid solver. +int omit_no_bound_bc = 0; +int omitRepeatInterface = 1; + +//----------------------------------------------------------------------- +# Grid data type # +//----------------------------------------------------------------------- +// from_gtype/to_gtype: Type of grid data type in grid conversion process. +// -1 -- MULTI_TYPE. +// 1 -- PHengLEI, *.fts. +// 2 -- CGNS, *.cgns. +// 3 -- Plot3D type of structured grid, *.dat/*.grd. +// 4 -- Fieldview type of unstructured grid, *.dat/*.inp. +// 5 -- Fluent, *.cas/*.msh. +// 6 -- Ustar, mgrid.in. +// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. +// 8 -- GMSH, *.msh. +// 9 -- Gridgen type of structured grid, *.dat/*.grd. +// dumpOldGrid: If dump out the old grid file. +// 0 -- Not. (default) +// 1 -- Yes. +int from_gtype = 2; +int to_gtype = 1; +int dumpOldGrid = 0; + +//----------------------------------------------------------------------- +# File path # +//----------------------------------------------------------------------- +// from_gfile: path of original data file for unstructure grid convert from. +// out_gfile: path of target file for grid convert to, *.fts type of file usually. +int numberOfGridFile = 1; +string from_gfile = "./grid/rae2822_hybrid2d.cas"; +string from_gfile1 = ""; +string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; + +// ----------------- some advanced choices ------------------------------ +// iunsteady: The Grid is for unsteady simulation or not. +int iunsteady = 0; + +// fileformat: Ustar Grid file format. +// 0 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// Parameters for hybrid solver. +// mixgrid_uns: path of unstructure grid file for hybrid solver, *.fts type. +// mixgrid_str: path of structure grid file for hybrid solver, *.fts type. +string mixgrid_uns = "./grid/rae2822_uns2d_4.fts"; +string mixgrid_str = "./grid/flat_laminr_133_85_2d.fts"; + +// Some parameters for structured overlapping grid. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Grid Refine Parameters ----------------------------- +// anisoRefine: If refine grid by anisoRefine type. +// 0 -- Not. (default) +// 1 -- Yes. +// geometryUnit: Geometry unit. +// 1 -- meter. +// 2 -- millimeter. +// 3 -- inch. +// exclusiveCase: Parallel projection exclusive case. +// 0 -- NON case. +// 1 -- JSM-C2-NPOFF case. +// 2 -- CHNT. +// projectOrgPoint: If the original wall points need to be projected or not. +int anisoRefine = 0; +int geometryUnit = 1; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; +int projectOrgPoint = 0; +string geometryFileName = "./grid/jsm.igs"; + +// ----------------- Grid Deform Parameters ----------------------------- +// deformationMethod: Grid Deform. +// 1 -- SPRING. +// 2 -- RBF. +// stationalGridFile: Original grid file. +// visualFileName : The visualization file path of deform grid. +// nDeformStep : The max deform step. +// flapAngle : The max flap angle. +// rotatePostionZ : Rotate postion. +// rotatePostionY : Rotate postion. +// gridSlice : If dump slice grid. +// sliceAxis : Grid slice axis. +// slicePosition : Grid slice position. +int nDeformStep = 40; +double flapAngle = 10.0; +double rotatePostionZ = 4.00003; +double rotatePostionY = 3.05; + +int deformationMethod = 2; +string stationalGridFile = "./grid/Segment2Brid.fts"; +string visualFileName = "./results/deformedGrid.dat" + +int gridSlice = 1; +int sliceAxis = 1; +double slicePosition = 13; + +// ----------------- RBF Parameters ------------------------------------- +// numberOfReferenceCP: Number of reference Control Points. +// influencePara : The RBF influence radius parameter. +int numberOfReferenceCP = 40; +double influencePara = 25.0; + +// ----------------- Periodic Parameters -------------------------------- +// Notice: Rotational periodicity only support rotation along the X axis! +// periodicType: Which periodic boundary is used. +// 0 -- without Periodic Boundary. +// 1 -- Translational periodicity. +// 2 -- Rotational periodicity. +// translationLength[]: The relative distance between two periodic face + which only support one direction. +// rotationAngle: The relative angle between two periodic face. + which is recorded in degrees. +int periodicType = 0; +double translationLength[] = [0.0, 0.0, 0.0]; +double rotationAngle = 0.0; + +######################################################################### +# Default parameters for Partition # +######################################################################### +// pgridtype: The grid type. +// 0 -- unstruct grid. +// 1 -- struct grid. +// 2 -- refine structured grid. +// maxproc: The number of partition zones that want to be divided into. +// numberOfMultifile: The number of partition grid files that want to be dumped out. +int pgridtype = 0; +int maxproc = 4; +int numberOfMultifile = 1; + +// traceMark: Trace mark or not, only for structured grid partition. +// 0 -- Not. +// 1 -- Yes. +// blockIndexOfMark: the block index of mark, only for structured grid partition. +// cellIndexOfMark : the cell index of mark, only for structured grid partition. +int traceMark = 0; +int blockIndexOfMark = 0; +int cellIndexOfMark[] = [185, 30, 1]; + +// parallelStrategy: +// 0 -- each zone is assigned to the one that defined in grid partition procedure. +// 1 -- random assigned for each zone or by some else ways. +int parallelStrategy = 1; + +//----------------------------------------------------------------------- +# File path # +//----------------------------------------------------------------------- +// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts). +// partition_grid_file: Target partition grid file(PHengLEI type, *.fts). +string original_grid_file = "./grid/sphere_mixed.fts"; +string partition_grid_file = "./grid/sphere_mixed__4.fts"; + +// ------------------ Sompe advanced parameters ------------------------- +// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". +// 0 -- Interface. (default) +// 1 -- Physical boundary condition, used in Hybrid solver. +// npartmethod: Method of interface reconstruction, default is 1. +// parallelPartitionMethod: Method of parallel partition, this is set only when execute parallel partition. It would be skipped when serial partition. +// 1 -- Using ParMetis for homogeneous MPI. +// 2 -- Using Metis for homogeneous MPI. +// 3 -- using METIS partition for homogeneous OpenMP. +// parmetisBalance: Used to specify the imbalance tolerance. +// 1 -- perfect balance. +// maxproc -- perfect imbalance. +// 1.05 -- recommended. +int omit_no_bound_bc = 0; +int npartmethod = 1; +int parallelPartitionMethod = 2; +double parmetisBalance = 1.05; + +// 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; + +######################################################################### +# Default parameters for CFD simulation # +######################################################################### +// 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. +// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +int maxSimuStep = 20000; +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepSample = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 1; + +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) +// Kprec: The coefficient K for the cut-off velocity. +// 1.0~3.0 is suggested. (default, 3.0) +// preconFarfieldBCMethod: The precondition method for farfield boundary condition. +// 0 -- precondition far-field boundary based on riemann invariants. +// 1 -- Turkel's simplified far-field boundary condition. +int ifLowSpeedPrecon = 0; +double Kprec = 3.0; +int preconFarfieldBCMethod = 1; + +//----------------------------------------------------------------------- +# CFD Control Parameter # +//----------------------------------------------------------------------- +// refMachNumber: Mach number. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// inflowParaType: The type of inflow parameters. +// 0 -- the nondimensional conditions. +// 1 -- the flight conditions. +// 2 -- the experiment conditions. +// 3 -- the subsonic boundary conditions. (Useless!) +// 4 -- the condition that the velocity, temperature and density are given. +// 5 -- the condition that the velocity, temperature and pressure are given. +//flowInitMethod: Flow field initialization method. +// 0 -- The entire flow field is initialized according to Infinite velocity. +// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate. +// refReNumber: Reynolds number, which is based unit length, unit of 1/m. +// refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition. +// freestream_vibration_temperature: Dimensional freestream vibration temperature. +// refDimensionalPressure: Dimensional reference pressure, or the total pressure only for the experiment condition. +// height: Fly height, unit of km. +// wallTemperature: Temprature of the solid wall, minus value is for adiabatic boundary condition. +// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter. Common dimensions like: +// 1 dm = 0.1 m. +// 1 cm = 0.01 m. +// 1 mm = 0.001 m. +// 1 inch = 0.0254 m. +// 1 foot = 12 inches = 0.3048 m. +// 1 yard = 3 feet = 0.9144 m. +// forceReferenceLength, forceReferenceLengthSpanWise, forceReferenceArea: Reference length, SpanWise length and area, independent of grid unit. +// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent of grid unit. +// radiationCoef: The radiation coefficient on wall, it is used to compute the radiation heat flux on wall when the boundary +// condition is radiation equilibrium temperature, and 0.8 is the default value. +// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. +// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. +int directionMethod = 0; +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; +int flowInitMethod = 0; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 300.00; + +//int inflowParaType = 1; +//double height = 0.001; + +//int inflowParaType = 2; +//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). +//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). + +// The velocity, temperature and density are fixed. +//int inflowParaType = 4; +//double refDimensionalVelocity = 1000.0; +//double refDimensionalDensity = 1.0e3; + +// The velocity, temperature and pressure are fixed. +//int inflowParaType = 5; +//double refDimensionalVelocity = 1000.0; +//double refDimensionalPressure = 1.0e5; + +// The MachNumber, temperature and pressure are fixed. +//int inflowParaType = 6; +//double refDimensionalTemperature = 293.0; +//double refDimensionalPressure = 8886.06; + +// The velocity, temperature and pressure are read from file. +//int inflowParaType = 7; +//string weatherDataFilePath = "./WRFData/"; +//double longitude = 110.95 +//double latitude = 19.61; + +double wallTemperature = -1.0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; +double gridTranslationVector[] = [0.0, 0.0, 0.0]; + +int numberOfAerodynamicForceComponents = 1; +double forceReferenceLengthSpanWise = 1.0; // unit of meter. +double forceReferenceLength = 1.0; // unit of meter. +double forceReferenceArea = 1.0; // unit of meter^2. +double TorqueRefX = 0.0; // unit of meter. +double TorqueRefY = 0.0; // unit of meter. +double TorqueRefZ = 0.0; // unit of meter. +double knudsenLength = 1.0; // unit of meter. +double refMolecularWeight = 28.9644; // unit of g/mol. + +//----------------------------------------------------------------------- +# Spatial Discretisation # +//----------------------------------------------------------------------- +#************************************************************************ +# Struct Solver * +#************************************************************************ +// inviscidSchemeName: Spatial discretisation scheme of struct grid. +// Using this when solve structered grid or hybrid. +// -- "vanleer", "steger", "hlle", "lax_f", +// -- "roe", "modified_roe", +// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". +// isWennScheme: If using WENN Scheme of struct grid. +// 0 -- NO. (default) +// 1 -- Yes. +// str_limiter_name: Limiter of struct grid. +// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth", +// -- "nolim", no limiter, +// -- "vanalbada_clz", clz supersonic version, +// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3". +string inviscidSchemeName = "roe"; +int isWennScheme = 0; +string str_limiter_name = "vanalbada"; + +#************************************************************************ +# UnStruct Solver or Common * +#************************************************************************ +// viscousType: Viscous model. +// 0 -- Euler. +// 1 -- Laminar. +// 2 -- Algebraic. +// 3 -- 1eq turbulent. +// 4 -- 2eq turbulent. +// viscousName: Laminar or tubulent model. +// -- "0eq-bl". +// -- "1eq-sa". +// -- "2eq-kw-menter-sst". +// -- "2eq-kw-menter-bsl". +// -- "2eq-kw-wilcox-1988". +// -- "2eq-kw-wilcox-1998". +// -- "2eq-kw-kok-tnt". +// -- "2eq-kw-wilcox-2006". +// -- "easm-kw-2003". +// -- "easm-kw-2005". +// DESType: Type of DES. +// 0 -- RANS. (default) +// 1 -- DES. +// 2 -- DDES. +// 3 -- IDDES. +// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. +// Using this when solve Unstructered grid or hybrid. +// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle", +// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". +// uns_limiter_name: Limiter of Unstruct grid. +// -- "barth", "vencat", "vanleer", "minmod", +// -- "vanalbada", "smooth", "nnd", "lpz", "1st", +// -- "nolim", no limiter. +// uns_vis_name: Discretisation method of viscous term. +// -- "std", "test", "aver", "new1", "new2". +// gradientName: Gradient reconstruction method. +// -- "default", "ggcell", "ggnode", "lsq". +// ivencat: Variation of vencat limiter. +// 0 -- org method, it is independent of grid scale. +// 1 -- new method, it is dependent of grid scale. +// 4 -- Ustar limiter model, without grid size unitary. +// 7 -- default used. +// venkatCoeff: Cofficient of vencat, when using vencat limter. +// limitVariables: Limit model (It is useful only if limitVector is 0). +// 0 -- limit only for pressure and denstiny, then get the min value. +// 1 -- limit for every variables, then get the min value. +// limitVector: +// 0 -- Each variable use the same limiter coefficient. +// 1 -- Each variable use the respective limiter coefficients. +// reconmeth: +// 0 -- When reconstruct face value, Q+, Q- use respective limiter coefficients. +// 1 -- Q+, Q- use the min limiter coefficients of left and right cell. +// skewnessAngle: The skewness angle of grid cells. +// roeEntropyFixMethod: Entropy fix (correction) method. +// 1 -- direct fix, which limits the minimum eigenvalue directly. +// 2 -- multi-dimensional fix, which is derived from structured solver and now is only valid for struct solver. +// 3 -- Harten type, which is default used. +// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. +// It is used to scale the default Roe entropy fix coefficients. +// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0. + +//int viscousType = 0; +//string viscousName = "Euler"; + +//int viscousType = 1; +//string viscousName = "laminar"; + +int viscousType = 3; +string viscousName = "1eq-sa"; + +//int viscousType = 4; +//string viscousName = "2eq-kw-menter-sst"; + +int DESType = 0; + +string uns_scheme_name = "roe"; +string uns_limiter_name = "vencat"; +string uns_vis_name = "test"; +string gradientName = "ggnode"; + +int ivencat = 7; +double venkatCoeff = 5.0; +int reconmeth = 1; +int limitVariables = 0; +int limitVector = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 1.0; + +double AusmpwPlusLimiter = 1.0; + +#************************************************************************ +# Temporal Discretisation * +#************************************************************************ +// iunsteady: Steady or unsteady. +// 0 -- steady. +// 1 -- unsteay. +// physicalTimeStep: The nondimensional physical time step. +// ifStartFromSteadyResults: The unsteady simulation is start from steady flowfield or not, 0 is for no and else is for yes. +// ifStaticsFlowField: Statistical variables for unsteady simulation. +// ifStaticsReynoldsStress: Statistical Reynolds stress for unsteady simulation. +// startStatisticStep: Outer step when start statistics. +// when the value is larger than "maxSimuStep", it is useless. +// statisticalTimePeriod: Used as time period of statistic analysis. +// when the value is negative, time period is treated as infinite. +// statisticMethod: Statistic reynolds stress method. +// 0 -- tau = - ^2 +// 1 -- tau = +// min_sub_iter: The min sub iteration of unsteady simulation. +// max_sub_iter: The max sub iteration of unsteady simulation. +// tol_sub_iter: The tolerance of sub iteration of unsteady simulation. +// tscheme: Temporal Discretisation method. +// 1 -- Runge-Kutta Multi-State. +// 2 -- Point implicit. +// 3 -- Full implicit. +// 4 -- LU-SGS. +// 5 -- Block LU-SGS. +// 6 -- Jacobian iteration. +// 7 -- Line LU-SGS. +// 8 -- Matrix LU-SGS. +// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. +// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. +// CFLStart: Started cfl number. +// CFLEnd: End cfl number. +// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. +// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) +// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. +// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. +// LUSGSTolerance: Sub iter tolerance of LU-SGS or Block LU-SGS. +// ifLocalTimeStep: Time step method. +// 0 --Local. +// 1 --Global. +// isUseLocalCFL: use variable number of CFL or not. +// 0 -- global unified CFL number. +// 1 -- local CFL number. +// isUsePreTwall: use the previous temperatures on wall. 1 indicates yes, and 0 indicates no. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// codeOfAleModel: Arbitrary Lagrangian-Eulerian method. +// 0 -- no ALE method. +// 1 -- ALE method for non-moving grids. +// 2 -- ALE method for moving grids. +// 3 -- ALE method for deforming grids. +// wallFunctionType: The type of wall function to implement. +// 0 -- no wall function. (default) +// 1 -- standard wall function. +// 2 -- Pab3D wall function. +// RKStage: The number of Runge-Kutta step. +// lamda: Cofficient of Runge-Kutta step. +int iunsteady = 0; +double physicalTimeStep = 0.01; +double physicalTimeStepDimensional = -0.001; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int ifStaticsReynoldsStress = 0; +int startStatisticStep = 800000; +double statisticalTimePeriod = -1.0; +int statisticMethod = 0; +int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2. + +int methodOfDualTime = 3; +int min_sub_iter = 50; +int max_sub_iter = 50; +double tol_sub_iter = 0.01; + +int tscheme = 4; +int iSimplifyViscousTerm = 1; +int ifLocalTimeStep = 0; +int isUseLocalCFL = 0; +int isUsePreTwall = 0; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; + +double pMaxForCFL = 0.2; +double pMinForCFL = 0.1; +double deltaMaxForCFL = 0.2; +double magnifyFactorForCFL = 1.1; +double reduceFactorForCFL = 0.5; + +double ktmax = 1.0e10; + +int swapDq = 1; + +int nLUSGSSweeps = 1; +double LUSGSTolerance = 0.01; +int order = 2; + +double visl_min = 0.01; +double turbCFLScale = 1.0; +double csrv = 1.0; +double timemax = 1.0e10; +double dtsave = -1.0; +int maxale = 10; +double dtau = 0.001; + +int wallFunctionType = 0; + +int RKStage = 2; +double lamda[] = [0.5, 1.0]; + +//int RKStage = 1; +//double lamda[] = 1.0; + +//int RKStage = 4; +//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; +#************************************************************************ +# File In or Out * +#************************************************************************ +// numberOfGridGroups: The number of grid groups. +// gridfile: The partitioned Grid file path, using relative path, +// which is relative to the working directory. +// IMPORTANT WARNING: The file index should be ignored, +// e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts, +// please use 'rae2822_hybrid2d__4.fts' here! +// plotFieldType: If dump out the field results to visulization. +// walldistMethod: The method to compute wall distance. +// 0 -- accurate but not fast enough. +// 1 -- fast but not accurate enough. +// 2 -- super fast but more non-accurate! +// resSaveFile: The file path to save the residual convergence process, write data for every default (intervalStepRes) steps. +// turbresfile: The file path to save the residual convergence process of turbulence, write data for every default (intervalStepRes) steps. +// aircoeffile: The file path to save the aerodynamic force coefficients convergence process, write data for every default (intervalStepForce) steps. +// restartNSFile: The file path to write restart flowfield variables, write data for every default (intervalStepFlow) steps. +// turbfile: The file path to write restart flowfield variables of turbulence , write data for every default(intervalStepFlow) steps. +// visualfile: The visualization file path of flowfield, write data for every default (intervalStepPlot) steps. +// wall_aircoefile: The file path to save flowfield variables of wall, write data for every default steps. +// nDumpSurfaceInfo = 0 the "wall_varfile" write the informations including heat flux. +// nDumpSurfaceInfo = 1 the "wall_varfile" write the informations without heat flux. +// nIsComputeWallDist: Whether to compute the wall distance. +// 0 -- Compute wall distance. +// 1 -- Not compute. +// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. +// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; +string wallTemperaturefile = ""; + +int nIsComputeWallDist = 0; +int walldistMethod = 1; +int cellMethodOrNodeMethod = 0; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string transitionResFile = "results/transitionRes.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "results/flow.dat"; +string turbfile = "results/turb.dat"; +string transitionFile = "results/transition.dat"; + +string visualfile = "results/tecflow.plt"; +string wall_aircoefile = "results/wall_aircoef.dat"; +string samplefile = "results/sample.dat"; + +string protectionFile0 = "results/flow0.dat"; +string protectionFile1 = "results/flow1.dat"; +string wall_heatfluxfile = "results/wall_heatflux.dat"; + +string protectionTurbFile0 = "results/turb0.dat"; +string protectionTurbFile1 = "results/turb1.dat"; + +string protectionTransitionFile0 = "results/transition0.dat"; +string protectionTransitionFile1 = "results/transition1.dat"; + +int nDumpSurfaceInfo = 0; +string wall_varfile = ""; + +string sixDofFileName = "results/sixDofInfo.dat"; +string derivativeFileName = "results/identify.dat"; +string hysteresisFileName = "results/force_beta.plt"; + +int plotFieldType = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. +// 2 -- Ensight binary. +// 3 -- Ensight ASCII. +int visualfileType = 1; + +// samplefileMode: The dump mode of sample file. +// 0 -- dump out every probe/line/surface data for all step intervals. +// 1 -- dump out all probe/line/surface data for every step intervals. +int samplefileMode = 0; + +// visualSlice: The slice of tecflow. +// 0 -- Do not save slice data. +// 1 -- comput and save it to sliceFile. +// sliceAxis: Normal vector of slice. +// 1 -- X_DIR. +// 2 -- Y_DIR. +// 3 -- Z_DIR. +// slicePostion: Coordinate of slice. + +int visualSlice = 0; +int sliceAxis = 1; +double slicePostion = -0.5; +string sliceFile = "results/Slice.plt"; +int dumpWallFaceCenter = 0; + +// min-max box of the visual block. +double lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [1.0 1.0 1.0]; + +//-----------the optional parameters list for the flow field output---------------- +// nVisualVariables: Number of variables want to be dumped for tecplot visualization. +// visualVariables : Variable types dumped, listed as following: +// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6), +// -- viscosityLaminar(7), viscosityTurbulent(8), +// -- vorticity_x(9), vorticity_y(10), vorticity_z(11), vorticityMagnitude(12), +// -- strain_rate(13), Q_criteria(14), Cp(15), timeStep(16), volume(17), +// -- modeledTKE(18), modeleddissipationrate(19), SSTF1(20), SSTF2(21), +// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), +// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), +// -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52), +// -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58), +// -- overlap iblank(iblank, 81), +// -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62). +// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! +// Variables order must from small to big. +//-----------the optional parameters list for the wall boundary condition---------------- +// nVisualWallVariables: The number of visual variables on wall. +// visualWallVariables : dumped variable types, listed as following: +// -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4), +// -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8), +// -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11), +// -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15), +// -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19), +// -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24). +int nVisualVariables = 8; +int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; + +int nVisualWallVariables = 9; +int visualWallVariables[] = [0, 1, 2, 3, 4, 5, 9, 10, 11]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +// ifSetDataMonitor: Whether to set the data monitor. +// 0 -- No. +// 1 -- Yes. +// dataMonitorType: The type of data Monitor. +// 0 -- Probes data monitor. +// 1 -- Lines data monitor. +// 2 -- Surfaces data monitor. +// probesDefineFile: Probes location information file. +// nLines: The number of lines need to be monitored. +// linesDefineFile: Lines location information file. +// nSurfaces: The number of surfaces need to be monitored. +// surfacesDefineFile: Surfaces location information file. +// searchCellsMethod: method to search the cell of each probe. +// 0 -- Nearest cell to the probe. +// 1 -- Real cell where the probe is located. +// nProbeVariables: Number of variables want to be dumped for probes monitered. +// probeVariables : Variable types dumped, listed as following: +// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6), +// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9), +// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12). +// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! +// probeVariables order must from small to big. +// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. +// 0 -- Take the value of probe's cell as probe real value. +// 1 -- Interpolation from probe's and neighbouring cell to probe. +// 2 -- Interpolation from probe's cell nodes to probe. +int ifSetDataMonitor = 0; + +int dataMonitorType = 0; +string probesDefineFile = "bin/probes_XYZ.dat"; + +//int dataMonitorType = 1; +//int nLines = 1; +//string linesDefineFile = "bin/lines_XYZ.dat"; + +//int dataMonitorType = 2; +//int nSurfaces = 4; +//string surfacesDefineFile = "bin/surfaces_XYZ.dat"; + +int searchCellsMethod = 0; + +int nProbeVariables = 14; +int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]; +int probeVariablesInterpolationMethod = 0; + +#************************************************************************ +# Turbulence Parameter * +#************************************************************************ +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. +// transitionType: transition model type +// 0 -- none. +// 2 -- gama-re-theta. +// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition. +// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not. +int turbInterval = 1; +int turbOrderStruct = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double freeStreamViscosity = 1.0e-3; +double muoo = 3.0; +double kwoo = 5.0; +int transitionType = 0; +double turbIntensity = -1.0; +int freeturbIntensitySRModify = 0; +double freeDecayXLocation = 0.0; +int compressibleCorrection = 0; +int transitionMaFix = 1; + +// maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +int monitor_vistmax = 0; + +#************************************************************************ +# LES Parameter * +#************************************************************************ +// iLES: Create LESSolver or not. +// = 1 -- Create LESSolver; +// != 1 -- not. +// amplitudeofDisturb: Amplitude of adding disturb. +// disturbstep: Unsteady time step or steady iteration of adding random disturb. +// iterdisturb: Add random disturb in every sub-iter or only first sub-iter. +// = 0 -- in only first sub-iter; +// != 0 -- in every sub-iter. +// ipraddisturb: Add density and pressure disturb or not. +// ibodyforce: Add body force in source flux of NS equations or not. +// = 0 -- not; +// != 0 -- Add body force. +// bodyforce: Body force in source flux of NS equations or not. +// utau: friction velocity, using in DNSDisturb. +// sgsmodel: subgrid scale model. +// = "smagorinsky"; +// = "dsmCom"; +// = "wale"; +// = "sigma". +// deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak); +// = 2 -- pow(deltai * deltaj *deltak, 1/3); +// = 3 -- Devloped by Scotti. +// wallDampingFunctionType: = 0 -- no wall function; +// = 1 -- van Driest; +// = 2 -- developed by Dr. Deng Xiaobing; +// = 3 -- developed by Piomelli. +// turbViscousCutType: turbulent viscosity cut type. +// = 0 -- mu_total = mut + mul; +// = 1 -- mu_total = max(mut-mul, 0) + mul; +// = 2 -- mu_total = max(mut , 0) + mul. +// smagConstant: constant of smagorinsky model. +// waleConstant: constant of wale model. +// filterDirection [3]: filter variables in i, j, k direction or not. +// averageDirection[3]: average variables in i, j, k direction or not. +// isotropicConstant: constant of isotropic part of SGS stress. +int iLES = 0; +string sgsmodel = "smagorinsky"; +int deltaFunctionType = 2; +int wallDampingFunctionType = 1; +int turbViscousCutType = 2; +double smagConstant = 0.1; +double isotropicConstant = 0.0; +double waleConstant = 0.6; +double sigmaConstant = 1.35; +int filterDirection[] = [1, 1, 0]; +int averageDirection[] = [0, 0, 0]; +double testFilterScale = 2.0; +int averageWidth = 1; +int monitorNegativeConstant = 0; + +#************************************************************************ +# Other Parameters for Hypersonic Non-equilibrium Gas * +#************************************************************************ +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- gas model is fixed in the codes. +// 1 -- gas model is imported from library files. +// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, +// isAdaptiveSolver > 0 indicates the HyFlow self-adaptive solver. +// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps. +// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual. +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nGasModel: The type of gas. less than and equal to 1 represents the mixture gas. +// Otherwise, the pure gas with one component is used for perfect gas. +// 0 -- Earth gas. +// 1 -- Mars gas. +// 2 -- Argon. +// 3 -- Nitrogen. +// nEnergyRecycle: The type of EnergyModel Recycle. +// 0 -- not used. +// 1 -- used. +// nDensityModify: The type of densitymodify. +// 0 -- not used. +// 1 -- used. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. +// 0 -- perfect gas. +// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. +// nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. +// The value equals to or is greater than 1, and 3 is for default value. +// nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. +// The value equals to or is greater than 1, and 3 is for default value. +// nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. +// The value equals to or is greater than 1, and 3 is for default value. +// nSlipBCModel: The computational model of slip boundary conditions. +// 0 -- no slip. +// 1 -- the conventional Maxwell slip conditions. +// 2 -- the Gokcen slip conditions. +// 3 -- the Knudsen-layer correction of the standard slip conditions proposed by Lockerby, et al. +// 4 -- the Kogan simplified slip conditions. +// nMeanFreePathType: the method to the mean free-path for the slip conditions. For the mixture, 0 is suggested. +// 0 -- the equivalent mean free-path is calculated by the simple hard sphere model(HS). +// 1 -- calculated by the definition that includes the variables of the number density and the molecule diameter. +// 2 -- the equivalent mean free-path is calculated by the variable hard sphere model(VHS). +// nchemsrc: +// 0 -- the source terms are not computed. +// 1 -- the source terms are computed. +// nchemrad: +// 0 -- compute the spectrum radius without considering chemical reaction flow. +// 1 -- compute the spectrum radius that need to count the contribution from chemical reaction flow. +// ntmodel: The thermodynamic temperature model. +// 1 -- One-temperature model. +// 2 -- Two-temperature model. +// 3 -- Three-temperature model. +// isUseNoneqCond: +// 0 -- compute the source terms without any conditions. +// 1 -- compute the source terms using the non-equilibrium condition. +// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value. +// nIdealState: whether take all gas species as ideal gas for gas-mixture process. +// 0 -- No. +// 1 -- Yes. +// nTEnergyModel: the method to computing temperature energy model. +// 0 -- the energy term is computed using the conventional method. +// 1 -- the energy term is computed using the polynomial fitting method. +// 2 -- the energy term is computed using the piecewise polynomial fitting method. +// parkVDPower: the power of translational-rotational temperature in the Park V-D(vibration-dissociation) coupling model. +// The value is in range of [0.0, 1.0], DPLR suggests 0.5, LAURA suggests 0.7, while 0.6 is given as default value. +// catalyticCoef: +// 0.0 -- full non-catalytic wall boundary condition. +// 1.0 -- full catalytic wall boundary condition. +// in range of (0.0, 1.0) -- partial catalytic condition, the value indicates the catalytic coefficient. +// nIsSuperCatalytic: the super catalytic condition for the fully catalytic wall, and assigned with the value of 1. +// 0 -- equilibrium condition for the fully catalytic wall where the mass fractions are assigned with the values of the free stream. +// 1 -- super catalytic condition for the fully catalytic wall where all the atomic components combine into molecular components. +// nTemperatureJump: the method to calculate the temperature jump. +// 0 -- calculated by the variables of heat conductivity and constant volume specific heat for each energy mode. +// 1 -- the general method where the iteration is calculated with the translation-rotation temperature. +// nSurfGradMethod: the method to compute the surface heating ratio. +// 0 -- the gradient of variable is computed with the first-order difference method. +// 1 -- the gradient of variable is computed with the Green-Guass integral method. +// nRapidFlowfield: initialize the flowfield using the rapid engineering method when it is greater than zero. +// nSurfHeatMonitor: To exam the surface heating change or not. 0 is no, 1 is yes. +// nInitPressureStep: the steps to initialize the boundary variables when the rapid method is used. 100 is the default value. +// nDumpCFLNumber: 1 indicates dumping the CFL number to file, 0 denotes no dumping. +// sigmaVelocity: the coordination coefficient of tangential momentum for computation of slip velocity. The value is in range of (0.0, 2.0]. +// sigmaTemperature: the heat coordination coefficient for computation of slip temperature. The value is in range of (0.0, 2.0]. +// sigmaMassFraction: the species coordination coefficient for computation of slip mass fractions. The value is in range of (0.0, 2.0]. +// velocitySlipCorrectConstant: the correction constant to the velocity slip condition. For the diffuse reflection, 1.0 is used. +// 1.0 -- proposed by Maxwell. +// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. +// 1.146 -- proposed for an additional "fictitious" velocity slip. +// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. +// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. +// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. +// nIsChemicalFreeze: the flag to freeze the chemical reactions. +// 0 -- not freeze, the chemical reaction sources will be calculated. +// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated. +// veTemperatureMin: The minimum of Tv and Te. +// maxViscous: the maximum of Viscous. +// trTemperatureMin: the minimum value of trTemperature. +// veTemperatureMin: the minimum value of veTemperature. +// densityMin: the minimum value of density. +// tAdjustmentFactor: magnification of temperature, this value is in range of (1.0, 10.0]. +// nDebug: cout the Wrong place and abort +// 0 -- not used. +// 1 -- used. +// nSpeciesLimit: limitter of gas species +// 0 -- not used. +// 1 -- used. +// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction. +// 0 -- method 0. +// 1 -- method 1. +// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid. +// 0 -- not used. +// 1 -- used. +// nViscosityPeModified: Pe Modified for ViscosityCoef. +// 0 -- not used. +// 1 -- used. +// nChemcalSourceModified: Modified on ChemcalSource. +// 0 -- not used. +// 1 -- used. +// nChemcalSourceEsMethod: Modified on ChemcalSource. +// 0 -- approximation algorithm 1 (Ori). +// 1 -- approximation algorithm 2 (New). +// nMaxStepTemperature: the iterative steps of temperature. +// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs. +// 0 -- not used. +// 1 -- used. +// nDiagonalModified: Modified on Diagonal. +// 0 -- not used. +// 1 -- new. +// nDiagonalModifiedTurb: Modified on Diagonal for turbulence. +// 0 -- not used. +// 1 -- new. +// nGradPrimtiveMethod: +// 0 -- Ori. +// 1 -- new. +// nAblation: +// 0 -- The wall ablation is not computed. +// 1 -- The wall ablation is computed. +// isInjection: +// 0 -- The injection velocity of ablation wall is not computed. +// 1 -- The injection velocity of ablation wall is computed. +// nViscosityModel: +// 0 -- Blottner fitting method(N89). +// 1 -- Gupta fitting method(N90). +// nContinueModel: The new continue model can switch different computation model. +// 0 -- Not use the new continue model. +// 1 -- use the new continue model. +// nSutherland: +// 0 -- stands for selecting the Blotter curve fits mode. +// 1 -- stands for Sutherland relation. +// gasfile: Indicates the gas model, 9 models are provided, namely "Gu5", "Gu7", "Gu11", "Pa5", "Pa7", "Pa11", "DK5", "DK7", "DK11". +// "Gu" -- indicates the Gupta Model, three-Type Models are embeded in the library, namely, the 5-species-6-reactions, the 7-species-9-reactions, the 11-species-20-reactions. +// "Pa" -- indicates the Park Model, three-Type Models are embeded in the library, namely, the 5-species-17-reactions, the 7-species-22-reactions, the 11-species-48-reactions. +// "DK" -- indicates the Dunn-Kang Model, three-Type Models are embeded in the library, namely, the 5-species-11-reactions, the 7-species-15-reactions, the 11-species-26-reactions. +// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. +// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. +// "Gas-Mixture" -- indicates the process of mixing gas without reacting. +// for struct solver mixing two species "SpeciesA, SpeciesB". +// for unstruct solver mixing multi-species "O2 NO CO CO2 H2 N2 Air CH4". +// For self-definition model, the gasfile is used to indicate the file path of the new gas model. +// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. +// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. +// ifStartFromPerfectGasResults: The chemical reaction simulation is start from perfect gas flowfield or not, 0 is for no and else is for yes. +// nIterFirstStep : the maximum number of iteration in the first step for the self-adaptive calculation. +// nIterSecondStep: the maximum number of iteration in the second step for the self-adaptive calculation. +// nIterThirdStep : the maximum number of iteration in the third step for the self-adaptive calculation. +// nEnergyAssembly: the vibration energy is computed with combined method which includes the fitting method and the molecular kinetic theory. +// 0 -- no, +// 1 -- yes. +// nControlVariable: the variable to computing the residual error that determines the convergence is meet or not in the one-temperature model. +// 0 -- the density. +// 1 -- the translation temperature. +// 2 -- the vibration temperature. +// 3 -- the electron temperature. +// 4 -- the pressure. +// 5 -- the mass fraction of oxygen. +// 6 -- the mass fraction of nitrogen. +// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. +// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. +// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. +// useHyflowSetting: Setting for HyFLOW GUI. +// 0 -- PHengLEI. +// 1 -- HyFLOW. +// nProtectData: Use the continuation file data protection mechanism. +// 0 -- no. +// 1 -- yes. +// nTvChange: Judge whether the Tv equals Ttr. +// 0 -- yes. +// 1 -- no. +// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions. +// nFraction: the initial fractions type of species. +// 0 -- mass fraction. +// 1 -- mole fraction. +int dg_high_order = 0; +int iapplication = 0; +int isAdaptiveSolver = 0; +int nm = 5; +int nEquilibriumGas = 0; +int nPCWCycleStep = 3; +int nRETCycleStep = 3; +int nSLIPCycleStep = 3; +int nIterFirstStep = 1000; +int nIterSecondStep= 2000; +int nIterThirdStep = 2000; +int nEnergyAssembly = 0; +int nControlVariable = 1; +double firstStepError = 0.01; +double secondStepError = 0.001; +double thirdStepError = 0.001; +double predictCFLError = 0.1; + +double refGama = 1.4; +double prl = 0.72; +double prt = 0.90; +double sc_l = 0.5; +double sc_t = 0.5; + +int nGasModel = 0; +int nchem = 0; +int nchemsrc = 1; +int nchemrad = 1; +int ntmodel = 1; + +int nIdealState = 0; +int nEnergyRecycle = 1; +int nSlipBCModel = 0; +int nDensityModify = 1; +int nTEnergyModel = 0; +int nMeanFreePathType = 0; +int nIsChemicalFreeze = 0; +int nIsSuperCatalytic = 1; +int nTemperatureJump = 0; +int nSurfGradMethod = 0; +int nRapidFlowfield = 0; +int nSurfHeatMonitor = 0; +int nInitPressureStep = 100; +int nDumpCFLNumber = 0; + +double parkVDPower = 0.6; +double catalyticCoef = 0.0; +double sigmaVelocity = 1.0; +double sigmaTemperature = 1.0; +double sigmaMassFraction = 1.0; +double velocitySlipCorrectConstant = 1.0; + +double chemicalRelaxCorf = 1.0; +double chemicalSpectrumRadiusCoef = 1.0; +double viscousSpectrumRadiusCoef = 1.5; +double inviscidSpectrumRadiusCoef = 1.5; +double spectrumRadiusCoef = 0.5; +double staticPressureRelaxCorf = 0.2; + +double maxViscous = 10000.0; +double trTemperatureMin = 10.0; +double veTemperatureMin = 30.0; +double maxTemperature = 50000.0; +double densityMin = 1.0e-8; +double densityMinFactor = 0.1; +double tAdjustmentFactor = 10.0; +double iniSpeedCoef = 1.0; +int iniSpeedMode = 0; + +int nDebug = 0; +int nSpeciesLimit = 1; +int nTurblenceForChemical = 0; +int nViscosityFluxSublevelModified = 1; +int nViscosityPeModified = 0; +int nChemcalSourceModified = 2; +int nChemcalSourceEsMethod = 1; +int nMaxStepTemperature = 5; +int veTemperatureMinModified = 1; +int nDiagonalModified = 0; +int nDiagonalModifiedTurb = 0; +int nGradPrimtiveMethod = 1; +int nInviscidFluxModify = 1; +int nQlLimitMethod = 2; +int nSpeciesForWallMethod = 1; +int nDensityForWallMethod = 0; +int wallMultiTemperature = 0; + +int nProtectData = 0; +int useHyflowSetting = 0; +int nAblation = 0; +int isInjection = 0; +int nViscosityModel = 0; +int nMarsModel = 0; +int nTvChange = 0; +int isMoleFractionType = 0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.767"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.767, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767, 0.0"; + +//string gasfile = "Mars-Pa8"; +//string speciesName = "O, O2, NO, N, N2, C, CO, CO2"; +//string initMassFraction = "0.0015, 0.0429, 0.0, 0.0, 0.0, 0.0, 0.0777, 0.8779"; + +//string gasfile = "Pa"; +//string speciesName = "O, O2, NO, N, NO+, C, C2, CO, CO2, CN, N2, e-"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767, 0.0"; + +//string gasfile = "Combustion-12"; +//string speciesName = "O, O2, NO, N, C, CO, CO2, H, H2, OH, H2O, N2"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767"; + +//string gasfile = "Gas-Mixture"; +//string speciesName = "SpeciesA, SpeciesB"; +//string initMassFraction = "1.0, 0.0"; +int nSutherland = 0; +double gamaSpeciesA = 1.4; +double gamaSpeciesB = 1.3; +double molecularWeightSpeciesA = 29.0; +double molecularWeightSpeciesB = 30.0; + +//string gasfile = "Gas-Mixture"; +//string speciesName = "O2, N2"; +//string initMassFraction = "1.0, 0.0"; + +int nFraction = 0; +int nContinueModel = 0; +int nChemicalFlowStep = 0; +int ifStartFromPerfectGasResults = 0; +int isUseNoneqCond = 0; +double frozenCondition = 0.01; + +int nLeakageMonitor = 0; +double totalLeakageVolume = 1000.0; +double monitorThresholdValue = 0.05; +double sprayFactor = 0.0; + +######################################################################### +// Multi-Grid parameters. +// nMGLevel: The number of level of Multi-Grid. +// <= 1 -- Single-level. +// > 1 -- multi-level. +// MGPreIteration: For each grid, the number of pre-smoothing steps. +// n_post: For each grid, the number of post-smoothing steps. +// MGCoarsestIteration: For the coarest grid the number of smoothing steps. +// MGFasType: V-multi cycle or W-multi cycle. +// 1 -- V-multi cycle. +// 2 -- W-multi cycle. +// flowInitStep: Flow initialization step, 0 - 500 is suggested. +// Multi-Grid : Number of steps computing on coarse grid, during flow initialization. +// Single-Grid: Number of steps computing using first-order with vanleer, during flow initialization. +// mgCFLScale: CFL number enlarge times for coarse grid. +// mprol: Multi-grid interpolation method, interpolation from coarse cell to fine grid. +// 1 -- zero order. +// 2 -- first-order. (default) +// mgCorrectionLimit: Multi-grid correction limit. +int nMGLevel = 1; +int MGCoarsestIteration = 1; +int MGPreIteration = 1; +int MGFasType = 1; +int n_post = 0; +int flowInitStep = 100; +int mprol = 2; +double mgCFLScale = 1.0; +double mgCorrectionLimit = 0.01; + +//--------------- Some parameter for turbulent model -------------------- +// neasm: The variation of kw turbulent model. +// ismooth_turb: Residual smooth for turb or not. +// SSTProductType: The type of product term based on vorticity for SST. +// SAProductType: The type of product term based on vorticity for SA. +int neasm = -3; +int SSTProductType = 0; +int ismooth_turb = 0; +int SAProductType = 2; + +// ----------------- Overset Grid parameter ----------------------------- +int codeOfDigHoles = 1; +int codeOfTurbulentModel = 0; +string masterFileName = "./grid/searchFile.inp"; +string holeBasicFileName = "./grid/holeBasicFile.inp"; +string holeFullFileName = "./grid/holeFullFile.dat"; +string linkFileName = "./grid/topology.dat"; +string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; + +#************************************************************************ +# High Order Struct Solver * +#************************************************************************ +// isFVMOrFDM: +// 0 -- NSSolverStruct using Finite Volume Method. +// 1 -- NSSolverStruct using Finite Differ Method. +// SolverStructOrder: Spatial discretisation order of NS equations with struct grid. +// <= 2 -- finite volume method. +// >= 3 -- finite difference order. (to be completed) +// 0 -- default. +// str_highorder_interpolation_epsilon: Epsilon in weighted interpolation, bigger epsilon, better convergence, +// smaller epsilon, robuster for shock-detecting. +// str_highorder_interpolation_type: +// -- "classical", "test". +// str_highorder_flux_name: +// -- "roe", "steger". +// structhighordergradient: +// -- "conservation", "chain_rule". +int isFVMOrFDM = 0; +string str_highorder_solver = "WCNS"; +int SolverStructOrder = 0; +double str_highorder_interpolation_epsilon = 1.0e-6; +string str_highorder_interpolation_type = "test"; +string str_highorder_flux_name = "steger"; +string structhighordergradient = "conservation"; +double coefofstrflux = 0.5; +double limitcoefofinterface = 0.0; + +// ----------------- Advanced choices ----------------------------------- +// outtimesc: Time stepping scheme for the outer loop. +// MUSCLCoefXk: The parameter of MUSCL interpolations, belongs to [-1, 1]. +// -1 -- seconde-order fully-upwind differencing. +// 0 -- seconde-order upwind-biased differencing. +// 0.333333 -- third-order upwind-biased differencing. +// 1 -- seconde-order central differencing. +// MUSCLCoefXb: The limiter parameter. +// 0 -- the effect of the limiter is cancelled, means the first-order interpolations. +// allReduceStep: Iteration intervals for MPI AllReduce operation, default is 1. +string outtimesc = "impbd2"; +double MUSCLCoefXk = -1; +double MUSCLCoefXb = 1.0; +int allReduceStep = 1; + +// ----------------- overlap configuration ------------------------------ +// codeOfOversetGrid: Overlapping(overset) grid or not. +// 0 -- NON-overlapping grid. +// 1 -- Overlapping grid. +// oversetInterpolationMethod: the method of overset interpolation while field simulation. +// 0 -- set the acceptor cell value by donor cell value. +// 1 -- set the acceptor cell value by distance weight of donor cell value. +// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated. +// 0 -- no. +// 1 -- yes. +// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in +// the current overset grid(only for three dimension). +// 0 -- no. +// 1 -- yes. +// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid. +// 0 -- no. +// 1 -- yes. +// walldistMainZone: The initial value of background grid which does not exist wall boundary condition. +// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell. +// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region. +// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary. +// 0 -- one layer. +// 1 -- two layers. +// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region. +// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure. +// 0 -- no. +// 1 -- yes. +int codeOfOversetGrid = 0; +int oversetInterpolationMethod = 0; +int readOversetFileOrNot = 0; +int symetryOrNot = 0; +int readInAuxiliaryInnerGrid = 0; +int readInAuxiliaryOuterGrid = 0; +int readInSklFileOrNot = 0; +string auxiliaryInnerGrid0 = "./grid/aux-upper.fts"; +string auxiliaryInnerGrid1 = "./grid/aux-lower.fts"; +string auxiliaryInnerGrid2 = ""; +string oversetGridFileName = "./grid/iblank.ovs"; +double walldistMainZone = 1.0 +double toleranceForOversetSearch = 1.0e-3; +double toleranceForOversetBox = 1.0e-3; +int twoOrderInterpolationOrNot = 0; +int keyEnlargeOfActiveNodes = 0; +int outTecplotOverset = 0; +int outPutOversetVisualization = 0; +int numberOfMovingBodies = 2; + +// ----------------- ALE configuration ------------------------------ +int codeOfAleModel = 0; +int aleStartStrategy = -1; + +double referenceLength = 1.0; +double referenceVelocity = 1.0; +double referenceDensity = 1.0; + +int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd. +int strategyForGCLSource = 0; // 0-present; 1-Ahn. + +// 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton. +int methodForKineticEquation = 0; +double relaxParameterOfKinetic = 1.0; + +#************************************************************************ +# motive information * +#************************************************************************ +int numberOfMovingBodies = 1; + +############################## body0 ############################## +// mass of parts. +double mass_0 = 1.0; +// gravity of parts (along negative direction in Y-axis, eg. 9.8). +double gravity_0 = 0.0; +// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz. +double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; +// initial six DOF position information of parts. xc yc zc. +double massCenter_0[] = 0.0, 0.0, 0.0; +// if reset mass center while restart. +int resetMassCenter_0 = 0; +// position offset of parts. dx dy dz. +double massCenterDxyz_0[] = 0.0, 0.0, 0.0; +// initial six DOF position information of parts. angleX angleY angleZ. +double attitudeAngle_0[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. vc vy vz. +double massCenterVelocity_0[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. omigX omigY omigZ. +double angularVelocity_0[] = 0.0, 0.0, 0.0; +// the object that the parts belong to. +int fartherIndex_0 = -1; +// the assembly position of the parts. xc yc zc angleX angleY angleZ. +double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; +// the move pattern of the parts. +// -1 given motion partten. +// 0 still. +// 1 six DOF motion. +// 2 three DOF motion. +// 11 X-axis forced motion. +// 12 Y-axis forced motion. +// 13 Z-axis forced motion. +// 14 forced pitch motion. +// 15 forced yaw motion. +// 16 forced roll motion. +int RBDMethod_0 = 0; +double amplitude_0 = 0.0; +double reduceFrequency_0 = 0.0; +// direction of rotation. +// 1 -- clockwise from the point of view along the positive x axis. +// -1 -- anticlockwise from the point of view along the positive x axis. +int direction_0 = -1; +double rotateFrequency_0 = 0.0; +//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; +// dimensional physical time for additional force(s). +double addedForceTime_0[] = 0.0; +// additional force(inertia system) fX fY fZ. +double addedForce_0[] = 0.0, 0.0, 0.0; +// additional moment(inertia system) mX mY mZ. +double addedMoment_0[] = 0.0, 0.0, 0.0; +// the deformation method of the parts. +int morphing_0 = 0; + +// post indentify. +int integralOrder = 4; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 6.5e6; +//@double refDimensionalTemperature = 288.15; +//@double freestream_vibration_temperature = 300.00; +//@double refDimensionalPressure = 0; +//@double height = 0; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; +//@double refDimensionalVelocity = 0; +//@double refDimensionalDensity = 0; +//@string weatherDataFilePath = "./WRFData/"; +//@double longitude = 110.95 +//@double latitude = 19.61; +#************************************************************************ +# Old Parameter * +#************************************************************************ +int isPlotVolumeField = 0; + +#************************************************************************ +# partial flow field setting Parameter * +#************************************************************************ +//int nPartialParameter = 0; // 0/1/2 +//int nNumberOfPartialField = 0; // +//int nStartGridIndex[] = [0]; +//int nEndGridIndex[] = [0]; + +//double partialCFL[] = [0.0]; +//double partialSpeedCoef[] = [0.0]; +//double partialSpeed[] = [0.0]; +//double partialAttackd[] = [0.0]; +//double partialSlide[] = [0.0]; +//double partialPressure[] = [0.0]; +//double partialTemperature[] = [0.0]; +//double partialMassFractions[] = [0.0]; + +#************************************************************************ +# Incompressible Parameter * +#************************************************************************ +int isSolveEnergyEquation = 0; +int isSolveTurbEquation = 0; +int isSolveSpeciesEquation = 0; \ No newline at end of file diff --git a/B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU/bin/cfd_para_subsonic.hypara b/B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU/bin/cfd_para_subsonic.hypara new file mode 100644 index 0000000..3832126 --- /dev/null +++ b/B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU/bin/cfd_para_subsonic.hypara @@ -0,0 +1,195 @@ +######################################################################### +# General Control Parameter # +######################################################################### +// maxSimuStep: The max simulation step, don't care simulation is restart or not. +// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved. +// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual 'res.dat' saved. + +int maxSimuStep = 80000; + +int intervalStepFlow = 2000; +int intervalStepPlot = 1000; +int intervalStepForce = 10; +int intervalStepRes = 10; +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) +######################################################################### +# Inflow Parameter # +######################################################################### +// refMachNumber: Mach number. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// inflowParaType: The type of inflow parameters. +// 0 -- the nondimensional conditions. +// 1 -- the flight conditions. +// 2 -- the experiment conditions. +// 3 -- the subsonic boundary conditions. +// refReNumber: Reynolds number, which is based unit length, unit of 1/m. +// refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition. +// refDimensionalPressure: Dimensional reference pressure, or the total pressure only for the experiment condition. +// height: Fly height, unit of km. +// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter.Common dimensions like: +// 1 dm = 0.1 m. +// 1 cm = 0.01 m. +// 1 mm = 0.001m. +// 1 inch = 0.0254m. +// 1 foot = 12 inches = 0.3048m. +// 1 yard = 3 feet = 0.9144m. +// forceRefenenceLength, forceRefenenceLengthSpanWise, forceRefenenceArea: Reference length, SpanWise length and area, independent of grid unit. +// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent of grid unit. + +double refMachNumber = 0.1; +double attackd = 0.0; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 20.0; +double refDimensionalTemperature = 288.15; + +//int inflowParaType = 1; +//double height = 0.001; + +double gridScaleFactor = 1.0; + +double forceReferenceLengthSpanWise = 1.0; // unit of meter. +double forceReferenceLength = 1.0; // unit of meter. +double forceReferenceArea = 1.0; // unit of meter^2. +double TorqueRefX = 0.0; // unit of meter. +double TorqueRefY = 0.0; // unit of meter. +double TorqueRefZ = 0.0; // unit of meter. + +######################################################################### +# Physical models # +######################################################################### +// iviscous: Viscous model. +// 0 -- Euler. +// 1 -- Lamilar. +// 3 -- 1eq turbulent. +// 4 -- 2eq turbulent. +// viscousName: Laminar or tubulent model. +// -- "1eq-sa", when iviscous = 3. +// -- "2eq-kw-menter-sst", when iviscous = 4. +// DESType: Type of DES. +// 0 -- RANS.(default) +// 1 -- DES. +// 2 -- DDES. +// 3 -- IDDES. + +//int viscousType = 0; +//string viscousName = "Euler"; + +int viscousType = 1; +string viscousName = "laminar"; + +//int viscousType = 3; +//string viscousName = "1eq-sa"; + +//int viscousType = 4; +//string viscousName = "2eq-kw-menter-sst"; + +int DESType = 0; + +int roeEntropyFixMethod = 6; +double roeEntropyScale = 1.0; +######################################################################### +# Spatial Discretisation # +######################################################################### +#******************************************************************* +# Struct Solver * +#******************************************************************* +// str_limiter_name: Limiter of struct grid. +// -- "3rdsmooth", "smooth". +// -- "nolim", no limiter. + +string str_limiter_name = "smooth"; + +#******************************************************************* +# UnStruct Solver * +#******************************************************************* +// uns_limiter_name: Limiter of Unstruct grid. +// -- "vencat". +// -- "1st", meaning accuracy of first-order. +// -- "nolim", no limiter. +// venkatCoeff: Coefficient of vencat limiter, when uns_limiter_name = 'vencat'. +// The smaller the value, the more robust it is. + +string uns_limiter_name = "vencat"; +double venkatCoeff = 5.0; + +######################################################################### +# Temporal Discretisation # +######################################################################### +// iunsteady: Steady or unsteady. +// 0 -- steady. +// 1 -- unsteay. +// CFLEnd: The CFL number, [0.1, 100]. +// The bigger the value, the convergence faster but lower robustness. +// nLUSGSSweeps: Number of Sub-iteration of LU-SGS. +// 0 -- is recommended for structured solver. +// 1-3 -- is recommended for unstructured solver. +int ifLowSpeedPrecon = 1; +int iunsteady = 0; + +int ifLocalTimeStep = 0; +int CFLMethod = 1; +double CFLStart = 1.0; +double CFLEnd = 30.0; +int CFLVaryStep = 200; +double turbCFLScale = 2.0; +######################################################################### +# Multi-Grid parameters # +######################################################################### +// nMGLevel: The number of Multi-Grid level. +// = 1 -- single-level. +// > 1 -- multi-level. +// flowInitStep: Flow initialization step, 0 - 500 is suggested. +// Multi-Grid : Number of steps computing on coarse grid, during flow initialization. +// Single-Grid: Number of steps computing using first-order with vanleer, during flow initialization. + +int nMGLevel = 1; +int flowInitStep = 0; + +######################################################################### +# File In or Out # +######################################################################### +// gridfile: The partitioned Grid file path, using relative path, +// which is relative to the working directory. +// IMPORTANT WARNING: The file index should be ignored, +// e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts, +// Please use 'rae2822_hybrid2d__4.fts' here! +// plotFieldType: If dump out the whole field results to tecplot or not, 0 / 1. + +string gridfile = "./grid/cylinderUnstr_steady__4.fts"; +int plotFieldType = 1; +int visualfileType = 0; +// ----------------- Advanced Parameters, DO NOT care it ---------------- +// nVisualVariables: Number of variables want to be dumped for tecplot visualization. +// visualVariables: Variable types dumped, listed as following: +// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6), +// -- viscosityLaminar(7), viscosityTurbulent(8), +// -- vorticity_x(9), vorticity_y(10), vorticity_z(11), vorticityMagnitude(12), +// -- strain_rate(13), Q_criteria(14), Cp(15), timeStep(16), volume(17), +// -- modeledTKE(18), modeleddissipationrate(19), SSTF1(20), SSTF2(21). +// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! +// Variables order must from small to big. + +int nVisualVariables = 8; +int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; + +// limitVariables: Limit model (It is useful only if limitVector is 0). +// 0 -- limit only for pressure and denstiny, then get the min value. +// 1 -- limit for every variables, then get the min value. +// limitVector: +// 0 -- Each variable use the same limiter coefficient. +// 1 -- Each variable use the respective limiter coefficients. +// reconmeth: +// 0 -- When reconstruct face value, Q+, Q- use respective limiter coefficients. +// 1 -- Q+, Q- use the min limiter coefficients of left and right cell. + +int reconmeth = 1; +int limitVariables = 0; +int limitVector = 0; + diff --git a/B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU/bin/grid_para.hypara b/B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU/bin/grid_para.hypara new file mode 100644 index 0000000..d6513fe --- /dev/null +++ b/B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU/bin/grid_para.hypara @@ -0,0 +1,39 @@ +######################################################################### +# Grid data type # +######################################################################### +// gridtype: Grid type for generation, conversion, reconstruction, merging. +// 0 -- Unstructured grid. +// 1 -- Structured grid. +// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating. +// axisRotateOrder : axis rotating order. +// 1 -- X-axis. +// 2 -- Y-axis. +// 3 -- Z-axis. +// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order. +// from_gtype: Type of grid data type in grid conversion process. +// -1 -- MULTI_TYPE +// 1 -- HyperFLOW( PHengLEI ), *.fts. +// 2 -- CGNS, *.cgns. +// 3 -- Plot3D type of structured grid, *.dat/*.grd. +// 4 -- Fieldview type of unstructured grid, *.dat/*.inp. +// 5 -- Fluent, *.cas/*.msh. +// 6 -- Ustar, mgrid.in. +// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. +// 8 -- GMSH, *.msh. +int gridtype = 0; +int nAxisRotateTimes = 0; +int axisRotateOrder[] = [1, 2, 3]; +double axisRotateAngles[] = [0.0, 0.0, 0.0]; +int from_gtype = 2; + +######################################################################### +# File path # +######################################################################### +// from_gfile: path of original data file for unstructure grid convert from. +// out_gfile: path of target file for grid convert to, *.fts type of file usually. +string from_gfile = "./grid/cylinderUnstr_steady.cgns"; +string out_gfile = "./grid/cylinderUnstr_steady.fts"; + + + + diff --git a/B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU/bin/key.hypara b/B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU/bin/key.hypara new file mode 100644 index 0000000..cac252c --- /dev/null +++ b/B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU/bin/key.hypara @@ -0,0 +1,51 @@ +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 the parameter file. +// nsimutask: simulation task type. +// 0 -- CFD Solver of NS or Turbulation. +// 1 -- Grid generation: for special typical cases, such as cylinder, flat plate, etc. +// Grid conversion: from other format to HyperFLOW format (.fts). +// Grid reconstruction: such as grid adaptation. +// Grid merging: merge two blocks into one block. +// Grid repairing: repair the original grid in order to remove the negative volume cells. +// 2 -- Wall distance computation for turb-solver. +// 3 -- Grid partition. +// 4 -- Knowledge repository / examples of PHengLEI-API. +int ndim = 2; +int nparafile = 1; + +int nsimutask = 0; +string parafilename = "./bin/cfd_para_subsonic.hypara"; +//string parafilename = "./bin/cfd_para_transonic.hypara"; +//string parafilename = "./bin/cfd_para_supersonic.hypara"; +//string parafilename = "./bin/cfd_para_hypersonic.hypara"; +//string parafilename = "./bin/cfd_para_incompressible.hypara"; + +//int nsimutask = 1; +//string parafilename = "./bin/grid_para.hypara"; + +//int nsimutask = 2; +//string parafilename = "./bin/cfd_para.hypara"; + +//int nsimutask = 3; +//string parafilename = "./bin/partition.hypara"; + +//int nsimutask = 1; +//string parafilename = "./bin/grid_deform_para.hypara"; + +//int nsimutask = 1; +//string parafilename = "./bin/grid_refine_para.hypara"; + +//int nsimutask = 14; +//string parafilename = "./bin/integrative_solver.hypara"; + +//int nsimutask = 99; +//string parafilename = "./bin/post_processing.hypara"; + +// ---------------- Advanced Parameters, DO NOT care it ---------------- +int numberOfGridProcessor = 0; +// ATP read +//string parafilename2 = "./bin/overset_config.hypara"; + diff --git a/B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU/bin/partition.hypara b/B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU/bin/partition.hypara new file mode 100644 index 0000000..127a848 --- /dev/null +++ b/B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU/bin/partition.hypara @@ -0,0 +1,23 @@ +// pgridtype: The grid type. +// 0 -- unstruct grid +// 1 -- struct grid +// maxproc: The number of partition zones that want to be divided into, +// which is equal to the number of CPU processors you want. +// Usually, 50~100 thousands structured cells per CPU-Core is suggested. +// 30~70 thousands unstructured cells per CPU-Core is suggested. +// original_grid_file : original grid file that want to be divided(HyperFLOW/PHengLEI type, *.fts). +// partition_grid_file : target partition grid file(HyperFLOW/PHengLEI type, *.fts). + +int pgridtype = 0; +int maxproc = 4; + +string original_grid_file = "./grid/cylinderUnstr_steady.fts"; +string partition_grid_file = "./grid/cylinderUnstr_steady__4.fts"; + + +// Number of multi-grid levels, ONLY used for structured grid. +// 1 -- single level, 2 -- 2 level, N -- N level, ..., et al. +int numberOfMultigrid = 1; + + + diff --git a/B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU/grid/网格地址.txt b/B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU/grid/网格地址.txt new file mode 100644 index 0000000..899f977 --- /dev/null +++ b/B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU/grid/网格地址.txt @@ -0,0 +1,5 @@ +红山开源风雷算例库原始网格获取百度网盘链接: +链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA +提取码:w47m + +注:plot3D格式网格需同时下载.grd和.inp文件 \ No newline at end of file diff --git a/B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU/bin/cfd_para.hypara b/B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU/bin/cfd_para.hypara new file mode 100644 index 0000000..8171ce5 --- /dev/null +++ b/B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU/bin/cfd_para.hypara @@ -0,0 +1,1465 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// PPPPP H H EEEEE N N GGGGG L EEEEE III + +// P P H H E NN N G L E I + +// PPPPP HHHHH EEEEE N N N G GG L EEEEE I + +// P H H E N N N G G L E I + +// P H H EEEEE N N GGGGG LLLLL EEEEE III + +//------------------------------------------------------------------------+ +// Platform for Hybrid Engineering Simulation of Flows + +// China Aerodynamics Research and Development Center + +// (C) Copyright, Since 2010 + +// PHengLEI 2312 + +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +########################################################################### +# Default parameters for Grid conversion # +########################################################################### +// gridtype: Grid type for generation, conversion, reconstruction, merging. +// 0 -- Unstructured grid. +// 1 -- Structured grid. +// 2 -- Hybrid grid, include both of unstructured and structured grid. +// gridobj: Task type of grid treatment. +// 0 -- Grid generation of typical case, such as cylinder, flat plate, etc. +// 1 -- Grid conversion, from other grid data to PHenglEI, such as Fluent, CGNS. +// 2 -- Grid refinement. +// 3 -- Grid merging, merge two blocks into one block. +// 4 -- Grid deformation, achieve unstructured grid deformation. +// 5 -- Grid repairing, repair the original grid in order to remove the negative volume cells. +// 6 -- Grid mirroring, mirror a symmetry grid to whole grid. +// 7 -- Grid type change, convert structured grid to unstructured grid. +// multiblock: Multi-block grid or not, only for structured grid conversion. +// 0 -- Not. +// 1 -- Yes. +// iadapt: Adaptation number for unstructure grid. +// SymmetryFaceVector: The vector of symmetry face. +// 0 -- X axis. +// 1 -- Y axis. +// 2 -- Z axis. +// gridReorder: Reorder cell and face of grid or not, only for 3D unstructured grid conversion, +// which is CGNS type. +// 0 -- Not. +// 1 -- Yes. +// faceReorderMethod: the reorder method face of unstructured grid. +// 0 -- BSFCELLFACEORG. +// 1 -- BSFCELLFACELEFT. +// 2 -- BSFCELLFACERIGHT. +int gridtype = 0; +int gridobj = 1; +int multiblock = 0; +int iadapt = 0; +int SymmetryFaceVector = 1; +int gridReorder = 0; +int faceReorderMethod = 0; + +// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating. +// axisRotateOrder : axis rotating order. The size of array "axisRotateOrder" is equal to nAxisRotateTimes. +// 1 -- X-axis. +// 2 -- Y-axis. +// 3 -- Z-axis. +// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order. +int nAxisRotateTimes = 0; +int axisRotateOrder[] = [1, 2, 3]; +double axisRotateAngles[] = [0.0, 0.0, 0.0]; + +// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". +// 0 -- Interface. (default) +// 1 -- Physical boundary condition, used in Hybrid solver. +int omit_no_bound_bc = 0; +int omitRepeatInterface = 1; + +//----------------------------------------------------------------------- +# Grid data type # +//----------------------------------------------------------------------- +// from_gtype/to_gtype: Type of grid data type in grid conversion process. +// -1 -- MULTI_TYPE. +// 1 -- PHengLEI, *.fts. +// 2 -- CGNS, *.cgns. +// 3 -- Plot3D type of structured grid, *.dat/*.grd. +// 4 -- Fieldview type of unstructured grid, *.dat/*.inp. +// 5 -- Fluent, *.cas/*.msh. +// 6 -- Ustar, mgrid.in. +// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. +// 8 -- GMSH, *.msh. +// 9 -- Gridgen type of structured grid, *.dat/*.grd. +// dumpOldGrid: If dump out the old grid file. +// 0 -- Not. (default) +// 1 -- Yes. +int from_gtype = 2; +int to_gtype = 1; +int dumpOldGrid = 0; + +//----------------------------------------------------------------------- +# File path # +//----------------------------------------------------------------------- +// from_gfile: path of original data file for unstructure grid convert from. +// out_gfile: path of target file for grid convert to, *.fts type of file usually. +int numberOfGridFile = 1; +string from_gfile = "./grid/rae2822_hybrid2d.cas"; +string from_gfile1 = ""; +string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; + +// ----------------- some advanced choices ------------------------------ +// iunsteady: The Grid is for unsteady simulation or not. +int iunsteady = 0; + +// fileformat: Ustar Grid file format. +// 0 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// Parameters for hybrid solver. +// mixgrid_uns: path of unstructure grid file for hybrid solver, *.fts type. +// mixgrid_str: path of structure grid file for hybrid solver, *.fts type. +string mixgrid_uns = "./grid/rae2822_uns2d_4.fts"; +string mixgrid_str = "./grid/flat_laminr_133_85_2d.fts"; + +// Some parameters for structured overlapping grid. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Grid Refine Parameters ----------------------------- +// anisoRefine: If refine grid by anisoRefine type. +// 0 -- Not. (default) +// 1 -- Yes. +// geometryUnit: Geometry unit. +// 1 -- meter. +// 2 -- millimeter. +// 3 -- inch. +// exclusiveCase: Parallel projection exclusive case. +// 0 -- NON case. +// 1 -- JSM-C2-NPOFF case. +// 2 -- CHNT. +// projectOrgPoint: If the original wall points need to be projected or not. +int anisoRefine = 0; +int geometryUnit = 1; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; +int projectOrgPoint = 0; +string geometryFileName = "./grid/jsm.igs"; + +// ----------------- Grid Deform Parameters ----------------------------- +// deformationMethod: Grid Deform. +// 1 -- SPRING. +// 2 -- RBF. +// stationalGridFile: Original grid file. +// visualFileName : The visualization file path of deform grid. +// nDeformStep : The max deform step. +// flapAngle : The max flap angle. +// rotatePostionZ : Rotate postion. +// rotatePostionY : Rotate postion. +// gridSlice : If dump slice grid. +// sliceAxis : Grid slice axis. +// slicePosition : Grid slice position. +int nDeformStep = 40; +double flapAngle = 10.0; +double rotatePostionZ = 4.00003; +double rotatePostionY = 3.05; + +int deformationMethod = 2; +string stationalGridFile = "./grid/Segment2Brid.fts"; +string visualFileName = "./results/deformedGrid.dat" + +int gridSlice = 1; +int sliceAxis = 1; +double slicePosition = 13; + +// ----------------- RBF Parameters ------------------------------------- +// numberOfReferenceCP: Number of reference Control Points. +// influencePara : The RBF influence radius parameter. +int numberOfReferenceCP = 40; +double influencePara = 25.0; + +// ----------------- Periodic Parameters -------------------------------- +// Notice: Rotational periodicity only support rotation along the X axis! +// periodicType: Which periodic boundary is used. +// 0 -- without Periodic Boundary. +// 1 -- Translational periodicity. +// 2 -- Rotational periodicity. +// translationLength[]: The relative distance between two periodic face + which only support one direction. +// rotationAngle: The relative angle between two periodic face. + which is recorded in degrees. +int periodicType = 0; +double translationLength[] = [0.0, 0.0, 0.0]; +double rotationAngle = 0.0; + +######################################################################### +# Default parameters for Partition # +######################################################################### +// pgridtype: The grid type. +// 0 -- unstruct grid. +// 1 -- struct grid. +// 2 -- refine structured grid. +// maxproc: The number of partition zones that want to be divided into. +// numberOfMultifile: The number of partition grid files that want to be dumped out. +int pgridtype = 0; +int maxproc = 4; +int numberOfMultifile = 1; + +// traceMark: Trace mark or not, only for structured grid partition. +// 0 -- Not. +// 1 -- Yes. +// blockIndexOfMark: the block index of mark, only for structured grid partition. +// cellIndexOfMark : the cell index of mark, only for structured grid partition. +int traceMark = 0; +int blockIndexOfMark = 0; +int cellIndexOfMark[] = [185, 30, 1]; + +// parallelStrategy: +// 0 -- each zone is assigned to the one that defined in grid partition procedure. +// 1 -- random assigned for each zone or by some else ways. +int parallelStrategy = 1; + +//----------------------------------------------------------------------- +# File path # +//----------------------------------------------------------------------- +// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts). +// partition_grid_file: Target partition grid file(PHengLEI type, *.fts). +string original_grid_file = "./grid/sphere_mixed.fts"; +string partition_grid_file = "./grid/sphere_mixed__4.fts"; + +// ------------------ Sompe advanced parameters ------------------------- +// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". +// 0 -- Interface. (default) +// 1 -- Physical boundary condition, used in Hybrid solver. +// npartmethod: Method of interface reconstruction, default is 1. +// parallelPartitionMethod: Method of parallel partition, this is set only when execute parallel partition. It would be skipped when serial partition. +// 1 -- Using ParMetis for homogeneous MPI. +// 2 -- Using Metis for homogeneous MPI. +// 3 -- using METIS partition for homogeneous OpenMP. +// parmetisBalance: Used to specify the imbalance tolerance. +// 1 -- perfect balance. +// maxproc -- perfect imbalance. +// 1.05 -- recommended. +int omit_no_bound_bc = 0; +int npartmethod = 1; +int parallelPartitionMethod = 2; +double parmetisBalance = 1.05; + +// 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; + +######################################################################### +# Default parameters for CFD simulation # +######################################################################### +// 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. +// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +int maxSimuStep = 20000; +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepSample = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 1; + +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) +// Kprec: The coefficient K for the cut-off velocity. +// 1.0~3.0 is suggested. (default, 3.0) +// preconFarfieldBCMethod: The precondition method for farfield boundary condition. +// 0 -- precondition far-field boundary based on riemann invariants. +// 1 -- Turkel's simplified far-field boundary condition. +int ifLowSpeedPrecon = 0; +double Kprec = 3.0; +int preconFarfieldBCMethod = 1; + +//----------------------------------------------------------------------- +# CFD Control Parameter # +//----------------------------------------------------------------------- +// refMachNumber: Mach number. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// inflowParaType: The type of inflow parameters. +// 0 -- the nondimensional conditions. +// 1 -- the flight conditions. +// 2 -- the experiment conditions. +// 3 -- the subsonic boundary conditions. (Useless!) +// 4 -- the condition that the velocity, temperature and density are given. +// 5 -- the condition that the velocity, temperature and pressure are given. +//flowInitMethod: Flow field initialization method. +// 0 -- The entire flow field is initialized according to Infinite velocity. +// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate. +// refReNumber: Reynolds number, which is based unit length, unit of 1/m. +// refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition. +// freestream_vibration_temperature: Dimensional freestream vibration temperature. +// refDimensionalPressure: Dimensional reference pressure, or the total pressure only for the experiment condition. +// height: Fly height, unit of km. +// wallTemperature: Temprature of the solid wall, minus value is for adiabatic boundary condition. +// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter. Common dimensions like: +// 1 dm = 0.1 m. +// 1 cm = 0.01 m. +// 1 mm = 0.001 m. +// 1 inch = 0.0254 m. +// 1 foot = 12 inches = 0.3048 m. +// 1 yard = 3 feet = 0.9144 m. +// forceReferenceLength, forceReferenceLengthSpanWise, forceReferenceArea: Reference length, SpanWise length and area, independent of grid unit. +// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent of grid unit. +// radiationCoef: The radiation coefficient on wall, it is used to compute the radiation heat flux on wall when the boundary +// condition is radiation equilibrium temperature, and 0.8 is the default value. +// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. +// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. +int directionMethod = 0; +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; +int flowInitMethod = 0; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 300.00; + +//int inflowParaType = 1; +//double height = 0.001; + +//int inflowParaType = 2; +//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). +//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). + +// The velocity, temperature and density are fixed. +//int inflowParaType = 4; +//double refDimensionalVelocity = 1000.0; +//double refDimensionalDensity = 1.0e3; + +// The velocity, temperature and pressure are fixed. +//int inflowParaType = 5; +//double refDimensionalVelocity = 1000.0; +//double refDimensionalPressure = 1.0e5; + +// The MachNumber, temperature and pressure are fixed. +//int inflowParaType = 6; +//double refDimensionalTemperature = 293.0; +//double refDimensionalPressure = 8886.06; + +// The velocity, temperature and pressure are read from file. +//int inflowParaType = 7; +//string weatherDataFilePath = "./WRFData/"; +//double longitude = 110.95 +//double latitude = 19.61; + +double wallTemperature = -1.0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; +double gridTranslationVector[] = [0.0, 0.0, 0.0]; + +int numberOfAerodynamicForceComponents = 1; +double forceReferenceLengthSpanWise = 1.0; // unit of meter. +double forceReferenceLength = 1.0; // unit of meter. +double forceReferenceArea = 1.0; // unit of meter^2. +double TorqueRefX = 0.0; // unit of meter. +double TorqueRefY = 0.0; // unit of meter. +double TorqueRefZ = 0.0; // unit of meter. +double knudsenLength = 1.0; // unit of meter. +double refMolecularWeight = 28.9644; // unit of g/mol. + +//----------------------------------------------------------------------- +# Spatial Discretisation # +//----------------------------------------------------------------------- +#************************************************************************ +# Struct Solver * +#************************************************************************ +// inviscidSchemeName: Spatial discretisation scheme of struct grid. +// Using this when solve structered grid or hybrid. +// -- "vanleer", "steger", "hlle", "lax_f", +// -- "roe", "modified_roe", +// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". +// isWennScheme: If using WENN Scheme of struct grid. +// 0 -- NO. (default) +// 1 -- Yes. +// str_limiter_name: Limiter of struct grid. +// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth", +// -- "nolim", no limiter, +// -- "vanalbada_clz", clz supersonic version, +// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3". +string inviscidSchemeName = "roe"; +int isWennScheme = 0; +string str_limiter_name = "vanalbada"; + +#************************************************************************ +# UnStruct Solver or Common * +#************************************************************************ +// viscousType: Viscous model. +// 0 -- Euler. +// 1 -- Laminar. +// 2 -- Algebraic. +// 3 -- 1eq turbulent. +// 4 -- 2eq turbulent. +// viscousName: Laminar or tubulent model. +// -- "0eq-bl". +// -- "1eq-sa". +// -- "2eq-kw-menter-sst". +// -- "2eq-kw-menter-bsl". +// -- "2eq-kw-wilcox-1988". +// -- "2eq-kw-wilcox-1998". +// -- "2eq-kw-kok-tnt". +// -- "2eq-kw-wilcox-2006". +// -- "easm-kw-2003". +// -- "easm-kw-2005". +// DESType: Type of DES. +// 0 -- RANS. (default) +// 1 -- DES. +// 2 -- DDES. +// 3 -- IDDES. +// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. +// Using this when solve Unstructered grid or hybrid. +// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle", +// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". +// uns_limiter_name: Limiter of Unstruct grid. +// -- "barth", "vencat", "vanleer", "minmod", +// -- "vanalbada", "smooth", "nnd", "lpz", "1st", +// -- "nolim", no limiter. +// uns_vis_name: Discretisation method of viscous term. +// -- "std", "test", "aver", "new1", "new2". +// gradientName: Gradient reconstruction method. +// -- "default", "ggcell", "ggnode", "lsq". +// ivencat: Variation of vencat limiter. +// 0 -- org method, it is independent of grid scale. +// 1 -- new method, it is dependent of grid scale. +// 4 -- Ustar limiter model, without grid size unitary. +// 7 -- default used. +// venkatCoeff: Cofficient of vencat, when using vencat limter. +// limitVariables: Limit model (It is useful only if limitVector is 0). +// 0 -- limit only for pressure and denstiny, then get the min value. +// 1 -- limit for every variables, then get the min value. +// limitVector: +// 0 -- Each variable use the same limiter coefficient. +// 1 -- Each variable use the respective limiter coefficients. +// reconmeth: +// 0 -- When reconstruct face value, Q+, Q- use respective limiter coefficients. +// 1 -- Q+, Q- use the min limiter coefficients of left and right cell. +// skewnessAngle: The skewness angle of grid cells. +// roeEntropyFixMethod: Entropy fix (correction) method. +// 1 -- direct fix, which limits the minimum eigenvalue directly. +// 2 -- multi-dimensional fix, which is derived from structured solver and now is only valid for struct solver. +// 3 -- Harten type, which is default used. +// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. +// It is used to scale the default Roe entropy fix coefficients. +// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0. + +//int viscousType = 0; +//string viscousName = "Euler"; + +//int viscousType = 1; +//string viscousName = "laminar"; + +int viscousType = 3; +string viscousName = "1eq-sa"; + +//int viscousType = 4; +//string viscousName = "2eq-kw-menter-sst"; + +int DESType = 0; + +string uns_scheme_name = "roe"; +string uns_limiter_name = "vencat"; +string uns_vis_name = "test"; +string gradientName = "ggnode"; + +int ivencat = 7; +double venkatCoeff = 5.0; +int reconmeth = 1; +int limitVariables = 0; +int limitVector = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 1.0; + +double AusmpwPlusLimiter = 1.0; + +#************************************************************************ +# Temporal Discretisation * +#************************************************************************ +// iunsteady: Steady or unsteady. +// 0 -- steady. +// 1 -- unsteay. +// physicalTimeStep: The nondimensional physical time step. +// ifStartFromSteadyResults: The unsteady simulation is start from steady flowfield or not, 0 is for no and else is for yes. +// ifStaticsFlowField: Statistical variables for unsteady simulation. +// ifStaticsReynoldsStress: Statistical Reynolds stress for unsteady simulation. +// startStatisticStep: Outer step when start statistics. +// when the value is larger than "maxSimuStep", it is useless. +// statisticalTimePeriod: Used as time period of statistic analysis. +// when the value is negative, time period is treated as infinite. +// statisticMethod: Statistic reynolds stress method. +// 0 -- tau = - ^2 +// 1 -- tau = +// min_sub_iter: The min sub iteration of unsteady simulation. +// max_sub_iter: The max sub iteration of unsteady simulation. +// tol_sub_iter: The tolerance of sub iteration of unsteady simulation. +// tscheme: Temporal Discretisation method. +// 1 -- Runge-Kutta Multi-State. +// 2 -- Point implicit. +// 3 -- Full implicit. +// 4 -- LU-SGS. +// 5 -- Block LU-SGS. +// 6 -- Jacobian iteration. +// 7 -- Line LU-SGS. +// 8 -- Matrix LU-SGS. +// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. +// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. +// CFLStart: Started cfl number. +// CFLEnd: End cfl number. +// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. +// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) +// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. +// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. +// LUSGSTolerance: Sub iter tolerance of LU-SGS or Block LU-SGS. +// ifLocalTimeStep: Time step method. +// 0 --Local. +// 1 --Global. +// isUseLocalCFL: use variable number of CFL or not. +// 0 -- global unified CFL number. +// 1 -- local CFL number. +// isUsePreTwall: use the previous temperatures on wall. 1 indicates yes, and 0 indicates no. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// codeOfAleModel: Arbitrary Lagrangian-Eulerian method. +// 0 -- no ALE method. +// 1 -- ALE method for non-moving grids. +// 2 -- ALE method for moving grids. +// 3 -- ALE method for deforming grids. +// wallFunctionType: The type of wall function to implement. +// 0 -- no wall function. (default) +// 1 -- standard wall function. +// 2 -- Pab3D wall function. +// RKStage: The number of Runge-Kutta step. +// lamda: Cofficient of Runge-Kutta step. +int iunsteady = 0; +double physicalTimeStep = 0.01; +double physicalTimeStepDimensional = -0.001; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int ifStaticsReynoldsStress = 0; +int startStatisticStep = 800000; +double statisticalTimePeriod = -1.0; +int statisticMethod = 0; +int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2. + +int methodOfDualTime = 3; +int min_sub_iter = 50; +int max_sub_iter = 50; +double tol_sub_iter = 0.01; + +int tscheme = 4; +int iSimplifyViscousTerm = 1; +int ifLocalTimeStep = 0; +int isUseLocalCFL = 0; +int isUsePreTwall = 0; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; + +double pMaxForCFL = 0.2; +double pMinForCFL = 0.1; +double deltaMaxForCFL = 0.2; +double magnifyFactorForCFL = 1.1; +double reduceFactorForCFL = 0.5; + +double ktmax = 1.0e10; + +int swapDq = 1; + +int nLUSGSSweeps = 1; +double LUSGSTolerance = 0.01; +int order = 2; + +double visl_min = 0.01; +double turbCFLScale = 1.0; +double csrv = 1.0; +double timemax = 1.0e10; +double dtsave = -1.0; +int maxale = 10; +double dtau = 0.001; + +int wallFunctionType = 0; + +int RKStage = 2; +double lamda[] = [0.5, 1.0]; + +//int RKStage = 1; +//double lamda[] = 1.0; + +//int RKStage = 4; +//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; +#************************************************************************ +# File In or Out * +#************************************************************************ +// numberOfGridGroups: The number of grid groups. +// gridfile: The partitioned Grid file path, using relative path, +// which is relative to the working directory. +// IMPORTANT WARNING: The file index should be ignored, +// e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts, +// please use 'rae2822_hybrid2d__4.fts' here! +// plotFieldType: If dump out the field results to visulization. +// walldistMethod: The method to compute wall distance. +// 0 -- accurate but not fast enough. +// 1 -- fast but not accurate enough. +// 2 -- super fast but more non-accurate! +// resSaveFile: The file path to save the residual convergence process, write data for every default (intervalStepRes) steps. +// turbresfile: The file path to save the residual convergence process of turbulence, write data for every default (intervalStepRes) steps. +// aircoeffile: The file path to save the aerodynamic force coefficients convergence process, write data for every default (intervalStepForce) steps. +// restartNSFile: The file path to write restart flowfield variables, write data for every default (intervalStepFlow) steps. +// turbfile: The file path to write restart flowfield variables of turbulence , write data for every default(intervalStepFlow) steps. +// visualfile: The visualization file path of flowfield, write data for every default (intervalStepPlot) steps. +// wall_aircoefile: The file path to save flowfield variables of wall, write data for every default steps. +// nDumpSurfaceInfo = 0 the "wall_varfile" write the informations including heat flux. +// nDumpSurfaceInfo = 1 the "wall_varfile" write the informations without heat flux. +// nIsComputeWallDist: Whether to compute the wall distance. +// 0 -- Compute wall distance. +// 1 -- Not compute. +// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. +// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; +string wallTemperaturefile = ""; + +int nIsComputeWallDist = 0; +int walldistMethod = 1; +int cellMethodOrNodeMethod = 0; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string transitionResFile = "results/transitionRes.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "results/flow.dat"; +string turbfile = "results/turb.dat"; +string transitionFile = "results/transition.dat"; + +string visualfile = "results/tecflow.plt"; +string wall_aircoefile = "results/wall_aircoef.dat"; +string samplefile = "results/sample.dat"; + +string protectionFile0 = "results/flow0.dat"; +string protectionFile1 = "results/flow1.dat"; +string wall_heatfluxfile = "results/wall_heatflux.dat"; + +string protectionTurbFile0 = "results/turb0.dat"; +string protectionTurbFile1 = "results/turb1.dat"; + +string protectionTransitionFile0 = "results/transition0.dat"; +string protectionTransitionFile1 = "results/transition1.dat"; + +int nDumpSurfaceInfo = 0; +string wall_varfile = ""; + +string sixDofFileName = "results/sixDofInfo.dat"; +string derivativeFileName = "results/identify.dat"; +string hysteresisFileName = "results/force_beta.plt"; + +int plotFieldType = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. +// 2 -- Ensight binary. +// 3 -- Ensight ASCII. +int visualfileType = 1; + +// samplefileMode: The dump mode of sample file. +// 0 -- dump out every probe/line/surface data for all step intervals. +// 1 -- dump out all probe/line/surface data for every step intervals. +int samplefileMode = 0; + +// visualSlice: The slice of tecflow. +// 0 -- Do not save slice data. +// 1 -- comput and save it to sliceFile. +// sliceAxis: Normal vector of slice. +// 1 -- X_DIR. +// 2 -- Y_DIR. +// 3 -- Z_DIR. +// slicePostion: Coordinate of slice. + +int visualSlice = 0; +int sliceAxis = 1; +double slicePostion = -0.5; +string sliceFile = "results/Slice.plt"; +int dumpWallFaceCenter = 0; + +// min-max box of the visual block. +double lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [1.0 1.0 1.0]; + +//-----------the optional parameters list for the flow field output---------------- +// nVisualVariables: Number of variables want to be dumped for tecplot visualization. +// visualVariables : Variable types dumped, listed as following: +// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6), +// -- viscosityLaminar(7), viscosityTurbulent(8), +// -- vorticity_x(9), vorticity_y(10), vorticity_z(11), vorticityMagnitude(12), +// -- strain_rate(13), Q_criteria(14), Cp(15), timeStep(16), volume(17), +// -- modeledTKE(18), modeleddissipationrate(19), SSTF1(20), SSTF2(21), +// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), +// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), +// -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52), +// -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58), +// -- overlap iblank(iblank, 81), +// -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62). +// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! +// Variables order must from small to big. +//-----------the optional parameters list for the wall boundary condition---------------- +// nVisualWallVariables: The number of visual variables on wall. +// visualWallVariables : dumped variable types, listed as following: +// -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4), +// -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8), +// -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11), +// -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15), +// -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19), +// -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24). +int nVisualVariables = 8; +int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; + +int nVisualWallVariables = 9; +int visualWallVariables[] = [0, 1, 2, 3, 4, 5, 9, 10, 11]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +// ifSetDataMonitor: Whether to set the data monitor. +// 0 -- No. +// 1 -- Yes. +// dataMonitorType: The type of data Monitor. +// 0 -- Probes data monitor. +// 1 -- Lines data monitor. +// 2 -- Surfaces data monitor. +// probesDefineFile: Probes location information file. +// nLines: The number of lines need to be monitored. +// linesDefineFile: Lines location information file. +// nSurfaces: The number of surfaces need to be monitored. +// surfacesDefineFile: Surfaces location information file. +// searchCellsMethod: method to search the cell of each probe. +// 0 -- Nearest cell to the probe. +// 1 -- Real cell where the probe is located. +// nProbeVariables: Number of variables want to be dumped for probes monitered. +// probeVariables : Variable types dumped, listed as following: +// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6), +// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9), +// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12). +// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! +// probeVariables order must from small to big. +// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. +// 0 -- Take the value of probe's cell as probe real value. +// 1 -- Interpolation from probe's and neighbouring cell to probe. +// 2 -- Interpolation from probe's cell nodes to probe. +int ifSetDataMonitor = 0; + +int dataMonitorType = 0; +string probesDefineFile = "bin/probes_XYZ.dat"; + +//int dataMonitorType = 1; +//int nLines = 1; +//string linesDefineFile = "bin/lines_XYZ.dat"; + +//int dataMonitorType = 2; +//int nSurfaces = 4; +//string surfacesDefineFile = "bin/surfaces_XYZ.dat"; + +int searchCellsMethod = 0; + +int nProbeVariables = 14; +int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]; +int probeVariablesInterpolationMethod = 0; + +#************************************************************************ +# Turbulence Parameter * +#************************************************************************ +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. +// transitionType: transition model type +// 0 -- none. +// 2 -- gama-re-theta. +// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition. +// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not. +int turbInterval = 1; +int turbOrderStruct = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double freeStreamViscosity = 1.0e-3; +double muoo = 3.0; +double kwoo = 5.0; +int transitionType = 0; +double turbIntensity = -1.0; +int freeturbIntensitySRModify = 0; +double freeDecayXLocation = 0.0; +int compressibleCorrection = 0; +int transitionMaFix = 1; + +// maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +int monitor_vistmax = 0; + +#************************************************************************ +# LES Parameter * +#************************************************************************ +// iLES: Create LESSolver or not. +// = 1 -- Create LESSolver; +// != 1 -- not. +// amplitudeofDisturb: Amplitude of adding disturb. +// disturbstep: Unsteady time step or steady iteration of adding random disturb. +// iterdisturb: Add random disturb in every sub-iter or only first sub-iter. +// = 0 -- in only first sub-iter; +// != 0 -- in every sub-iter. +// ipraddisturb: Add density and pressure disturb or not. +// ibodyforce: Add body force in source flux of NS equations or not. +// = 0 -- not; +// != 0 -- Add body force. +// bodyforce: Body force in source flux of NS equations or not. +// utau: friction velocity, using in DNSDisturb. +// sgsmodel: subgrid scale model. +// = "smagorinsky"; +// = "dsmCom"; +// = "wale"; +// = "sigma". +// deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak); +// = 2 -- pow(deltai * deltaj *deltak, 1/3); +// = 3 -- Devloped by Scotti. +// wallDampingFunctionType: = 0 -- no wall function; +// = 1 -- van Driest; +// = 2 -- developed by Dr. Deng Xiaobing; +// = 3 -- developed by Piomelli. +// turbViscousCutType: turbulent viscosity cut type. +// = 0 -- mu_total = mut + mul; +// = 1 -- mu_total = max(mut-mul, 0) + mul; +// = 2 -- mu_total = max(mut , 0) + mul. +// smagConstant: constant of smagorinsky model. +// waleConstant: constant of wale model. +// filterDirection [3]: filter variables in i, j, k direction or not. +// averageDirection[3]: average variables in i, j, k direction or not. +// isotropicConstant: constant of isotropic part of SGS stress. +int iLES = 0; +string sgsmodel = "smagorinsky"; +int deltaFunctionType = 2; +int wallDampingFunctionType = 1; +int turbViscousCutType = 2; +double smagConstant = 0.1; +double isotropicConstant = 0.0; +double waleConstant = 0.6; +double sigmaConstant = 1.35; +int filterDirection[] = [1, 1, 0]; +int averageDirection[] = [0, 0, 0]; +double testFilterScale = 2.0; +int averageWidth = 1; +int monitorNegativeConstant = 0; + +#************************************************************************ +# Other Parameters for Hypersonic Non-equilibrium Gas * +#************************************************************************ +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- gas model is fixed in the codes. +// 1 -- gas model is imported from library files. +// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, +// isAdaptiveSolver > 0 indicates the HyFlow self-adaptive solver. +// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps. +// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual. +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nGasModel: The type of gas. less than and equal to 1 represents the mixture gas. +// Otherwise, the pure gas with one component is used for perfect gas. +// 0 -- Earth gas. +// 1 -- Mars gas. +// 2 -- Argon. +// 3 -- Nitrogen. +// nEnergyRecycle: The type of EnergyModel Recycle. +// 0 -- not used. +// 1 -- used. +// nDensityModify: The type of densitymodify. +// 0 -- not used. +// 1 -- used. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. +// 0 -- perfect gas. +// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. +// nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. +// The value equals to or is greater than 1, and 3 is for default value. +// nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. +// The value equals to or is greater than 1, and 3 is for default value. +// nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. +// The value equals to or is greater than 1, and 3 is for default value. +// nSlipBCModel: The computational model of slip boundary conditions. +// 0 -- no slip. +// 1 -- the conventional Maxwell slip conditions. +// 2 -- the Gokcen slip conditions. +// 3 -- the Knudsen-layer correction of the standard slip conditions proposed by Lockerby, et al. +// 4 -- the Kogan simplified slip conditions. +// nMeanFreePathType: the method to the mean free-path for the slip conditions. For the mixture, 0 is suggested. +// 0 -- the equivalent mean free-path is calculated by the simple hard sphere model(HS). +// 1 -- calculated by the definition that includes the variables of the number density and the molecule diameter. +// 2 -- the equivalent mean free-path is calculated by the variable hard sphere model(VHS). +// nchemsrc: +// 0 -- the source terms are not computed. +// 1 -- the source terms are computed. +// nchemrad: +// 0 -- compute the spectrum radius without considering chemical reaction flow. +// 1 -- compute the spectrum radius that need to count the contribution from chemical reaction flow. +// ntmodel: The thermodynamic temperature model. +// 1 -- One-temperature model. +// 2 -- Two-temperature model. +// 3 -- Three-temperature model. +// isUseNoneqCond: +// 0 -- compute the source terms without any conditions. +// 1 -- compute the source terms using the non-equilibrium condition. +// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value. +// nIdealState: whether take all gas species as ideal gas for gas-mixture process. +// 0 -- No. +// 1 -- Yes. +// nTEnergyModel: the method to computing temperature energy model. +// 0 -- the energy term is computed using the conventional method. +// 1 -- the energy term is computed using the polynomial fitting method. +// 2 -- the energy term is computed using the piecewise polynomial fitting method. +// parkVDPower: the power of translational-rotational temperature in the Park V-D(vibration-dissociation) coupling model. +// The value is in range of [0.0, 1.0], DPLR suggests 0.5, LAURA suggests 0.7, while 0.6 is given as default value. +// catalyticCoef: +// 0.0 -- full non-catalytic wall boundary condition. +// 1.0 -- full catalytic wall boundary condition. +// in range of (0.0, 1.0) -- partial catalytic condition, the value indicates the catalytic coefficient. +// nIsSuperCatalytic: the super catalytic condition for the fully catalytic wall, and assigned with the value of 1. +// 0 -- equilibrium condition for the fully catalytic wall where the mass fractions are assigned with the values of the free stream. +// 1 -- super catalytic condition for the fully catalytic wall where all the atomic components combine into molecular components. +// nTemperatureJump: the method to calculate the temperature jump. +// 0 -- calculated by the variables of heat conductivity and constant volume specific heat for each energy mode. +// 1 -- the general method where the iteration is calculated with the translation-rotation temperature. +// nSurfGradMethod: the method to compute the surface heating ratio. +// 0 -- the gradient of variable is computed with the first-order difference method. +// 1 -- the gradient of variable is computed with the Green-Guass integral method. +// nRapidFlowfield: initialize the flowfield using the rapid engineering method when it is greater than zero. +// nSurfHeatMonitor: To exam the surface heating change or not. 0 is no, 1 is yes. +// nInitPressureStep: the steps to initialize the boundary variables when the rapid method is used. 100 is the default value. +// nDumpCFLNumber: 1 indicates dumping the CFL number to file, 0 denotes no dumping. +// sigmaVelocity: the coordination coefficient of tangential momentum for computation of slip velocity. The value is in range of (0.0, 2.0]. +// sigmaTemperature: the heat coordination coefficient for computation of slip temperature. The value is in range of (0.0, 2.0]. +// sigmaMassFraction: the species coordination coefficient for computation of slip mass fractions. The value is in range of (0.0, 2.0]. +// velocitySlipCorrectConstant: the correction constant to the velocity slip condition. For the diffuse reflection, 1.0 is used. +// 1.0 -- proposed by Maxwell. +// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. +// 1.146 -- proposed for an additional "fictitious" velocity slip. +// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. +// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. +// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. +// nIsChemicalFreeze: the flag to freeze the chemical reactions. +// 0 -- not freeze, the chemical reaction sources will be calculated. +// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated. +// veTemperatureMin: The minimum of Tv and Te. +// maxViscous: the maximum of Viscous. +// trTemperatureMin: the minimum value of trTemperature. +// veTemperatureMin: the minimum value of veTemperature. +// densityMin: the minimum value of density. +// tAdjustmentFactor: magnification of temperature, this value is in range of (1.0, 10.0]. +// nDebug: cout the Wrong place and abort +// 0 -- not used. +// 1 -- used. +// nSpeciesLimit: limitter of gas species +// 0 -- not used. +// 1 -- used. +// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction. +// 0 -- method 0. +// 1 -- method 1. +// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid. +// 0 -- not used. +// 1 -- used. +// nViscosityPeModified: Pe Modified for ViscosityCoef. +// 0 -- not used. +// 1 -- used. +// nChemcalSourceModified: Modified on ChemcalSource. +// 0 -- not used. +// 1 -- used. +// nChemcalSourceEsMethod: Modified on ChemcalSource. +// 0 -- approximation algorithm 1 (Ori). +// 1 -- approximation algorithm 2 (New). +// nMaxStepTemperature: the iterative steps of temperature. +// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs. +// 0 -- not used. +// 1 -- used. +// nDiagonalModified: Modified on Diagonal. +// 0 -- not used. +// 1 -- new. +// nDiagonalModifiedTurb: Modified on Diagonal for turbulence. +// 0 -- not used. +// 1 -- new. +// nGradPrimtiveMethod: +// 0 -- Ori. +// 1 -- new. +// nAblation: +// 0 -- The wall ablation is not computed. +// 1 -- The wall ablation is computed. +// isInjection: +// 0 -- The injection velocity of ablation wall is not computed. +// 1 -- The injection velocity of ablation wall is computed. +// nViscosityModel: +// 0 -- Blottner fitting method(N89). +// 1 -- Gupta fitting method(N90). +// nContinueModel: The new continue model can switch different computation model. +// 0 -- Not use the new continue model. +// 1 -- use the new continue model. +// nSutherland: +// 0 -- stands for selecting the Blotter curve fits mode. +// 1 -- stands for Sutherland relation. +// gasfile: Indicates the gas model, 9 models are provided, namely "Gu5", "Gu7", "Gu11", "Pa5", "Pa7", "Pa11", "DK5", "DK7", "DK11". +// "Gu" -- indicates the Gupta Model, three-Type Models are embeded in the library, namely, the 5-species-6-reactions, the 7-species-9-reactions, the 11-species-20-reactions. +// "Pa" -- indicates the Park Model, three-Type Models are embeded in the library, namely, the 5-species-17-reactions, the 7-species-22-reactions, the 11-species-48-reactions. +// "DK" -- indicates the Dunn-Kang Model, three-Type Models are embeded in the library, namely, the 5-species-11-reactions, the 7-species-15-reactions, the 11-species-26-reactions. +// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. +// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. +// "Gas-Mixture" -- indicates the process of mixing gas without reacting. +// for struct solver mixing two species "SpeciesA, SpeciesB". +// for unstruct solver mixing multi-species "O2 NO CO CO2 H2 N2 Air CH4". +// For self-definition model, the gasfile is used to indicate the file path of the new gas model. +// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. +// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. +// ifStartFromPerfectGasResults: The chemical reaction simulation is start from perfect gas flowfield or not, 0 is for no and else is for yes. +// nIterFirstStep : the maximum number of iteration in the first step for the self-adaptive calculation. +// nIterSecondStep: the maximum number of iteration in the second step for the self-adaptive calculation. +// nIterThirdStep : the maximum number of iteration in the third step for the self-adaptive calculation. +// nEnergyAssembly: the vibration energy is computed with combined method which includes the fitting method and the molecular kinetic theory. +// 0 -- no, +// 1 -- yes. +// nControlVariable: the variable to computing the residual error that determines the convergence is meet or not in the one-temperature model. +// 0 -- the density. +// 1 -- the translation temperature. +// 2 -- the vibration temperature. +// 3 -- the electron temperature. +// 4 -- the pressure. +// 5 -- the mass fraction of oxygen. +// 6 -- the mass fraction of nitrogen. +// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. +// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. +// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. +// useHyflowSetting: Setting for HyFLOW GUI. +// 0 -- PHengLEI. +// 1 -- HyFLOW. +// nProtectData: Use the continuation file data protection mechanism. +// 0 -- no. +// 1 -- yes. +// nTvChange: Judge whether the Tv equals Ttr. +// 0 -- yes. +// 1 -- no. +// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions. +// nFraction: the initial fractions type of species. +// 0 -- mass fraction. +// 1 -- mole fraction. +int dg_high_order = 0; +int iapplication = 0; +int isAdaptiveSolver = 0; +int nm = 5; +int nEquilibriumGas = 0; +int nPCWCycleStep = 3; +int nRETCycleStep = 3; +int nSLIPCycleStep = 3; +int nIterFirstStep = 1000; +int nIterSecondStep= 2000; +int nIterThirdStep = 2000; +int nEnergyAssembly = 0; +int nControlVariable = 1; +double firstStepError = 0.01; +double secondStepError = 0.001; +double thirdStepError = 0.001; +double predictCFLError = 0.1; + +double refGama = 1.4; +double prl = 0.72; +double prt = 0.90; +double sc_l = 0.5; +double sc_t = 0.5; + +int nGasModel = 0; +int nchem = 0; +int nchemsrc = 1; +int nchemrad = 1; +int ntmodel = 1; + +int nIdealState = 0; +int nEnergyRecycle = 1; +int nSlipBCModel = 0; +int nDensityModify = 1; +int nTEnergyModel = 0; +int nMeanFreePathType = 0; +int nIsChemicalFreeze = 0; +int nIsSuperCatalytic = 1; +int nTemperatureJump = 0; +int nSurfGradMethod = 0; +int nRapidFlowfield = 0; +int nSurfHeatMonitor = 0; +int nInitPressureStep = 100; +int nDumpCFLNumber = 0; + +double parkVDPower = 0.6; +double catalyticCoef = 0.0; +double sigmaVelocity = 1.0; +double sigmaTemperature = 1.0; +double sigmaMassFraction = 1.0; +double velocitySlipCorrectConstant = 1.0; + +double chemicalRelaxCorf = 1.0; +double chemicalSpectrumRadiusCoef = 1.0; +double viscousSpectrumRadiusCoef = 1.5; +double inviscidSpectrumRadiusCoef = 1.5; +double spectrumRadiusCoef = 0.5; +double staticPressureRelaxCorf = 0.2; + +double maxViscous = 10000.0; +double trTemperatureMin = 10.0; +double veTemperatureMin = 30.0; +double maxTemperature = 50000.0; +double densityMin = 1.0e-8; +double densityMinFactor = 0.1; +double tAdjustmentFactor = 10.0; +double iniSpeedCoef = 1.0; +int iniSpeedMode = 0; + +int nDebug = 0; +int nSpeciesLimit = 1; +int nTurblenceForChemical = 0; +int nViscosityFluxSublevelModified = 1; +int nViscosityPeModified = 0; +int nChemcalSourceModified = 2; +int nChemcalSourceEsMethod = 1; +int nMaxStepTemperature = 5; +int veTemperatureMinModified = 1; +int nDiagonalModified = 0; +int nDiagonalModifiedTurb = 0; +int nGradPrimtiveMethod = 1; +int nInviscidFluxModify = 1; +int nQlLimitMethod = 2; +int nSpeciesForWallMethod = 1; +int nDensityForWallMethod = 0; +int wallMultiTemperature = 0; + +int nProtectData = 0; +int useHyflowSetting = 0; +int nAblation = 0; +int isInjection = 0; +int nViscosityModel = 0; +int nMarsModel = 0; +int nTvChange = 0; +int isMoleFractionType = 0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.767"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.767, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767, 0.0"; + +//string gasfile = "Mars-Pa8"; +//string speciesName = "O, O2, NO, N, N2, C, CO, CO2"; +//string initMassFraction = "0.0015, 0.0429, 0.0, 0.0, 0.0, 0.0, 0.0777, 0.8779"; + +//string gasfile = "Pa"; +//string speciesName = "O, O2, NO, N, NO+, C, C2, CO, CO2, CN, N2, e-"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767, 0.0"; + +//string gasfile = "Combustion-12"; +//string speciesName = "O, O2, NO, N, C, CO, CO2, H, H2, OH, H2O, N2"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767"; + +//string gasfile = "Gas-Mixture"; +//string speciesName = "SpeciesA, SpeciesB"; +//string initMassFraction = "1.0, 0.0"; +int nSutherland = 0; +double gamaSpeciesA = 1.4; +double gamaSpeciesB = 1.3; +double molecularWeightSpeciesA = 29.0; +double molecularWeightSpeciesB = 30.0; + +//string gasfile = "Gas-Mixture"; +//string speciesName = "O2, N2"; +//string initMassFraction = "1.0, 0.0"; + +int nFraction = 0; +int nContinueModel = 0; +int nChemicalFlowStep = 0; +int ifStartFromPerfectGasResults = 0; +int isUseNoneqCond = 0; +double frozenCondition = 0.01; + +int nLeakageMonitor = 0; +double totalLeakageVolume = 1000.0; +double monitorThresholdValue = 0.05; +double sprayFactor = 0.0; + +######################################################################### +// Multi-Grid parameters. +// nMGLevel: The number of level of Multi-Grid. +// <= 1 -- Single-level. +// > 1 -- multi-level. +// MGPreIteration: For each grid, the number of pre-smoothing steps. +// n_post: For each grid, the number of post-smoothing steps. +// MGCoarsestIteration: For the coarest grid the number of smoothing steps. +// MGFasType: V-multi cycle or W-multi cycle. +// 1 -- V-multi cycle. +// 2 -- W-multi cycle. +// flowInitStep: Flow initialization step, 0 - 500 is suggested. +// Multi-Grid : Number of steps computing on coarse grid, during flow initialization. +// Single-Grid: Number of steps computing using first-order with vanleer, during flow initialization. +// mgCFLScale: CFL number enlarge times for coarse grid. +// mprol: Multi-grid interpolation method, interpolation from coarse cell to fine grid. +// 1 -- zero order. +// 2 -- first-order. (default) +// mgCorrectionLimit: Multi-grid correction limit. +int nMGLevel = 1; +int MGCoarsestIteration = 1; +int MGPreIteration = 1; +int MGFasType = 1; +int n_post = 0; +int flowInitStep = 100; +int mprol = 2; +double mgCFLScale = 1.0; +double mgCorrectionLimit = 0.01; + +//--------------- Some parameter for turbulent model -------------------- +// neasm: The variation of kw turbulent model. +// ismooth_turb: Residual smooth for turb or not. +// SSTProductType: The type of product term based on vorticity for SST. +// SAProductType: The type of product term based on vorticity for SA. +int neasm = -3; +int SSTProductType = 0; +int ismooth_turb = 0; +int SAProductType = 2; + +// ----------------- Overset Grid parameter ----------------------------- +int codeOfDigHoles = 1; +int codeOfTurbulentModel = 0; +string masterFileName = "./grid/searchFile.inp"; +string holeBasicFileName = "./grid/holeBasicFile.inp"; +string holeFullFileName = "./grid/holeFullFile.dat"; +string linkFileName = "./grid/topology.dat"; +string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; + +#************************************************************************ +# High Order Struct Solver * +#************************************************************************ +// isFVMOrFDM: +// 0 -- NSSolverStruct using Finite Volume Method. +// 1 -- NSSolverStruct using Finite Differ Method. +// SolverStructOrder: Spatial discretisation order of NS equations with struct grid. +// <= 2 -- finite volume method. +// >= 3 -- finite difference order. (to be completed) +// 0 -- default. +// str_highorder_interpolation_epsilon: Epsilon in weighted interpolation, bigger epsilon, better convergence, +// smaller epsilon, robuster for shock-detecting. +// str_highorder_interpolation_type: +// -- "classical", "test". +// str_highorder_flux_name: +// -- "roe", "steger". +// structhighordergradient: +// -- "conservation", "chain_rule". +int isFVMOrFDM = 0; +string str_highorder_solver = "WCNS"; +int SolverStructOrder = 0; +double str_highorder_interpolation_epsilon = 1.0e-6; +string str_highorder_interpolation_type = "test"; +string str_highorder_flux_name = "steger"; +string structhighordergradient = "conservation"; +double coefofstrflux = 0.5; +double limitcoefofinterface = 0.0; + +// ----------------- Advanced choices ----------------------------------- +// outtimesc: Time stepping scheme for the outer loop. +// MUSCLCoefXk: The parameter of MUSCL interpolations, belongs to [-1, 1]. +// -1 -- seconde-order fully-upwind differencing. +// 0 -- seconde-order upwind-biased differencing. +// 0.333333 -- third-order upwind-biased differencing. +// 1 -- seconde-order central differencing. +// MUSCLCoefXb: The limiter parameter. +// 0 -- the effect of the limiter is cancelled, means the first-order interpolations. +// allReduceStep: Iteration intervals for MPI AllReduce operation, default is 1. +string outtimesc = "impbd2"; +double MUSCLCoefXk = -1; +double MUSCLCoefXb = 1.0; +int allReduceStep = 1; + +// ----------------- overlap configuration ------------------------------ +// codeOfOversetGrid: Overlapping(overset) grid or not. +// 0 -- NON-overlapping grid. +// 1 -- Overlapping grid. +// oversetInterpolationMethod: the method of overset interpolation while field simulation. +// 0 -- set the acceptor cell value by donor cell value. +// 1 -- set the acceptor cell value by distance weight of donor cell value. +// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated. +// 0 -- no. +// 1 -- yes. +// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in +// the current overset grid(only for three dimension). +// 0 -- no. +// 1 -- yes. +// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid. +// 0 -- no. +// 1 -- yes. +// walldistMainZone: The initial value of background grid which does not exist wall boundary condition. +// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell. +// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region. +// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary. +// 0 -- one layer. +// 1 -- two layers. +// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region. +// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure. +// 0 -- no. +// 1 -- yes. +int codeOfOversetGrid = 0; +int oversetInterpolationMethod = 0; +int readOversetFileOrNot = 0; +int symetryOrNot = 0; +int readInAuxiliaryInnerGrid = 0; +int readInAuxiliaryOuterGrid = 0; +int readInSklFileOrNot = 0; +string auxiliaryInnerGrid0 = "./grid/aux-upper.fts"; +string auxiliaryInnerGrid1 = "./grid/aux-lower.fts"; +string auxiliaryInnerGrid2 = ""; +string oversetGridFileName = "./grid/iblank.ovs"; +double walldistMainZone = 1.0 +double toleranceForOversetSearch = 1.0e-3; +double toleranceForOversetBox = 1.0e-3; +int twoOrderInterpolationOrNot = 0; +int keyEnlargeOfActiveNodes = 0; +int outTecplotOverset = 0; +int outPutOversetVisualization = 0; +int numberOfMovingBodies = 2; + +// ----------------- ALE configuration ------------------------------ +int codeOfAleModel = 0; +int aleStartStrategy = -1; + +double referenceLength = 1.0; +double referenceVelocity = 1.0; +double referenceDensity = 1.0; + +int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd. +int strategyForGCLSource = 0; // 0-present; 1-Ahn. + +// 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton. +int methodForKineticEquation = 0; +double relaxParameterOfKinetic = 1.0; + +#************************************************************************ +# motive information * +#************************************************************************ +int numberOfMovingBodies = 1; + +############################## body0 ############################## +// mass of parts. +double mass_0 = 1.0; +// gravity of parts (along negative direction in Y-axis, eg. 9.8). +double gravity_0 = 0.0; +// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz. +double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; +// initial six DOF position information of parts. xc yc zc. +double massCenter_0[] = 0.0, 0.0, 0.0; +// if reset mass center while restart. +int resetMassCenter_0 = 0; +// position offset of parts. dx dy dz. +double massCenterDxyz_0[] = 0.0, 0.0, 0.0; +// initial six DOF position information of parts. angleX angleY angleZ. +double attitudeAngle_0[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. vc vy vz. +double massCenterVelocity_0[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. omigX omigY omigZ. +double angularVelocity_0[] = 0.0, 0.0, 0.0; +// the object that the parts belong to. +int fartherIndex_0 = -1; +// the assembly position of the parts. xc yc zc angleX angleY angleZ. +double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; +// the move pattern of the parts. +// -1 given motion partten. +// 0 still. +// 1 six DOF motion. +// 2 three DOF motion. +// 11 X-axis forced motion. +// 12 Y-axis forced motion. +// 13 Z-axis forced motion. +// 14 forced pitch motion. +// 15 forced yaw motion. +// 16 forced roll motion. +int RBDMethod_0 = 0; +double amplitude_0 = 0.0; +double reduceFrequency_0 = 0.0; +// direction of rotation. +// 1 -- clockwise from the point of view along the positive x axis. +// -1 -- anticlockwise from the point of view along the positive x axis. +int direction_0 = -1; +double rotateFrequency_0 = 0.0; +//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; +// dimensional physical time for additional force(s). +double addedForceTime_0[] = 0.0; +// additional force(inertia system) fX fY fZ. +double addedForce_0[] = 0.0, 0.0, 0.0; +// additional moment(inertia system) mX mY mZ. +double addedMoment_0[] = 0.0, 0.0, 0.0; +// the deformation method of the parts. +int morphing_0 = 0; + +// post indentify. +int integralOrder = 4; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 6.5e6; +//@double refDimensionalTemperature = 288.15; +//@double freestream_vibration_temperature = 300.00; +//@double refDimensionalPressure = 0; +//@double height = 0; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; +//@double refDimensionalVelocity = 0; +//@double refDimensionalDensity = 0; +//@string weatherDataFilePath = "./WRFData/"; +//@double longitude = 110.95 +//@double latitude = 19.61; +#************************************************************************ +# Old Parameter * +#************************************************************************ +int isPlotVolumeField = 0; + +#************************************************************************ +# partial flow field setting Parameter * +#************************************************************************ +//int nPartialParameter = 0; // 0/1/2 +//int nNumberOfPartialField = 0; // +//int nStartGridIndex[] = [0]; +//int nEndGridIndex[] = [0]; + +//double partialCFL[] = [0.0]; +//double partialSpeedCoef[] = [0.0]; +//double partialSpeed[] = [0.0]; +//double partialAttackd[] = [0.0]; +//double partialSlide[] = [0.0]; +//double partialPressure[] = [0.0]; +//double partialTemperature[] = [0.0]; +//double partialMassFractions[] = [0.0]; + +#************************************************************************ +# Incompressible Parameter * +#************************************************************************ +int isSolveEnergyEquation = 0; +int isSolveTurbEquation = 0; +int isSolveSpeciesEquation = 0; \ No newline at end of file diff --git a/B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU/bin/cfd_para_subsonic.hypara b/B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU/bin/cfd_para_subsonic.hypara new file mode 100644 index 0000000..656deef --- /dev/null +++ b/B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU/bin/cfd_para_subsonic.hypara @@ -0,0 +1,201 @@ +######################################################################### +# General Control Parameter # +######################################################################### +// maxSimuStep: The max simulation step, don't care simulation is restart or not. +// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved. +// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual 'res.dat' saved. + +int maxSimuStep = 6000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 200; +int intervalStepForce = 1; +int intervalStepRes = 1; +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) +######################################################################### +# Inflow Parameter # +######################################################################### +// refMachNumber: Mach number. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// inflowParaType: The type of inflow parameters. +// 0 -- the nondimensional conditions. +// 1 -- the flight conditions. +// 2 -- the experiment conditions. +// 3 -- the subsonic boundary conditions. +// refReNumber: Reynolds number, which is based unit length, unit of 1/m. +// refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition. +// refDimensionalPressure: Dimensional reference pressure, or the total pressure only for the experiment condition. +// height: Fly height, unit of km. +// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter.Common dimensions like: +// 1 dm = 0.1 m. +// 1 cm = 0.01 m. +// 1 mm = 0.001m. +// 1 inch = 0.0254m. +// 1 foot = 12 inches = 0.3048m. +// 1 yard = 3 feet = 0.9144m. +// forceRefenenceLength, forceRefenenceLengthSpanWise, forceRefenenceArea: Reference length, SpanWise length and area, independent of grid unit. +// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent of grid unit. + +double refMachNumber = 0.02; +double attackd = 0.0; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 200.0; +double refDimensionalTemperature = 288.15; + +//int inflowParaType = 1; +//double height = 0.001; + +double gridScaleFactor = 1.0; + +double forceReferenceLengthSpanWise = 1.0; // unit of meter. +double forceReferenceLength = 1.0; // unit of meter. +double forceReferenceArea = 1.0; // unit of meter^2. +double TorqueRefX = 0.0; // unit of meter. +double TorqueRefY = 0.0; // unit of meter. +double TorqueRefZ = 0.0; // unit of meter. + +######################################################################### +# Physical models # +######################################################################### +// iviscous: Viscous model. +// 0 -- Euler. +// 1 -- Lamilar. +// 3 -- 1eq turbulent. +// 4 -- 2eq turbulent. +// viscousName: Laminar or tubulent model. +// -- "1eq-sa", when iviscous = 3. +// -- "2eq-kw-menter-sst", when iviscous = 4. +// DESType: Type of DES. +// 0 -- RANS.(default) +// 1 -- DES. +// 2 -- DDES. +// 3 -- IDDES. + +//int viscousType = 0; +//string viscousName = "Euler"; + +int viscousType = 1; +string viscousName = "laminar"; + +//int viscousType = 3; +//string viscousName = "1eq-sa"; + +//int viscousType = 4; +//string viscousName = "2eq-kw-menter-sst"; + +int DESType = 0; + +int roeEntropyFixMethod = 6; +double roeEntropyScale = 1.0; +######################################################################### +# Spatial Discretisation # +######################################################################### +#******************************************************************* +# Struct Solver * +#******************************************************************* +// str_limiter_name: Limiter of struct grid. +// -- "3rdsmooth", "smooth". +// -- "nolim", no limiter. + +string str_limiter_name = "smooth"; + +#******************************************************************* +# UnStruct Solver * +#******************************************************************* +// uns_limiter_name: Limiter of Unstruct grid. +// -- "vencat". +// -- "1st", meaning accuracy of first-order. +// -- "nolim", no limiter. +// venkatCoeff: Coefficient of vencat limiter, when uns_limiter_name = 'vencat'. +// The smaller the value, the more robust it is. + +string uns_limiter_name = "vencat"; +double venkatCoeff = 5.0; + +######################################################################### +# Temporal Discretisation # +######################################################################### +// iunsteady: Steady or unsteady. +// 0 -- steady. +// 1 -- unsteay. +// CFLEnd: The CFL number, [0.1, 100]. +// The bigger the value, the convergence faster but lower robustness. +// nLUSGSSweeps: Number of Sub-iteration of LU-SGS. +// 0 -- is recommended for structured solver. +// 1-3 -- is recommended for unstructured solver. +int ifLowSpeedPrecon = 1; +int iunsteady = 1; +double physicalTimeStep = 0.017; +int min_sub_iter = 60; +int max_sub_iter = 60; +double tol_sub_iter = 0.001; +int aleStartStrategy = 1; +int ifStartFromSteadyResults = 0; + +int ifLocalTimeStep = 0; +int CFLMethod = 1; +double CFLStart = 1.0; +double CFLEnd = 100.0; +int CFLVaryStep = 30; +double turbCFLScale = 2.0; +######################################################################### +# Multi-Grid parameters # +######################################################################### +// nMGLevel: The number of Multi-Grid level. +// = 1 -- single-level. +// > 1 -- multi-level. +// flowInitStep: Flow initialization step, 0 - 500 is suggested. +// Multi-Grid : Number of steps computing on coarse grid, during flow initialization. +// Single-Grid: Number of steps computing using first-order with vanleer, during flow initialization. + +int nMGLevel = 1; +int flowInitStep = 0; + +######################################################################### +# File In or Out # +######################################################################### +// gridfile: The partitioned Grid file path, using relative path, +// which is relative to the working directory. +// IMPORTANT WARNING: The file index should be ignored, +// e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts, +// Please use 'rae2822_hybrid2d__4.fts' here! +// plotFieldType: If dump out the whole field results to tecplot or not, 0 / 1. + +string gridfile = "./grid/cylinderUnstr_unsteady__4.fts"; +int plotFieldType = 1; +int visualfileType = 0; +// ----------------- Advanced Parameters, DO NOT care it ---------------- +// nVisualVariables: Number of variables want to be dumped for tecplot visualization. +// visualVariables: Variable types dumped, listed as following: +// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6), +// -- viscosityLaminar(7), viscosityTurbulent(8), +// -- vorticity_x(9), vorticity_y(10), vorticity_z(11), vorticityMagnitude(12), +// -- strain_rate(13), Q_criteria(14), Cp(15), timeStep(16), volume(17), +// -- modeledTKE(18), modeleddissipationrate(19), SSTF1(20), SSTF2(21). +// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! +// Variables order must from small to big. + +int nVisualVariables = 8; +int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; + +// limitVariables: Limit model (It is useful only if limitVector is 0). +// 0 -- limit only for pressure and denstiny, then get the min value. +// 1 -- limit for every variables, then get the min value. +// limitVector: +// 0 -- Each variable use the same limiter coefficient. +// 1 -- Each variable use the respective limiter coefficients. +// reconmeth: +// 0 -- When reconstruct face value, Q+, Q- use respective limiter coefficients. +// 1 -- Q+, Q- use the min limiter coefficients of left and right cell. + +int reconmeth = 1; +int limitVariables = 0; +int limitVector = 0; + diff --git a/B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU/bin/grid_para.hypara b/B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU/bin/grid_para.hypara new file mode 100644 index 0000000..bd4c94d --- /dev/null +++ b/B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU/bin/grid_para.hypara @@ -0,0 +1,39 @@ +######################################################################### +# Grid data type # +######################################################################### +// gridtype: Grid type for generation, conversion, reconstruction, merging. +// 0 -- Unstructured grid. +// 1 -- Structured grid. +// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating. +// axisRotateOrder : axis rotating order. +// 1 -- X-axis. +// 2 -- Y-axis. +// 3 -- Z-axis. +// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order. +// from_gtype: Type of grid data type in grid conversion process. +// -1 -- MULTI_TYPE +// 1 -- HyperFLOW( PHengLEI ), *.fts. +// 2 -- CGNS, *.cgns. +// 3 -- Plot3D type of structured grid, *.dat/*.grd. +// 4 -- Fieldview type of unstructured grid, *.dat/*.inp. +// 5 -- Fluent, *.cas/*.msh. +// 6 -- Ustar, mgrid.in. +// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. +// 8 -- GMSH, *.msh. +int gridtype = 0; +int nAxisRotateTimes = 0; +int axisRotateOrder[] = [1, 2, 3]; +double axisRotateAngles[] = [0.0, 0.0, 0.0]; +int from_gtype = 2; + +######################################################################### +# File path # +######################################################################### +// from_gfile: path of original data file for unstructure grid convert from. +// out_gfile: path of target file for grid convert to, *.fts type of file usually. +string from_gfile = "./grid/cylinderUnstr_unsteady.cgns"; +string out_gfile = "./grid/cylinderUnstr_unsteady.fts"; + + + + diff --git a/B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU/bin/key.hypara b/B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU/bin/key.hypara new file mode 100644 index 0000000..cac252c --- /dev/null +++ b/B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU/bin/key.hypara @@ -0,0 +1,51 @@ +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 the parameter file. +// nsimutask: simulation task type. +// 0 -- CFD Solver of NS or Turbulation. +// 1 -- Grid generation: for special typical cases, such as cylinder, flat plate, etc. +// Grid conversion: from other format to HyperFLOW format (.fts). +// Grid reconstruction: such as grid adaptation. +// Grid merging: merge two blocks into one block. +// Grid repairing: repair the original grid in order to remove the negative volume cells. +// 2 -- Wall distance computation for turb-solver. +// 3 -- Grid partition. +// 4 -- Knowledge repository / examples of PHengLEI-API. +int ndim = 2; +int nparafile = 1; + +int nsimutask = 0; +string parafilename = "./bin/cfd_para_subsonic.hypara"; +//string parafilename = "./bin/cfd_para_transonic.hypara"; +//string parafilename = "./bin/cfd_para_supersonic.hypara"; +//string parafilename = "./bin/cfd_para_hypersonic.hypara"; +//string parafilename = "./bin/cfd_para_incompressible.hypara"; + +//int nsimutask = 1; +//string parafilename = "./bin/grid_para.hypara"; + +//int nsimutask = 2; +//string parafilename = "./bin/cfd_para.hypara"; + +//int nsimutask = 3; +//string parafilename = "./bin/partition.hypara"; + +//int nsimutask = 1; +//string parafilename = "./bin/grid_deform_para.hypara"; + +//int nsimutask = 1; +//string parafilename = "./bin/grid_refine_para.hypara"; + +//int nsimutask = 14; +//string parafilename = "./bin/integrative_solver.hypara"; + +//int nsimutask = 99; +//string parafilename = "./bin/post_processing.hypara"; + +// ---------------- Advanced Parameters, DO NOT care it ---------------- +int numberOfGridProcessor = 0; +// ATP read +//string parafilename2 = "./bin/overset_config.hypara"; + diff --git a/B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU/bin/partition.hypara b/B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU/bin/partition.hypara new file mode 100644 index 0000000..c182efe --- /dev/null +++ b/B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU/bin/partition.hypara @@ -0,0 +1,23 @@ +// pgridtype: The grid type. +// 0 -- unstruct grid +// 1 -- struct grid +// maxproc: The number of partition zones that want to be divided into, +// which is equal to the number of CPU processors you want. +// Usually, 50~100 thousands structured cells per CPU-Core is suggested. +// 30~70 thousands unstructured cells per CPU-Core is suggested. +// original_grid_file : original grid file that want to be divided(HyperFLOW/PHengLEI type, *.fts). +// partition_grid_file : target partition grid file(HyperFLOW/PHengLEI type, *.fts). + +int pgridtype = 0; +int maxproc = 4; + +string original_grid_file = "./grid/cylinderUnstr_unsteady.fts"; +string partition_grid_file = "./grid/cylinderUnstr_unsteady__4.fts"; + + +// Number of multi-grid levels, ONLY used for structured grid. +// 1 -- single level, 2 -- 2 level, N -- N level, ..., et al. +int numberOfMultigrid = 1; + + + diff --git a/B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU/grid/网格地址.txt b/B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU/grid/网格地址.txt new file mode 100644 index 0000000..899f977 --- /dev/null +++ b/B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU/grid/网格地址.txt @@ -0,0 +1,5 @@ +红山开源风雷算例库原始网格获取百度网盘链接: +链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA +提取码:w47m + +注:plot3D格式网格需同时下载.grd和.inp文件 \ No newline at end of file diff --git a/C02_TwoD_Rae2822_SST_Mix_4CPU/二维rae2822混合求解算例说明文档.pdf b/C02_TwoD_Rae2822_SST_Mix_4CPU/二维rae2822混合求解算例说明文档.pdf index 20a0f79..7de3eae 100644 Binary files a/C02_TwoD_Rae2822_SST_Mix_4CPU/二维rae2822混合求解算例说明文档.pdf and b/C02_TwoD_Rae2822_SST_Mix_4CPU/二维rae2822混合求解算例说明文档.pdf differ diff --git a/F06_ThreeD_AEDC_Separation_OversetGrid_Unsteady_InvisCal_Unstruct_8CPU/非结构三维AEDC吊舱分离非定常计算_算例说明文档.pdf b/F06_ThreeD_AEDC_Separation_OversetGrid_Unsteady_InvisCal_Unstruct_8CPU/非结构三维AEDC吊舱分离非定常计算_算例说明文档.pdf index 33508ab..4018ed9 100644 Binary files a/F06_ThreeD_AEDC_Separation_OversetGrid_Unsteady_InvisCal_Unstruct_8CPU/非结构三维AEDC吊舱分离非定常计算_算例说明文档.pdf and b/F06_ThreeD_AEDC_Separation_OversetGrid_Unsteady_InvisCal_Unstruct_8CPU/非结构三维AEDC吊舱分离非定常计算_算例说明文档.pdf differ diff --git a/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/boundary_condition_ref.hypara b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/boundary_condition_ref.hypara new file mode 100644 index 0000000..d03c8a3 --- /dev/null +++ b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/boundary_condition_ref.hypara @@ -0,0 +1,66 @@ +# nBoundaryConditions: Number of global boundary conditions. +# bcName : Boundary condition name. +# bcType(in PHengLEI): Boundary condition type. + +# How to set boundary condition, for example: +# string bcName = "Wall"; +# { +# int bcType = 2; +# int viscousType = 1; +# double wallTemperature = -1.0; +# double uWall = 0.0; +# double vWall = 0.0; +# double wWall = 0.0; +# } +# string bcName = "Inflow"; +# { +# int bcType = 5; +# int inflowParaType = 0; +# double refMachNumber = 0.73; +# double attackd = 2.79; +# double angleSlide = 0.0; +# double refReNumber = 6.5e6; +# double refDimensionalTemperature = 288.15; +# } + +# For more information, see examples/bin/boundary_condition.hypara file!!! + +int nBoundaryConditions = 5; +string bcName = "Overset_left"; +{ + int bcType = 1000; +} +string bcName = "Overset_right"; +{ + int bcType = 1000; +} +string bcName = "Wall_left"; +{ + string bodyName = "body1"; + int bcType = 2; +} +string bcName = "Wall_right"; +{ + string bodyName = "body2"; + int bcType = 2; +} +string bcName = "Farfield"; +{ + string bodyName = "body0"; + int bcType = 4; +} + +# 'bcType' is defined as following: +# -2: WAKE +# -1: INTERFACE +# 0 : NO_BOUNDARY_CONDITION +# 1 : EXTRAPOLATION +# 2 : SOLID_SURFACE +# 3 : SYMMETRY +# 4 : FARFIELD +# 5 : INFLOW +# 6 : OUTFLOW +# 52: PRESSURE_INLET +# 62: PRESSURE_OUTLET +# 61: OUTFLOW_CONFINED +# 7 : POLE diff --git a/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/cfd_para.hypara b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/cfd_para.hypara new file mode 100644 index 0000000..0876e96 --- /dev/null +++ b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/cfd_para.hypara @@ -0,0 +1,1467 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// PPPPP H H EEEEE N N GGGGG L EEEEE III + +// P P H H E NN N G L E I + +// PPPPP HHHHH EEEEE N N N G GG L EEEEE I + +// P H H E N N N G G L E I + +// P H H EEEEE N N GGGGG LLLLL EEEEE III + +//------------------------------------------------------------------------+ +// Platform for Hybrid Engineering Simulation of Flows + +// China Aerodynamics Research and Development Center + +// (C) Copyright, Since 2010 + +// PHengLEI 2406 + +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +########################################################################### +# Default parameters for Grid conversion # +########################################################################### +// gridtype: Grid type for generation, conversion, reconstruction, merging. +// 0 -- Unstructured grid. +// 1 -- Structured grid. +// 2 -- Hybrid grid, include both of unstructured and structured grid. +// gridobj: Task type of grid treatment. +// 0 -- Grid generation of typical case, such as cylinder, flat plate, etc. +// 1 -- Grid conversion, from other grid data to PHenglEI, such as Fluent, CGNS. +// 2 -- Grid refinement. +// 3 -- Grid merging, merge two blocks into one block. +// 4 -- Grid deformation, achieve unstructured grid deformation. +// 5 -- Grid repairing, repair the original grid in order to remove the negative volume cells. +// 6 -- Grid mirroring, mirror a symmetry grid to whole grid. +// 7 -- Grid type change, convert structured grid to unstructured grid. +// multiblock: Multi-block grid or not, only for structured grid conversion. +// 0 -- Not. +// 1 -- Yes. +// iadapt: Adaptation number for unstructure grid. +// SymmetryFaceVector: The vector of symmetry face. +// 0 -- X axis. +// 1 -- Y axis. +// 2 -- Z axis. +// gridReorder: Reorder cell and face of grid or not, only for 3D unstructured grid conversion, +// which is CGNS type. +// 0 -- Not. +// 1 -- Yes. +// faceReorderMethod: the reorder method face of unstructured grid. +// 0 -- BSFCELLFACEORG. +// 1 -- BSFCELLFACELEFT. +// 2 -- BSFCELLFACERIGHT. +int gridtype = 0; +int gridobj = 1; +int multiblock = 0; +int iadapt = 0; +int SymmetryFaceVector = 1; +int gridReorder = 0; +int faceReorderMethod = 0; + +// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating. +// axisRotateOrder : axis rotating order. The size of array "axisRotateOrder" is equal to nAxisRotateTimes. +// 1 -- X-axis. +// 2 -- Y-axis. +// 3 -- Z-axis. +// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order. +int nAxisRotateTimes = 0; +int axisRotateOrder[] = [1, 2, 3]; +double axisRotateAngles[] = [0.0, 0.0, 0.0]; + +// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". +// 0 -- Interface. (default) +// 1 -- Physical boundary condition, used in Hybrid solver. +int omit_no_bound_bc = 0; +int omitRepeatInterface = 1; + +//----------------------------------------------------------------------- +# Grid data type # +//----------------------------------------------------------------------- +// from_gtype/to_gtype: Type of grid data type in grid conversion process. +// -1 -- MULTI_TYPE. +// 1 -- PHengLEI, *.fts. +// 2 -- CGNS, *.cgns. +// 3 -- Plot3D type of structured grid, *.dat/*.grd. +// 4 -- Fieldview type of unstructured grid, *.dat/*.inp. +// 5 -- Fluent, *.cas/*.msh. +// 6 -- Ustar, mgrid.in. +// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. +// 8 -- GMSH, *.msh. +// 9 -- Gridgen type of structured grid, *.dat/*.grd. +// dumpOldGrid: If dump out the old grid file. +// 0 -- Not. (default) +// 1 -- Yes. +int from_gtype = 2; +int to_gtype = 1; +int dumpOldGrid = 0; + +//----------------------------------------------------------------------- +# File path # +//----------------------------------------------------------------------- +// from_gfile: path of original data file for unstructure grid convert from. +// out_gfile: path of target file for grid convert to, *.fts type of file usually. +int numberOfGridFile = 1; +string from_gfile = "./grid/rae2822_hybrid2d.cas"; +string from_gfile1 = ""; +string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; + +// ----------------- some advanced choices ------------------------------ +// iunsteady: The Grid is for unsteady simulation or not. +int iunsteady = 0; + +// fileformat: Ustar Grid file format. +// 0 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// Parameters for hybrid solver. +// mixgrid_uns: path of unstructure grid file for hybrid solver, *.fts type. +// mixgrid_str: path of structure grid file for hybrid solver, *.fts type. +string mixgrid_uns = "./grid/rae2822_uns2d_4.fts"; +string mixgrid_str = "./grid/flat_laminr_133_85_2d.fts"; + +// Some parameters for structured overlapping grid. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Grid Refine Parameters ----------------------------- +// anisoRefine: If refine grid by anisoRefine type. +// 0 -- Not. (default) +// 1 -- Yes. +// geometryUnit: Geometry unit. +// 1 -- meter. +// 2 -- millimeter. +// 3 -- inch. +// exclusiveCase: Parallel projection exclusive case. +// 0 -- NON case. +// 1 -- JSM-C2-NPOFF case. +// 2 -- CHNT. +// projectOrgPoint: If the original wall points need to be projected or not. +int anisoRefine = 0; +int geometryUnit = 1; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; +int projectOrgPoint = 0; +string geometryFileName = "./grid/jsm.igs"; + +// ----------------- Grid Deform Parameters ----------------------------- +// deformationMethod: Grid Deform. +// 1 -- SPRING. +// 2 -- RBF. +// stationalGridFile: Original grid file. +// visualFileName : The visualization file path of deform grid. +// nDeformStep : The max deform step. +// flapAngle : The max flap angle. +// rotatePostionZ : Rotate postion. +// rotatePostionY : Rotate postion. +// gridSlice : If dump slice grid. +// sliceAxis : Grid slice axis. +// slicePosition : Grid slice position. +int nDeformStep = 40; +double flapAngle = 10.0; +double rotatePostionZ = 4.00003; +double rotatePostionY = 3.05; + +int deformationMethod = 2; +string stationalGridFile = "./grid/Segment2Brid.fts"; +string visualFileName = "./results/deformedGrid.dat" + +int gridSlice = 1; +int sliceAxis = 1; +double slicePosition = 13; + +// ----------------- RBF Parameters ------------------------------------- +// numberOfReferenceCP: Number of reference Control Points. +// influencePara : The RBF influence radius parameter. +int numberOfReferenceCP = 40; +double influencePara = 25.0; + +// ----------------- Periodic Parameters -------------------------------- +// Notice: Rotational periodicity only support rotation along the X axis! +// periodicType: Which periodic boundary is used. +// 0 -- without Periodic Boundary. +// 1 -- Translational periodicity. +// 2 -- Rotational periodicity. +// translationLength[]: The relative distance between two periodic face + which only support one direction. +// rotationAngle: The relative angle between two periodic face. + which is recorded in degrees. +int periodicType = 0; +double translationLength[] = [0.0, 0.0, 0.0]; +double rotationAngle = 0.0; + +######################################################################### +# Default parameters for Partition # +######################################################################### +// pgridtype: The grid type. +// 0 -- unstruct grid. +// 1 -- struct grid. +// 2 -- refine structured grid. +// maxproc: The number of partition zones that want to be divided into. +// numberOfMultifile: The number of partition grid files that want to be dumped out. +int pgridtype = 0; +int maxproc = 4; +int numberOfMultifile = 1; + +// traceMark: Trace mark or not, only for structured grid partition. +// 0 -- Not. +// 1 -- Yes. +// blockIndexOfMark: the block index of mark, only for structured grid partition. +// cellIndexOfMark : the cell index of mark, only for structured grid partition. +int traceMark = 0; +int blockIndexOfMark = 0; +int cellIndexOfMark[] = [185, 30, 1]; + +// parallelStrategy: +// 0 -- each zone is assigned to the one that defined in grid partition procedure. +// 1 -- random assigned for each zone or by some else ways. +int parallelStrategy = 1; + +//----------------------------------------------------------------------- +# File path # +//----------------------------------------------------------------------- +// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts). +// partition_grid_file: Target partition grid file(PHengLEI type, *.fts). +string original_grid_file = "./grid/sphere_mixed.fts"; +string partition_grid_file = "./grid/sphere_mixed__4.fts"; + +// ------------------ Sompe advanced parameters ------------------------- +// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". +// 0 -- Interface. (default) +// 1 -- Physical boundary condition, used in Hybrid solver. +// npartmethod: Method of interface reconstruction, default is 1. +// parallelPartitionMethod: Method of parallel partition, this is set only when execute parallel partition. It would be skipped when serial partition. +// 1 -- Using ParMetis for homogeneous MPI. +// 2 -- Using Metis for homogeneous MPI. +// 3 -- using METIS partition for homogeneous OpenMP. +// parmetisBalance: Used to specify the imbalance tolerance. +// 1 -- perfect balance. +// maxproc -- perfect imbalance. +// 1.05 -- recommended. +int omit_no_bound_bc = 0; +int npartmethod = 1; +int parallelPartitionMethod = 2; +double parmetisBalance = 1.05; + +// 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; + +######################################################################### +# Default parameters for CFD simulation # +######################################################################### +// 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. +// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +int maxSimuStep = 20000; +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepSample = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 1; + +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) +// Kprec: The coefficient K for the cut-off velocity. +// 1.0~3.0 is suggested. (default, 3.0) +// preconFarfieldBCMethod: The precondition method for farfield boundary condition. +// 0 -- precondition far-field boundary based on riemann invariants. +// 1 -- Turkel's simplified far-field boundary condition. +int ifLowSpeedPrecon = 0; +double Kprec = 3.0; +int preconFarfieldBCMethod = 1; + +//----------------------------------------------------------------------- +# CFD Control Parameter # +//----------------------------------------------------------------------- +// refMachNumber: Mach number. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// inflowParaType: The type of inflow parameters. +// 0 -- the nondimensional conditions. +// 1 -- the flight conditions. +// 2 -- the experiment conditions. +// 3 -- the subsonic boundary conditions. (Useless!) +// 4 -- the condition that the velocity, temperature and density are given. +// 5 -- the condition that the velocity, temperature and pressure are given. +//flowInitMethod: Flow field initialization method. +// 0 -- The entire flow field is initialized according to Infinite velocity. +// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate. +// refReNumber: Reynolds number, which is based unit length, unit of 1/m. +// refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition. +// freestream_vibration_temperature: Dimensional freestream vibration temperature. +// refDimensionalPressure: Dimensional reference pressure, or the total pressure only for the experiment condition. +// height: Fly height, unit of km. +// wallTemperature: Temprature of the solid wall, minus value is for adiabatic boundary condition. +// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter. Common dimensions like: +// 1 dm = 0.1 m. +// 1 cm = 0.01 m. +// 1 mm = 0.001 m. +// 1 inch = 0.0254 m. +// 1 foot = 12 inches = 0.3048 m. +// 1 yard = 3 feet = 0.9144 m. +// forceReferenceLength, forceReferenceLengthSpanWise, forceReferenceArea: Reference length, SpanWise length and area, independent of grid unit. +// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent of grid unit. +// radiationCoef: The radiation coefficient on wall, it is used to compute the radiation heat flux on wall when the boundary +// condition is radiation equilibrium temperature, and 0.8 is the default value. +// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. +// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. +int directionMethod = 0; +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; +int flowInitMethod = 0; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 300.00; + +//int inflowParaType = 1; +//double height = 0.001; + +//int inflowParaType = 2; +//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). +//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). + +// The velocity, temperature and density are fixed. +//int inflowParaType = 4; +//double refDimensionalVelocity = 1000.0; +//double refDimensionalDensity = 1.0e3; + +// The velocity, temperature and pressure are fixed. +//int inflowParaType = 5; +//double refDimensionalVelocity = 1000.0; +//double refDimensionalPressure = 1.0e5; + +// The MachNumber, temperature and pressure are fixed. +//int inflowParaType = 6; +//double refDimensionalTemperature = 293.0; +//double refDimensionalPressure = 8886.06; + +// The velocity, temperature and pressure are read from file. +//int inflowParaType = 7; +//string weatherDataFilePath = "./WRFData/"; +//double longitude = 110.95 +//double latitude = 19.61; + +double wallTemperature = -1.0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; +double gridTranslationVector[] = [0.0, 0.0, 0.0]; + +int numberOfAerodynamicForceComponents = 1; +double forceReferenceLengthSpanWise = 1.0; // unit of meter. +double forceReferenceLength = 1.0; // unit of meter. +double forceReferenceArea = 1.0; // unit of meter^2. +double TorqueRefX = 0.0; // unit of meter. +double TorqueRefY = 0.0; // unit of meter. +double TorqueRefZ = 0.0; // unit of meter. +double knudsenLength = 1.0; // unit of meter. +double refMolecularWeight = 28.9644; // unit of g/mol. + +//----------------------------------------------------------------------- +# Spatial Discretisation # +//----------------------------------------------------------------------- +#************************************************************************ +# Struct Solver * +#************************************************************************ +// inviscidSchemeName: Spatial discretisation scheme of struct grid. +// Using this when solve structered grid or hybrid. +// -- "vanleer", "steger", "hlle", "lax_f", +// -- "roe", "modified_roe", +// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". +// isWennScheme: If using WENN Scheme of struct grid. +// 0 -- NO. (default) +// 1 -- Yes. +// str_limiter_name: Limiter of struct grid. +// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth", +// -- "nolim", no limiter, +// -- "vanalbada_clz", clz supersonic version, +// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3". +string inviscidSchemeName = "roe"; +int isWennScheme = 0; +string str_limiter_name = "vanalbada"; + +#************************************************************************ +# UnStruct Solver or Common * +#************************************************************************ +// viscousType: Viscous model. +// 0 -- Euler. +// 1 -- Laminar. +// 2 -- Algebraic. +// 3 -- 1eq turbulent. +// 4 -- 2eq turbulent. +// viscousName: Laminar or tubulent model. +// -- "0eq-bl". +// -- "1eq-sa". +// -- "2eq-kw-menter-sst". +// -- "2eq-kw-menter-bsl". +// -- "2eq-kw-wilcox-1988". +// -- "2eq-kw-wilcox-1998". +// -- "2eq-kw-kok-tnt". +// -- "2eq-kw-wilcox-2006". +// -- "easm-kw-2003". +// -- "easm-kw-2005". +// DESType: Type of DES. +// 0 -- RANS. (default) +// 1 -- DES. +// 2 -- DDES. +// 3 -- IDDES. +// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. +// Using this when solve Unstructered grid or hybrid. +// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle", +// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". +// uns_limiter_name: Limiter of Unstruct grid. +// -- "barth", "vencat", "vanleer", "minmod", +// -- "vanalbada", "smooth", "nnd", "lpz", "1st", +// -- "nolim", no limiter. +// uns_vis_name: Discretisation method of viscous term. +// -- "std", "test", "aver", "new1", "new2". +// gradientName: Gradient reconstruction method. +// -- "default", "ggcell", "ggnode", "lsq". +// ivencat: Variation of vencat limiter. +// 0 -- org method, it is independent of grid scale. +// 1 -- new method, it is dependent of grid scale. +// 4 -- Ustar limiter model, without grid size unitary. +// 7 -- default used. +// venkatCoeff: Cofficient of vencat, when using vencat limter. +// limitVariables: Limit model (It is useful only if limitVector is 0). +// 0 -- limit only for pressure and denstiny, then get the min value. +// 1 -- limit for every variables, then get the min value. +// limitVector: +// 0 -- Each variable use the same limiter coefficient. +// 1 -- Each variable use the respective limiter coefficients. +// reconmeth: +// 0 -- When reconstruct face value, Q+, Q- use respective limiter coefficients. +// 1 -- Q+, Q- use the min limiter coefficients of left and right cell. +// skewnessAngle: The skewness angle of grid cells. +// roeEntropyFixMethod: Entropy fix (correction) method. +// 1 -- direct fix, which limits the minimum eigenvalue directly. +// 2 -- multi-dimensional fix, which is derived from structured solver and now is only valid for struct solver. +// 3 -- Harten type, which is default used. +// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. +// It is used to scale the default Roe entropy fix coefficients. +// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0. + +//int viscousType = 0; +//string viscousName = "Euler"; + +//int viscousType = 1; +//string viscousName = "laminar"; + +int viscousType = 3; +string viscousName = "1eq-sa"; + +//int viscousType = 4; +//string viscousName = "2eq-kw-menter-sst"; + +int DESType = 0; + +string uns_scheme_name = "roe"; +string uns_limiter_name = "vencat"; +string uns_vis_name = "test"; +string gradientName = "ggnode"; + +int ivencat = 7; +double venkatCoeff = 5.0; +int reconmeth = 1; +int limitVariables = 0; +int limitVector = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 1.0; + +double AusmpwPlusLimiter = 1.0; + +#************************************************************************ +# Temporal Discretisation * +#************************************************************************ +// iunsteady: Steady or unsteady. +// 0 -- steady. +// 1 -- unsteay. +// physicalTimeStep: The nondimensional physical time step. +// ifStartFromSteadyResults: The unsteady simulation is start from steady flowfield or not, 0 is for no and else is for yes. +// ifStaticsFlowField: Statistical variables for unsteady simulation. +// ifStaticsReynoldsStress: Statistical Reynolds stress for unsteady simulation. +// startStatisticStep: Outer step when start statistics. +// when the value is larger than "maxSimuStep", it is useless. +// statisticalTimePeriod: Used as time period of statistic analysis. +// when the value is negative, time period is treated as infinite. +// statisticMethod: Statistic reynolds stress method. +// 0 -- tau = - ^2 +// 1 -- tau = +// min_sub_iter: The min sub iteration of unsteady simulation. +// max_sub_iter: The max sub iteration of unsteady simulation. +// tol_sub_iter: The tolerance of sub iteration of unsteady simulation. +// tscheme: Temporal Discretisation method. +// 1 -- Runge-Kutta Multi-State. +// 2 -- Point implicit. +// 3 -- Full implicit. +// 4 -- LU-SGS. +// 5 -- Block LU-SGS. +// 6 -- Jacobian iteration. +// 7 -- Line LU-SGS. +// 8 -- Matrix LU-SGS. +// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. +// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. +// CFLStart: Started cfl number. +// CFLEnd: End cfl number. +// CFLVaryStep: The number of step when cfl increase from CFLStart to CFLEnd. +// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) +// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. +// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. +// LUSGSTolerance: Sub iter tolerance of LU-SGS or Block LU-SGS. +// ifLocalTimeStep: Time step method. +// 0 --Local. +// 1 --Global. +// isUseLocalCFL: use variable number of CFL or not. +// 0 -- global unified CFL number. +// 1 -- local CFL number. +// isUsePreTwall: use the previous temperatures on wall. 1 indicates yes, and 0 indicates no. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// codeOfAleModel: Arbitrary Lagrangian-Eulerian method. +// 0 -- no ALE method. +// 1 -- ALE method for non-moving grids. +// 2 -- ALE method for moving grids. +// 3 -- ALE method for deforming grids. +// wallFunctionType: The type of wall function to implement. +// 0 -- no wall function. (default) +// 1 -- standard wall function. +// 2 -- Pab3D wall function. +// RKStage: The number of Runge-Kutta step. +// lamda: Cofficient of Runge-Kutta step. +int iunsteady = 0; +double physicalTimeStep = 0.01; +double physicalTimeStepDimensional = -0.001; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int ifStaticsReynoldsStress = 0; +int startStatisticStep = 800000; +double statisticalTimePeriod = -1.0; +int statisticMethod = 0; +int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2. + +int methodOfDualTime = 3; +int min_sub_iter = 50; +int max_sub_iter = 50; +double tol_sub_iter = 0.01; + +int tscheme = 4; +int iSimplifyViscousTerm = 1; +int ifLocalTimeStep = 0; +int isUseLocalCFL = 0; +int isUsePreTwall = 0; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; + +double pMaxForCFL = 0.2; +double pMinForCFL = 0.1; +double deltaMaxForCFL = 0.2; +double magnifyFactorForCFL = 1.1; +double reduceFactorForCFL = 0.5; + +double ktmax = 1.0e10; + +int swapDq = 1; + +int nLUSGSSweeps = 1; +double LUSGSTolerance = 0.01; +int order = 2; + +double visl_min = 0.01; +double turbCFLScale = 1.0; +double csrv = 1.0; +double timemax = 1.0e10; +double dtsave = -1.0; +int maxale = 10; +double dtau = 0.001; + +int wallFunctionType = 0; + +int RKStage = 2; +double lamda[] = [0.5, 1.0]; + +//int RKStage = 1; +//double lamda[] = 1.0; + +//int RKStage = 4; +//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; +#************************************************************************ +# File In or Out * +#************************************************************************ +// numberOfGridGroups: The number of grid groups. +// gridfile: The partitioned Grid file path, using relative path, +// which is relative to the working directory. +// IMPORTANT WARNING: The file index should be ignored, +// e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts, +// please use 'rae2822_hybrid2d__4.fts' here! +// plotFieldType: If dump out the field results to visulization. +// walldistMethod: The method to compute wall distance. +// 0 -- accurate but not fast enough. +// 1 -- fast but not accurate enough. +// 2 -- super fast but more non-accurate! +// resSaveFile: The file path to save the residual convergence process, write data for every default (intervalStepRes) steps. +// turbresfile: The file path to save the residual convergence process of turbulence, write data for every default (intervalStepRes) steps. +// aircoeffile: The file path to save the aerodynamic force coefficients convergence process, write data for every default (intervalStepForce) steps. +// restartNSFile: The file path to write restart flowfield variables, write data for every default (intervalStepFlow) steps. +// turbfile: The file path to write restart flowfield variables of turbulence , write data for every default(intervalStepFlow) steps. +// visualfile: The visualization file path of flowfield, write data for every default (intervalStepPlot) steps. +// wall_aircoefile: The file path to save flowfield variables of wall, write data for every default steps. +// nDumpSurfaceInfo = 0 the "wall_varfile" write the informations including heat flux. +// nDumpSurfaceInfo = 1 the "wall_varfile" write the informations without heat flux. +// nIsComputeWallDist: Whether to compute the wall distance. +// 0 -- Compute wall distance. +// 1 -- Not compute. +// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. +// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; +string wallTemperaturefile = ""; + +int nIsComputeWallDist = 0; +int walldistMethod = 1; +int cellMethodOrNodeMethod = 0; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string transitionResFile = "results/transitionRes.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "results/flow.dat"; +string turbfile = "results/turb.dat"; +string transitionFile = "results/transition.dat"; + +string visualfile = "results/tecflow.plt"; +string wall_aircoefile = "results/wall_aircoef.dat"; +string samplefile = "results/sample.dat"; + +string protectionFile0 = "results/flow0.dat"; +string protectionFile1 = "results/flow1.dat"; +string wall_heatfluxfile = "results/wall_heatflux.dat"; + +string protectionTurbFile0 = "results/turb0.dat"; +string protectionTurbFile1 = "results/turb1.dat"; + +string protectionTransitionFile0 = "results/transition0.dat"; +string protectionTransitionFile1 = "results/transition1.dat"; + +int nDumpSurfaceInfo = 0; +string wall_varfile = ""; + +string sixDofFileName = "results/sixDofInfo.dat"; +string derivativeFileName = "results/identify.dat"; +string hysteresisFileName = "results/force_beta.plt"; + +int plotFieldType = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. +// 2 -- Ensight binary. +// 3 -- Ensight ASCII. +// 4 -- Paraview. +int visualfileType = 1; + +// samplefileMode: The dump mode of sample file. +// 0 -- dump out every probe/line/surface data for all step intervals. +// 1 -- dump out all probe/line/surface data for every step intervals. +int samplefileMode = 0; + +// visualSlice: The slice of tecflow. +// 0 -- Do not save slice data. +// 1 -- comput and save it to sliceFile. +// sliceAxis: Normal vector of slice. +// 1 -- X_DIR. +// 2 -- Y_DIR. +// 3 -- Z_DIR. +// slicePostion: Coordinate of slice. + +int visualSlice = 0; +int sliceAxis = 1; +double slicePostion = -0.5; +string sliceFile = "results/Slice.plt"; +int dumpWallFaceCenter = 0; + +// min-max box of the visual block. +double lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [1.0 1.0 1.0]; + +//-----------the optional parameters list for the flow field output---------------- +// nVisualVariables: Number of variables want to be dumped for tecplot visualization. +// visualVariables : Variable types dumped, listed as following: +// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6), +// -- viscosityLaminar(7), viscosityTurbulent(8), +// -- vorticity_x(9), vorticity_y(10), vorticity_z(11), vorticityMagnitude(12), +// -- strain_rate(13), Q_criteria(14), Cp(15), timeStep(16), volume(17), +// -- modeledTKE(18), modeleddissipationrate(19), SSTF1(20), SSTF2(21), +// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), +// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), +// -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52), +// -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58)(the two parameters are related to CFL self-adaptive, only support struct grid) +// -- overlap iblank(iblank, 81), +// -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62). +// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! +// Variables order must from small to big. +//-----------the optional parameters list for the wall boundary condition---------------- +// nVisualWallVariables: The number of visual variables on wall. +// visualWallVariables : dumped variable types, listed as following: +// -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4), +// -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8), +// -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11), +// -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15), +// -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19), +// -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24). +int nVisualVariables = 8; +int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; + +int nVisualWallVariables = 6; +int visualWallVariables[] = [0, 1, 2, 3, 4, 5]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +// ifSetDataMonitor: Whether to set the data monitor. +// 0 -- No. +// 1 -- Yes. +// dataMonitorType: The type of data Monitor. +// 0 -- Probes data monitor. +// 1 -- Lines data monitor. +// 2 -- Surfaces data monitor. +// probesDefineFile: Probes location information file. +// nLines: The number of lines need to be monitored. +// linesDefineFile: Lines location information file. +// nSurfaces: The number of surfaces need to be monitored. +// surfacesDefineFile: Surfaces location information file. +// searchCellsMethod: method to search the cell of each probe. +// 0 -- Nearest cell to the probe. +// 1 -- Real cell where the probe is located. +// nProbeVariables: Number of variables want to be dumped for probes monitered. +// probeVariables : Variable types dumped, listed as following: +// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6), +// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9), +// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12). +// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! +// probeVariables order must from small to big. +// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. +// 0 -- Take the value of probe's cell as probe real value. +// 1 -- Interpolation from probe's and neighbouring cell to probe. +// 2 -- Interpolation from probe's cell nodes to probe. +int ifSetDataMonitor = 0; + +int dataMonitorType = 0; +string probesDefineFile = "bin/probes_XYZ.dat"; + +//int dataMonitorType = 1; +//int nLines = 1; +//string linesDefineFile = "bin/lines_XYZ.dat"; + +//int dataMonitorType = 2; +//int nSurfaces = 4; +//string surfacesDefineFile = "bin/surfaces_XYZ.dat"; + +int searchCellsMethod = 0; + +int nProbeVariables = 14; +int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]; +int probeVariablesInterpolationMethod = 0; + +#************************************************************************ +# Turbulence Parameter * +#************************************************************************ +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. +// transitionType: transition model type +// 0 -- none. +// 2 -- gama-re-theta. +// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition. +// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not. +int turbInterval = 1; +int turbOrderStruct = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double freeStreamViscosity = 1.0e-3; +double muoo = 3.0; +double kwoo = 5.0; +int transitionType = 0; +double turbIntensity = -1.0; +int freeturbIntensitySRModify = 0; +double freeDecayXLocation = 0.0; +int compressibleCorrection = 0; +int transitionMaFix = 1; + +// maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +int monitor_vistmax = 0; + +#************************************************************************ +# LES Parameter * +#************************************************************************ +// iLES: Create LESSolver or not. +// = 1 -- Create LESSolver; +// != 1 -- not. +// amplitudeofDisturb: Amplitude of adding disturb. +// disturbstep: Unsteady time step or steady iteration of adding random disturb. +// iterdisturb: Add random disturb in every sub-iter or only first sub-iter. +// = 0 -- in only first sub-iter; +// != 0 -- in every sub-iter. +// ipraddisturb: Add density and pressure disturb or not. +// ibodyforce: Add body force in source flux of NS equations or not. +// = 0 -- not; +// != 0 -- Add body force. +// bodyforce: Body force in source flux of NS equations or not. +// utau: friction velocity, using in DNSDisturb. +// sgsmodel: subgrid scale model. +// = "smagorinsky"; +// = "dsmCom"; +// = "wale"; +// = "sigma". +// deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak); +// = 2 -- pow(deltai * deltaj *deltak, 1/3); +// = 3 -- Devloped by Scotti. +// wallDampingFunctionType: = 0 -- no wall function; +// = 1 -- van Driest; +// = 2 -- developed by Dr. Deng Xiaobing; +// = 3 -- developed by Piomelli. +// turbViscousCutType: turbulent viscosity cut type. +// = 0 -- mu_total = mut + mul; +// = 1 -- mu_total = max(mut-mul, 0) + mul; +// = 2 -- mu_total = max(mut , 0) + mul. +// smagConstant: constant of smagorinsky model. +// waleConstant: constant of wale model. +// filterDirection [3]: filter variables in i, j, k direction or not. +// averageDirection[3]: average variables in i, j, k direction or not. +// isotropicConstant: constant of isotropic part of SGS stress. +int iLES = 0; +string sgsmodel = "smagorinsky"; +int deltaFunctionType = 2; +int wallDampingFunctionType = 1; +int turbViscousCutType = 2; +double smagConstant = 0.1; +double isotropicConstant = 0.0; +double waleConstant = 0.6; +double sigmaConstant = 1.35; +int filterDirection[] = [1, 1, 0]; +int averageDirection[] = [0, 0, 0]; +double testFilterScale = 2.0; +int averageWidth = 1; +int monitorNegativeConstant = 0; + +#************************************************************************ +# Other Parameters for Hypersonic Non-equilibrium Gas * +#************************************************************************ +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- gas model is fixed in the codes. +// 1 -- gas model is imported from library files. +// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, +// isAdaptiveSolver > 0 indicates the HyFlow self-adaptive solver. +// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps. +// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual. +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nGasModel: The type of gas. less than and equal to 1 represents the mixture gas. +// Otherwise, the pure gas with one component is used for perfect gas. +// 0 -- Earth gas. +// 1 -- Mars gas. +// 2 -- Argon. +// 3 -- Nitrogen. +// nEnergyRecycle: The type of EnergyModel Recycle. +// 0 -- not used. +// 1 -- used. +// nDensityModify: The type of densitymodify. +// 0 -- not used. +// 1 -- used. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. +// 0 -- perfect gas. +// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. +// nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. +// The value equals to or is greater than 1, and 3 is for default value. +// nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. +// The value equals to or is greater than 1, and 3 is for default value. +// nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. +// The value equals to or is greater than 1, and 3 is for default value. +// nSlipBCModel: The computational model of slip boundary conditions. +// 0 -- no slip. +// 1 -- the conventional Maxwell slip conditions. +// 2 -- the Gokcen slip conditions. +// 3 -- the Knudsen-layer correction of the standard slip conditions proposed by Lockerby, et al. +// 4 -- the Kogan simplified slip conditions. +// nMeanFreePathType: the method to the mean free-path for the slip conditions. For the mixture, 0 is suggested. +// 0 -- the equivalent mean free-path is calculated by the simple hard sphere model(HS). +// 1 -- calculated by the definition that includes the variables of the number density and the molecule diameter. +// 2 -- the equivalent mean free-path is calculated by the variable hard sphere model(VHS). +// nchemsrc: +// 0 -- the source terms are not computed. +// 1 -- the source terms are computed. +// nchemrad: +// 0 -- compute the spectrum radius without considering chemical reaction flow. +// 1 -- compute the spectrum radius that need to count the contribution from chemical reaction flow. +// ntmodel: The thermodynamic temperature model. +// 1 -- One-temperature model. +// 2 -- Two-temperature model. +// 3 -- Three-temperature model. +// isUseNoneqCond: +// 0 -- compute the source terms without any conditions. +// 1 -- compute the source terms using the non-equilibrium condition. +// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value. +// nIdealState: whether take all gas species as ideal gas for gas-mixture process. +// 0 -- No. +// 1 -- Yes. +// nTEnergyModel: the method to computing temperature energy model. +// 0 -- the energy term is computed using the conventional method. +// 1 -- the energy term is computed using the polynomial fitting method. +// 2 -- the energy term is computed using the piecewise polynomial fitting method. +// parkVDPower: the power of translational-rotational temperature in the Park V-D(vibration-dissociation) coupling model. +// The value is in range of [0.0, 1.0], DPLR suggests 0.5, LAURA suggests 0.7, while 0.6 is given as default value. +// catalyticCoef: +// 0.0 -- full non-catalytic wall boundary condition. +// 1.0 -- full catalytic wall boundary condition. +// in range of (0.0, 1.0) -- partial catalytic condition, the value indicates the catalytic coefficient. +// nIsSuperCatalytic: the super catalytic condition for the fully catalytic wall, and assigned with the value of 1. +// 0 -- equilibrium condition for the fully catalytic wall where the mass fractions are assigned with the values of the free stream. +// 1 -- super catalytic condition for the fully catalytic wall where all the atomic components combine into molecular components. +// nTemperatureJump: the method to calculate the temperature jump. +// 0 -- calculated by the variables of heat conductivity and constant volume specific heat for each energy mode. +// 1 -- the general method where the iteration is calculated with the translation-rotation temperature. +// nSurfGradMethod: the method to compute the surface heating ratio. +// 0 -- the gradient of variable is computed with the first-order difference method. +// 1 -- the gradient of variable is computed with the Green-Guass integral method. +// nRapidFlowfield: initialize the flowfield using the rapid engineering method when it is greater than zero. +// nSurfHeatMonitor: To exam the surface heating change or not. 0 is no, 1 is yes. +// nInitPressureStep: the steps to initialize the boundary variables when the rapid method is used. 100 is the default value. +// nDumpCFLNumber: 1 indicates dumping the CFL number to file, 0 denotes no dumping. +// sigmaVelocity: the coordination coefficient of tangential momentum for computation of slip velocity. The value is in range of (0.0, 2.0]. +// sigmaTemperature: the heat coordination coefficient for computation of slip temperature. The value is in range of (0.0, 2.0]. +// sigmaMassFraction: the species coordination coefficient for computation of slip mass fractions. The value is in range of (0.0, 2.0]. +// velocitySlipCorrectConstant: the correction constant to the velocity slip condition. For the diffuse reflection, 1.0 is used. +// 1.0 -- proposed by Maxwell. +// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. +// 1.146 -- proposed for an additional "fictitious" velocity slip. +// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. +// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. +// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. +// nIsChemicalFreeze: the flag to freeze the chemical reactions. +// 0 -- not freeze, the chemical reaction sources will be calculated. +// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated. +// veTemperatureMin: The minimum of Tv and Te. +// maxViscous: the maximum of Viscous. +// trTemperatureMin: the minimum value of trTemperature. +// veTemperatureMin: the minimum value of veTemperature. +// densityMin: the minimum value of density. +// tAdjustmentFactor: magnification of temperature, this value is in range of (1.0, 10.0]. +// nDebug: cout the Wrong place and abort +// 0 -- not used. +// 1 -- used. +// nSpeciesLimit: limitter of gas species +// 0 -- not used. +// 1 -- used. +// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction. +// 0 -- method 0. +// 1 -- method 1. +// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid. +// 0 -- not used. +// 1 -- used. +// nViscosityPeModified: Pe Modified for ViscosityCoef. +// 0 -- not used. +// 1 -- used. +// nChemcalSourceModified: Modified on ChemcalSource. +// 0 -- not used. +// 1 -- used. +// nChemcalSourceEsMethod: Modified on ChemcalSource. +// 0 -- approximation algorithm 1 (Ori). +// 1 -- approximation algorithm 2 (New). +// nMaxStepTemperature: the iterative steps of temperature. +// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs. +// 0 -- not used. +// 1 -- used. +// nDiagonalModified: Modified on Diagonal. +// 0 -- not used. +// 1 -- new. +// nDiagonalModifiedTurb: Modified on Diagonal for turbulence. +// 0 -- not used. +// 1 -- new. +// nGradPrimtiveMethod: +// 0 -- Ori. +// 1 -- new. +// nAblation: +// 0 -- The wall ablation is not computed. +// 1 -- The wall ablation is computed. +// isInjection: +// 0 -- The injection velocity of ablation wall is not computed. +// 1 -- The injection velocity of ablation wall is computed. +// nViscosityModel: +// 0 -- Blottner fitting method(N89). +// 1 -- Gupta fitting method(N90). +// nContinueModel: The new continue model can switch different computation model. +// 0 -- Not use the new continue model. +// 1 -- use the new continue model. +// nSutherland: +// 0 -- stands for selecting the Blotter curve fits mode. +// 1 -- stands for Sutherland relation. +// gasfile: Indicates the gas model, 9 models are provided, namely "Gu5", "Gu7", "Gu11", "Pa5", "Pa7", "Pa11", "DK5", "DK7", "DK11". +// "Gu" -- indicates the Gupta Model, three-Type Models are embeded in the library, namely, the 5-species-6-reactions, the 7-species-9-reactions, the 11-species-20-reactions. +// "Pa" -- indicates the Park Model, three-Type Models are embeded in the library, namely, the 5-species-17-reactions, the 7-species-22-reactions, the 11-species-48-reactions. +// "DK" -- indicates the Dunn-Kang Model, three-Type Models are embeded in the library, namely, the 5-species-11-reactions, the 7-species-15-reactions, the 11-species-26-reactions. +// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. +// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. +// "Gas-Mixture" -- indicates the process of mixing gas without reacting. +// for struct solver mixing two species "SpeciesA, SpeciesB". +// for unstruct solver mixing multi-species "O2 NO CO CO2 H2 N2 Air CH4". +// For self-definition model, the gasfile is used to indicate the file path of the new gas model. +// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. +// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. +// ifStartFromPerfectGasResults: The chemical reaction simulation is start from perfect gas flowfield or not, 0 is for no and else is for yes. +// nIterFirstStep : the maximum number of iteration in the first step for the self-adaptive calculation. +// nIterSecondStep: the maximum number of iteration in the second step for the self-adaptive calculation. +// nIterThirdStep : the maximum number of iteration in the third step for the self-adaptive calculation. +// nEnergyAssembly: the vibration energy is computed with combined method which includes the fitting method and the molecular kinetic theory. +// 0 -- no, +// 1 -- yes. +// nControlVariable: the variable to computing the residual error that determines the convergence is meet or not in the one-temperature model. +// 0 -- the density. +// 1 -- the translation temperature. +// 2 -- the vibration temperature. +// 3 -- the electron temperature. +// 4 -- the pressure. +// 5 -- the mass fraction of oxygen. +// 6 -- the mass fraction of nitrogen. +// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. +// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. +// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. +// useHyflowSetting: Setting for HyFLOW GUI. +// 0 -- PHengLEI. +// 1 -- HyFLOW. +// nProtectData: Use the continuation file data protection mechanism. +// 0 -- no. +// 1 -- yes. +// nTvChange: Judge whether the Tv equals Ttr. +// 0 -- yes. +// 1 -- no. +// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions. +// nFraction: the initial fractions type of species. +// 0 -- mass fraction. +// 1 -- mole fraction. +int dg_high_order = 0; +int iapplication = 0; +int isAdaptiveSolver = 0; +int nm = 5; +int nEquilibriumGas = 0; +int nPCWCycleStep = 3; +int nRETCycleStep = 3; +int nSLIPCycleStep = 3; +int nIterFirstStep = 1000; +int nIterSecondStep= 2000; +int nIterThirdStep = 2000; +int nEnergyAssembly = 0; +int nControlVariable = 1; +double firstStepError = 0.01; +double secondStepError = 0.001; +double thirdStepError = 0.001; +double predictCFLError = 0.1; + +double refGama = 1.4; +double prl = 0.72; +double prt = 0.90; +double sc_l = 0.5; +double sc_t = 0.5; + +int nGasModel = 0; +int nchem = 0; +int nchemsrc = 1; +int nchemrad = 1; +int ntmodel = 1; + +int nIdealState = 0; +int nEnergyRecycle = 1; +int nSlipBCModel = 0; +int nDensityModify = 1; +int nTEnergyModel = 0; +int nMeanFreePathType = 0; +int nIsChemicalFreeze = 0; +int nIsSuperCatalytic = 1; +int nTemperatureJump = 0; +int nSurfGradMethod = 0; +int nRapidFlowfield = 0; +int nSurfHeatMonitor = 0; +int nInitPressureStep = 100; +int nDumpCFLNumber = 0; + +double parkVDPower = 0.6; +double catalyticCoef = 0.0; +double sigmaVelocity = 1.0; +double sigmaTemperature = 1.0; +double sigmaMassFraction = 1.0; +double velocitySlipCorrectConstant = 1.0; + +double chemicalRelaxCorf = 1.0; +double chemicalSpectrumRadiusCoef = 1.0; +double viscousSpectrumRadiusCoef = 1.5; +double inviscidSpectrumRadiusCoef = 1.5; +double spectrumRadiusCoef = 0.5; +double staticPressureRelaxCorf = 0.2; + +double maxViscous = 10000.0; +double trTemperatureMin = 10.0; +double veTemperatureMin = 30.0; +double maxTemperature = 50000.0; +double densityMin = 1.0e-8; +double densityMinFactor = 0.1; +double tAdjustmentFactor = 10.0; +double iniSpeedCoef = 1.0; +int iniSpeedMode = 0; + +int nDebug = 0; +int nSpeciesLimit = 1; +int nTurblenceForChemical = 0; +int nViscosityFluxSublevelModified = 1; +int nViscosityPeModified = 0; +int nChemcalSourceModified = 2; +int nChemcalSourceEsMethod = 1; +int nMaxStepTemperature = 5; +int veTemperatureMinModified = 1; +int nDiagonalModified = 0; +int nDiagonalModifiedTurb = 0; +int nGradPrimtiveMethod = 1; +int nInviscidFluxModify = 1; +int nQlLimitMethod = 2; +int nSpeciesForWallMethod = 1; +int nDensityForWallMethod = 0; +int wallMultiTemperature = 0; + +int nProtectData = 0; +int useHyflowSetting = 0; +int nAblation = 0; +int isInjection = 0; +int nViscosityModel = 0; +int nMarsModel = 0; +int nTvChange = 0; +int isMoleFractionType = 0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.767"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.767, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767, 0.0"; + +//string gasfile = "Mars-Pa8"; +//string speciesName = "O, O2, NO, N, N2, C, CO, CO2"; +//string initMassFraction = "0.0015, 0.0429, 0.0, 0.0, 0.0, 0.0, 0.0777, 0.8779"; + +//string gasfile = "Pa"; +//string speciesName = "O, O2, NO, N, NO+, C, C2, CO, CO2, CN, N2, e-"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767, 0.0"; + +//string gasfile = "Combustion-12"; +//string speciesName = "O, O2, NO, N, C, CO, CO2, H, H2, OH, H2O, N2"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767"; + +//string gasfile = "Gas-Mixture"; +//string speciesName = "SpeciesA, SpeciesB"; +//string initMassFraction = "1.0, 0.0"; +int nSutherland = 0; +double gamaSpeciesA = 1.4; +double gamaSpeciesB = 1.3; +double molecularWeightSpeciesA = 29.0; +double molecularWeightSpeciesB = 30.0; + +//string gasfile = "Gas-Mixture"; +//string speciesName = "O2, N2"; +//string initMassFraction = "1.0, 0.0"; + +int nFraction = 0; +int nContinueModel = 0; +int ifStartFromPerfectGasResults = 0; +int isUseNoneqCond = 0; +double frozenCondition = 0.01; + +int nLeakageMonitor = 0; +double totalLeakageVolume = 1000.0; +double monitorThresholdValue = 0.05; +double sprayFactor = 0.0; + +######################################################################### +// Multi-Grid parameters. +// nMGLevel: The number of level of Multi-Grid. +// <= 1 -- Single-level. +// > 1 -- multi-level. +// MGPreIteration: For each grid, the number of pre-smoothing steps. +// n_post: For each grid, the number of post-smoothing steps. +// MGCoarsestIteration: For the coarest grid the number of smoothing steps. +// MGFasType: V-multi cycle or W-multi cycle. +// 1 -- V-multi cycle. +// 2 -- W-multi cycle. +// flowInitStep: Flow initialization step, 0 - 500 is suggested. +// Multi-Grid : Number of steps computing on coarse grid, during flow initialization. +// Single-Grid: Number of steps computing using first-order with vanleer, during flow initialization. +// mgCFLScale: CFL number enlarge times for coarse grid. +// mprol: Multi-grid interpolation method, interpolation from coarse cell to fine grid. +// 1 -- zero order. +// 2 -- first-order. (default) +// mgCorrectionLimit: Multi-grid correction limit. +int nMGLevel = 1; +int MGCoarsestIteration = 1; +int MGPreIteration = 1; +int MGFasType = 1; +int n_post = 0; +int flowInitStep = 100; +int mprol = 2; +double mgCFLScale = 1.0; +double mgCorrectionLimit = 0.01; + +//--------------- Some parameter for turbulent model -------------------- +// neasm: The variation of kw turbulent model. +// ismooth_turb: Residual smooth for turb or not. +// SSTProductType: The type of product term based on vorticity for SST. +// SAProductType: The type of product term based on vorticity for SA. +int neasm = -3; +int SSTProductType = 0; +int ismooth_turb = 0; +int SAProductType = 2; + +// ----------------- Overset Grid parameter ----------------------------- +int codeOfDigHoles = 1; +int codeOfTurbulentModel = 0; +string masterFileName = "./grid/searchFile.inp"; +string holeBasicFileName = "./grid/holeBasicFile.inp"; +string holeFullFileName = "./grid/holeFullFile.dat"; +string linkFileName = "./grid/topology.dat"; +string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; + +#************************************************************************ +# High Order Struct Solver * +#************************************************************************ +// isFVMOrFDM: +// 0 -- NSSolverStruct using Finite Volume Method. +// 1 -- NSSolverStruct using Finite Differ Method. +// SolverStructOrder: Spatial discretisation order of NS equations with struct grid. +// <= 2 -- finite volume method. +// >= 3 -- finite difference order. (to be completed) +// 0 -- default. +// str_highorder_interpolation_epsilon: Epsilon in weighted interpolation, bigger epsilon, better convergence, +// smaller epsilon, robuster for shock-detecting. +// str_highorder_interpolation_type: +// -- "classical", "test". +// str_highorder_flux_name: +// -- "roe", "steger". +// structhighordergradient: +// -- "conservation", "chain_rule". +int isFVMOrFDM = 0; +string str_highorder_solver = "WCNS"; +int SolverStructOrder = 0; +double str_highorder_interpolation_epsilon = 1.0e-6; +string str_highorder_interpolation_type = "test"; +string str_highorder_flux_name = "steger"; +string structhighordergradient = "conservation"; +double coefofstrflux = 0.5; +double limitcoefofinterface = 0.0; + +// ----------------- Advanced choices ----------------------------------- +// outtimesc: Time stepping scheme for the outer loop. +// MUSCLCoefXk: The parameter of MUSCL interpolations, belongs to [-1, 1]. +// -1 -- seconde-order fully-upwind differencing. +// 0 -- seconde-order upwind-biased differencing. +// 0.333333 -- third-order upwind-biased differencing. +// 1 -- seconde-order central differencing. +// MUSCLCoefXb: The limiter parameter. +// 0 -- the effect of the limiter is cancelled, means the first-order interpolations. +// allReduceStep: Iteration intervals for MPI AllReduce operation, default is 1. +string outtimesc = "impbd2"; +double MUSCLCoefXk = -1; +double MUSCLCoefXb = 1.0; +int allReduceStep = 1; + +// ----------------- overlap configuration ------------------------------ +// codeOfOversetGrid: Overlapping(overset) grid or not. +// 0 -- NON-overlapping grid. +// 1 -- Overlapping grid. +// oversetInterpolationMethod: the method of overset interpolation while field simulation. +// 0 -- set the acceptor cell value by donor cell value. +// 1 -- set the acceptor cell value by distance weight of donor cell value. +// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated. +// 0 -- no. +// 1 -- yes. +// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in +// the current overset grid(only for three dimension). +// 0 -- no. +// 1 -- yes. +// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid. +// 0 -- no. +// 1 -- yes. +// walldistMainZone: The initial value of background grid which does not exist wall boundary condition. +// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell. +// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region. +// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary. +// 0 -- one layer. +// 1 -- two layers. +// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region. +// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure. +// 0 -- no. +// 1 -- yes. +int codeOfOversetGrid = 0; +int oversetInterpolationMethod = 0; +int readOversetFileOrNot = 0; +int symetryOrNot = 0; +int readInAuxiliaryInnerGrid = 0; +int readInAuxiliaryOuterGrid = 0; +int readInSklFileOrNot = 0; +string auxiliaryInnerGrid0 = "./grid/aux-upper.fts"; +string auxiliaryInnerGrid1 = "./grid/aux-lower.fts"; +string auxiliaryInnerGrid2 = ""; +string oversetGridFileName = "./grid/iblank.ovs"; +double walldistMainZone = 1.0 +double toleranceForOversetSearch = 1.0e-3; +double toleranceForOversetBox = 1.0e-3; +int twoOrderInterpolationOrNot = 0; +int keyEnlargeOfActiveNodes = 0; +int outTecplotOverset = 0; +int outPutOversetVisualization = 0; +int numberOfMovingBodies = 2; + +// ----------------- ALE configuration ------------------------------ +int codeOfAleModel = 0; +int aleStartStrategy = -1; + +double referenceLength = 1.0; +double referenceVelocity = 1.0; +double referenceDensity = 1.0; + +int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd. +int strategyForGCLSource = 0; // 0-present; 1-Ahn. + +// 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton. +int methodForKineticEquation = 0; +double relaxParameterOfKinetic = 1.0; + +#************************************************************************ +# motive information * +#************************************************************************ +int numberOfMovingBodies = 1; + +############################## body0 ############################## +// mass of parts. +double mass_0 = 1.0; +// gravity of parts (along negative direction in Y-axis, eg. 9.8). +double gravity_0 = 0.0; +// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz. +double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; +// initial six DOF position information of parts. xc yc zc. +double massCenter_0[] = 0.0, 0.0, 0.0; +// if reset mass center while restart. +int resetMassCenter_0 = 0; +// position offset of parts. dx dy dz. +double massCenterDxyz_0[] = 0.0, 0.0, 0.0; +// initial six DOF position information of parts. angleX angleY angleZ. +double attitudeAngle_0[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. vc vy vz. +double massCenterVelocity_0[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. omigX omigY omigZ. +double angularVelocity_0[] = 0.0, 0.0, 0.0; +// the object that the parts belong to. +int fartherIndex_0 = -1; +// the assembly position of the parts. xc yc zc angleX angleY angleZ. +double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; +// the move pattern of the parts. +// -1 given motion partten. +// 0 still. +// 1 six DOF motion. +// 2 three DOF motion. +// 11 X-axis forced motion. +// 12 Y-axis forced motion. +// 13 Z-axis forced motion. +// 14 forced pitch motion. +// 15 forced yaw motion. +// 16 forced roll motion. +int RBDMethod_0 = 0; +double amplitude_0 = 0.0; +double reduceFrequency_0 = 0.0; +// direction of rotation. +// 1 -- clockwise from the point of view along the positive x axis. +// -1 -- anticlockwise from the point of view along the positive x axis. +int direction_0 = -1; +double rotateFrequency_0 = 0.0; +//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; +// dimensional physical time for additional force(s). +double addedForceTime_0[] = 0.0; +// dimensional massCenterPosition for additional force(s). +double addedForcePosition_0[] = 0.0, 0.0, 0.0; +// additional force(inertia system) fX fY fZ. +double addedForce_0[] = 0.0, 0.0, 0.0; +// additional moment(inertia system) mX mY mZ. +double addedMoment_0[] = 0.0, 0.0, 0.0; +// the deformation method of the parts. +int morphing_0 = 0; + +// post indentify. +int integralOrder = 4; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 6.5e6; +//@double refDimensionalTemperature = 288.15; +//@double freestream_vibration_temperature = 300.00; +//@double refDimensionalPressure = 0; +//@double height = 0; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; +//@double refDimensionalVelocity = 0; +//@double refDimensionalDensity = 0; +//@string weatherDataFilePath = "./WRFData/"; +//@double longitude = 110.95 +//@double latitude = 19.61; +#************************************************************************ +# Old Parameter * +#************************************************************************ +int isPlotVolumeField = 0; + +#************************************************************************ +# partial flow field setting Parameter * +#************************************************************************ +//int nPartialParameter = 0; // 0/1/2 +//int nNumberOfPartialField = 0; // +//int nStartGridIndex[] = [0]; +//int nEndGridIndex[] = [0]; + +//double partialCFL[] = [0.0]; +//double partialSpeedCoef[] = [0.0]; +//double partialSpeed[] = [0.0]; +//double partialAttackd[] = [0.0]; +//double partialSlide[] = [0.0]; +//double partialPressure[] = [0.0]; +//double partialTemperature[] = [0.0]; +//double partialMassFractions[] = [0.0]; + +#************************************************************************ +# Incompressible Parameter * +#************************************************************************ +int isSolveEnergyEquation = 0; +int isSolveTurbEquation = 0; +int isSolveSpeciesEquation = 0; \ No newline at end of file diff --git a/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/cfd_para_transonic.hypara b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/cfd_para_transonic.hypara new file mode 100644 index 0000000..3cd5041 --- /dev/null +++ b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/cfd_para_transonic.hypara @@ -0,0 +1,209 @@ +######################################################################### +# General Control Parameter # +######################################################################### +// maxSimuStep: The max simulation step, don't care simulation is restart or not. +// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved. +// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual 'res.dat' saved. + +int maxSimuStep = 600; +int intervalStepFlow = 200; +int intervalStepPlot = 20; +int intervalStepForce = 1; +int intervalStepRes = 1; + +######################################################################### +# Inflow Parameter # +######################################################################### +// refMachNumber: Mach number. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// inflowParaType: The type of inflow parameters. +// 0 -- the nondimensional conditions. +// 1 -- the flight conditions. +// 2 -- the experiment conditions. +// 3 -- the subsonic boundary conditions. +// refReNumber: Reynolds number, which is based unit length, unit of 1/m. +// refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition. +// refDimensionalPressure: Dimensional reference pressure, or the total pressure only for the experiment condition. +// height: Fly height, unit of km. +// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter.Common dimensions like: +// 1 dm = 0.1 m. +// 1 cm = 0.01 m. +// 1 mm = 0.001m. +// 1 inch = 0.0254m. +// 1 foot = 12 inches = 0.3048m. +// 1 yard = 3 feet = 0.9144m. +// forceRefenenceLength, forceRefenenceLengthSpanWise, forceRefenenceArea: Reference length, SpanWise length and area, independent of grid unit. +// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent of grid unit. + +int ifLowSpeedPrecon = 1; +double refMachNumber = 0.02058; +double attackd = 0.00; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 4.71229E5; +double refDimensionalTemperature = 293.15; + +//int inflowParaType = 1; +//double height = 8.0; + +//int inflowParaType = 2; +//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). +//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). + +double gridScaleFactor = 1; + +double forceReferenceLengthSpanWise = 1.0; // unit of meter. +double forceReferenceLength = 1.0; // unit of meter. +double forceReferenceArea = 1.0; // unit of meter^2. +double TorqueRefX = 0.0; // unit of meter. +double TorqueRefY = 0.0; // unit of meter. +double TorqueRefZ = 0.0; // unit of meter. + +######################################################################### +# Physical models # +######################################################################### +// viscousType : Viscous model. +// 0 -- Euler. +// 1 -- Lamilar. +// 3 -- 1eq turbulent. +// 4 -- 2eq turbulent. +// viscousName: Laminar or tubulent model. +// -- "1eq-sa", when viscousType = 3. +// -- "2eq-kw-menter-sst", when viscousType = 4. +// DESType: Type of DES. +// 0 -- RANS.(default) +// 1 -- DES. +// 2 -- DDES. +// 3 -- IDDES. + +//int viscousType = 0; +//string viscousName = "Euler"; + +int viscousType = 1; +string viscousName = "laminar"; + +//int viscousType = 3; +//string viscousName = "1eq-sa"; + +//int viscousType = 4; +//string viscousName = "2eq-kw-menter-sst"; + +int DESType = 0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 1.0; +######################################################################### +# Spatial Discretisation # +######################################################################### +#******************************************************************* +# Struct Solver * +#******************************************************************* +// inviscidSchemeName: Spatial discretisation scheme of struct grid. +// Using this when solve structered grid or hybrid. +// -- "roe", "vanleer", "ausm+up", "ausmpw". +// str_limiter_name: Limiter of struct grid. +// -- "3rdsmooth", "smooth". +// -- "nolim", no limiter. + +string inviscidSchemeName = "roe"; +string str_limiter_name = "smooth"; + +#******************************************************************* +# UnStruct Solver * +#******************************************************************* +// uns_scheme_name: Spatial discretisation scheme of Unstruct grid. +// Using this when solve Unstructered grid or hybrid. +// -- "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle". +// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpwplus". +// uns_limiter_name: Limiter of Unstruct grid. +// -- "vencat", "barth". +// -- "1st", meaning accuracy of first-order. +// -- "nolim", no limiter. +// venkatCoeff: Coefficient of vencat limiter, when uns_limiter_name = 'vencat'. +// The smaller the value, the more robust it is. + +string uns_scheme_name = "roe"; +string uns_limiter_name = "vencat"; +double venkatCoeff = 5; + +######################################################################### +# Temporal Discretisation # +######################################################################### +// iunsteady: Steady or unsteady. +// 0 -- steady. +// 1 -- unsteay. +// CFLEnd: The CFL number, [0.1, 100]. +// The bigger the value, the convergence faster but lower robustness. +// nLUSGSSweeps: Number of Sub-iteration of LU-SGS. +// 1 -- is recommended for structured solver. +// 1-3 -- is recommended for unstructured solver. + +int iunsteady = 1; +double physicalTimeStep = 0.01944; +int min_sub_iter = 30; +int max_sub_iter = 30; +double tol_sub_iter = 1.0e-5; +int aleStartStrategy = 1; +int ifStartFromSteadyResults = 0; + +int nLUSGSSweeps = 1; +int CFLMethod = 1; +double CFLStart = 0.1; +double CFLEnd = 100.0; +int CFLVaryStep = 20; +######################################################################### +# Multi-Grid parameters # +######################################################################### +// nMGLevel: The number of Multi-Grid level. +// = 1 -- single-level. +// > 1 -- multi-level. +// flowInitStep: Flow initialization step, 0 - 500 is suggested. +// Multi-Grid : Number of steps computing on coarse grid, during flow initialization. +// Single-Grid: Number of steps computing using first-order with vanleer, during flow initialization. + +int nMGLevel = 1; +int flowInitStep = 0; + +######################################################################### +# File In or Out # +######################################################################### +// gridfile: The partitioned Grid file path, using relative path, +// which is relative to the working directory. +// IMPORTANT WARNING: The file index should be ignored, +// e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts, +// Please use 'rae2822_hybrid2d__4.fts' here! +// plotFieldType: If dump out the whole field results to tecplot or not, 0 / 1. + +int plotFieldType = 1; +int visualfileType = 0; +// ----------------- Advanced Parameters, DO NOT care it ---------------- +// nVisualVariables: Number of variables want to be dumped for tecplot visualization. +// visualVariables: Variable types dumped, listed as following: +// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6), +// -- viscosityLaminar(7), viscosityTurbulent(8), +// -- vorticity_x(9), vorticity_y(10), vorticity_z(11), vorticityMagnitude(12), +// -- strain_rate(13), Q_criteria(14), Cp(15), timeStep(16), volume(17), +// -- modeledTKE(18), modeleddissipationrate(19), SSTF1(20), SSTF2(21). +// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! +// Variables order must from small to big. + +int nVisualVariables = 9; +int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 14, 15]; + +// limitVariables: Limit model (It is useful only if limitVector is 0). +// 0 -- limit only for pressure and denstiny, then get the min value. +// 1 -- limit for every variables, then get the min value. +// limitVector: +// 0 -- Each variable use the same limiter coefficient. +// 1 -- Each variable use the respective limiter coefficients. +// reconmeth: +// 0 -- When reconstruct face value, Q+, Q- use respective limiter coefficients. +// 1 -- Q+, Q- use the min limiter coefficients of left and right cell. + +int reconmeth = 1; +int limitVariables = 0; +int limitVector = 0; diff --git a/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/grid_para.hypara b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/grid_para.hypara new file mode 100644 index 0000000..4d23fbc --- /dev/null +++ b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/grid_para.hypara @@ -0,0 +1,40 @@ +######################################################################### +# Grid data type # +######################################################################### +// gridtype: Grid type for generation, conversion, reconstruction, merging. +// 0 -- Unstructured grid. +// 1 -- Structured grid. +// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating. +// axisRotateOrder : axis rotating order. +// 1 -- X-axis. +// 2 -- Y-axis. +// 3 -- Z-axis. +// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order. +// from_gtype: Type of grid data type in grid conversion process. +// -1 -- MULTI_TYPE +// 1 -- HyperFLOW( PHengLEI ), *.fts. +// 2 -- CGNS, *.cgns. +// 3 -- Plot3D type of structured grid, *.dat/*.grd. +// 4 -- Fieldview type of unstructured grid, *.dat/*.inp. +// 5 -- Fluent, *.cas/*.msh. +// 6 -- Ustar, mgrid.in. +// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. +// 8 -- GMSH, *.msh. +int gridtype = 0; +int nAxisRotateTimes = 0; +int axisRotateOrder[] = [1, 2, 3]; +double axisRotateAngles[] = [0.0, 0.0, 0.0]; +int from_gtype = 2; + +######################################################################### +# File path # +######################################################################### +// from_gfile: path of original data file for unstructure grid convert from. +// out_gfile: path of target file for grid convert to, *.fts type of file usually. +//int numberOfGridFile = 3; +//string from_gfile = "./grid/background-unstr.cgns"; +//string from_gfile1 = "./grid/downLeft-unstr.cgns"; +string from_gfile = "./grid/upRight-unstr.cgns"; +string out_gfile = "./grid/upRight-unstr.fts"; + + diff --git a/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/grid_para_convert_ref.hypara b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/grid_para_convert_ref.hypara new file mode 100644 index 0000000..4d23fbc --- /dev/null +++ b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/grid_para_convert_ref.hypara @@ -0,0 +1,40 @@ +######################################################################### +# Grid data type # +######################################################################### +// gridtype: Grid type for generation, conversion, reconstruction, merging. +// 0 -- Unstructured grid. +// 1 -- Structured grid. +// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating. +// axisRotateOrder : axis rotating order. +// 1 -- X-axis. +// 2 -- Y-axis. +// 3 -- Z-axis. +// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order. +// from_gtype: Type of grid data type in grid conversion process. +// -1 -- MULTI_TYPE +// 1 -- HyperFLOW( PHengLEI ), *.fts. +// 2 -- CGNS, *.cgns. +// 3 -- Plot3D type of structured grid, *.dat/*.grd. +// 4 -- Fieldview type of unstructured grid, *.dat/*.inp. +// 5 -- Fluent, *.cas/*.msh. +// 6 -- Ustar, mgrid.in. +// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. +// 8 -- GMSH, *.msh. +int gridtype = 0; +int nAxisRotateTimes = 0; +int axisRotateOrder[] = [1, 2, 3]; +double axisRotateAngles[] = [0.0, 0.0, 0.0]; +int from_gtype = 2; + +######################################################################### +# File path # +######################################################################### +// from_gfile: path of original data file for unstructure grid convert from. +// out_gfile: path of target file for grid convert to, *.fts type of file usually. +//int numberOfGridFile = 3; +//string from_gfile = "./grid/background-unstr.cgns"; +//string from_gfile1 = "./grid/downLeft-unstr.cgns"; +string from_gfile = "./grid/upRight-unstr.cgns"; +string out_gfile = "./grid/upRight-unstr.fts"; + + diff --git a/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/grid_para_merge_ref.hypara b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/grid_para_merge_ref.hypara new file mode 100644 index 0000000..3ec5e6a --- /dev/null +++ b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/grid_para_merge_ref.hypara @@ -0,0 +1,36 @@ +######################################################################### +# Grid data type # +######################################################################### +// gridtype: Grid type for generation, conversion, reconstruction, merging. +// 0 -- Unstructured grid. +// 1 -- Structured grid. +// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating. +// axisRotateOrder : axis rotating order. +// 1 -- X-axis. +// 2 -- Y-axis. +// 3 -- Z-axis. +// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order. +// from_gtype: Type of grid data type in grid conversion process. +// -1 -- MULTI_TYPE +// 1 -- HyperFLOW( PHengLEI ), *.fts. +// 2 -- CGNS, *.cgns. +// 3 -- Plot3D type of structured grid, *.dat/*.grd. +// 4 -- Fieldview type of unstructured grid, *.dat/*.inp. +// 5 -- Fluent, *.cas/*.msh. +// 6 -- Ustar, mgrid.in. +// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. +// 8 -- GMSH, *.msh. +int gridobj = 3; +int gridtype = 0; + +######################################################################### +# File path # +######################################################################### +// from_gfile: path of original data file for unstructure grid convert from. +// out_gfile: path of target file for grid convert to, *.fts type of file usually. +//string from_gfile = "./grid/upRight-unstr.fts"; +//string out_gfile = "./grid/upRight-unstr_merge.fts"; +string from_gfile = "./grid/downLeft-unstr.fts"; +string out_gfile = "./grid/downLeft-unstr_merge.fts"; + + diff --git a/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/key.hypara b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/key.hypara new file mode 100644 index 0000000..8a611ef --- /dev/null +++ b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/key.hypara @@ -0,0 +1,65 @@ +string title = "PHengLEI Main Parameter Control File"; + +// IMPORTANT NOTICE: DON NOT MODIFY THE FOWLLOWING LINE. +string defaultParaFile = "./bin/cfd_para.hypara"; + +// ndim: Dimensional of the grid, 2 or 3. +// nparafile: the number of parameter files. +// nsimutask: simulation task type. +// 0 -- CFD Solver of NS or Turbulation. +// 1 -- Grid generation: for special typical cases, such as cylinder, flat plate, etc. +// Grid conversion: from other format to PHengLEI format (.fts). +// Grid reconstruction: such as grid adaptation. +// Grid merging: merge two blocks into one block. +// Grid repairing: repair the original grid in order to remove the negative volume cells. +// 2 -- Wall distance computation for turb-solver. +// 3 -- Grid partition. +// 4 -- Knowledge repository / examples of PHengLEI-API. +int ndim = 3; +int nparafile = 3; + +int nsimutask = 0; +//string parafilename = "./bin/cfd_para_subsonic.hypara"; +string parafilename = "./bin/cfd_para_transonic.hypara"; +//string parafilename = "./bin/cfd_para_supersonic.hypara"; +//string parafilename = "./bin/cfd_para_hypersonic.hypara"; +//string parafilename = "./bin/incompressible.hypara"; + +string parafilename1 = "./bin/overset_config.hypara"; +string parafilename2 = "./bin/kinetic_para.hypara"; + +//int nsimutask = 1; +//string parafilename = "./bin/grid_para.hypara"; + +//int nsimutask = 2; +//string parafilename = "./bin/cfd_para.hypara"; + +//int nsimutask = 3; +//string parafilename = "./bin/partition.hypara"; + +//int nsimutask = 1; +//string parafilename = "./bin/grid_deform_para.hypara"; + +//int nsimutask = 4; +//string parafilename = "./bin/repository.hypara"; + +//int nsimutask = 5; +//string parafilename = "./bin/overset_grid_view.hypara"; + +//int nsimutask = 6; +//string parafilename = "./bin/overset_config.hypara"; + +//int nsimutask = 13; +//string parafilename = "./bin/lbm_para.hypara"; + +//int nsimutask = 14; +//string parafilename = "./bin/integrative_solver.hypara"; + +//int nsimutask = 99; +//string parafilename = "./bin/post_processing.hypara"; + +// ---------------- Advanced Parameters, DO NOT care it ---------------- +int numberOfGridProcessor = 0; +// ATP read +//@string parafilename1 = "" +//@string parafilename2 = ""; diff --git a/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/kinetic_para.hypara b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/kinetic_para.hypara new file mode 100644 index 0000000..a9d809c --- /dev/null +++ b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/kinetic_para.hypara @@ -0,0 +1,119 @@ +######################################################################### +# Parameter for RBD # +######################################################################### +int codeOfAleModel = 1; + +int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; + +######################################################################### +# motive information # +######################################################################### +//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton +int methodForKineticEquation = 0; +double relaxParameterOfKinetic = 1.0; +int numberOfMovingBodies = 3; + +############################## body0 ############################## +// mass of parts. +double mass_0 = 1.0; +// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz +double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; +// initial six DOF position information of parts. xc yc zc. +double massCenter_0[] = 0.0 , 0.0, 0.0; +// initial six DOF position information of parts. angleX angleY angleZ. +double attitudeAngle_0[] = 0.0 , 0.0, 0.0; +// initial six DOF move information of parts. vc vy vz. +double massCenterVelocity_0[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. omigX omigY omigZ. +double angularVelocity_0[] = 0.0, 0.0, 0.0; +// the object that the parts belong to. +int fartherIndex_0 = -1; +// the assembly position of the parts. xc yc zc angleX angleY angleZ. +double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0; +// the moving method of parts. +int RBDMethod_0 = 0; +double amplitude_0 = 0.0; +double reduceFrequency_0 = 0.0; +// additional force(inertia system) fX fY fZ. +double addedForce_0[] = 0.0 ,0.0 ,0.0 ; +// additional moment(inertia system) mX mY mZ. +double addedMoment_0[] = 0.0 ,0.0 ,0.0 ; +// the deformation method of the parts. +int morphing_0 = 0; + +############################## body1 ############################## +// mass of parts. +double mass_1 = 1.0; +// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz +double massMatrix_1[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; +// initial six DOF position information of parts. xc yc zc. +double massCenter_1[] = 0.0, 0.0, 0.0; +// initial six DOF position information of parts. angleX angleY angleZ. +double attitudeAngle_1[] = 0.0 , 0.0, 0.0; +// initial six DOF move information of parts. vc vy vz. +double massCenterVelocity_1[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. omigX omigY omigZ. +double angularVelocity_1[] = 0.0, 0.0, 0.0; +// the object that the parts belong to. +int fartherIndex_1 = -1; +// the assembly position of the parts. xc yc zc angleX angleY angleZ. +double configPamameter_1[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0; +// the moving method of parts. +int RBDMethod_1 = 17; +int direction_1 = -1; +//Angle = rotateFrequency/refDimensionalVelocity*physicalTimeStep*360 per step +//RPM-r/min = rotateFrequency*60 +double rotateFrequency_1 = 1.2; + +// gravity of parts (along negative direction in Y-axis, eg. 9.8). +double gravity_1 = 0.0; + +// dimensional physical time for additional force(s). +double addedForceTime_1[] = 0.0; + +// dimensional massCenterPosition for additional force(s). +double addedForcePosition_1[] = 0.0, 0.0, 0.0; +// additional force(inertia system) fX fY fZ. +double addedForce_1[] = 0.0 ,0.0 ,0.0 ; +// additional moment(inertia system) mX mY mZ. +double addedMoment_1[] = 0.0 ,0.0 ,0.0 ; +// the deformation method of the parts. +int morphing_1 = 0; +############################## body2 ############################## +// mass of parts. +double mass_2 = 1.0; +// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz +double massMatrix_2[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; +// initial six DOF position information of parts. xc yc zc. +double massCenter_2[] = 0.0, 0.0, 0.0; +// initial six DOF position information of parts. angleX angleY angleZ. +double attitudeAngle_2[] = 0.0 , 0.0, 0.0; +// initial six DOF move information of parts. vc vy vz. +double massCenterVelocity_2[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. omigX omigY omigZ. +double angularVelocity_2[] = 0.0, 0.0, 0.0; +// the object that the parts belong to. +int fartherIndex_2 = -1; +// the assembly position of the parts. xc yc zc angleX angleY angleZ. +double configPamameter_2[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0; +// the moving method of parts. +int RBDMethod_2 = 17; +int direction_2 = -1; +// Angle = rotateFrequency/refDimensionalVelocity*physicalTimeStep*360 per step +// RPM-r/min = rotateFrequency*60 +double rotateFrequency_2 = 1.2; + +// gravity of parts (along negative direction in Y-axis, eg. 9.8). +double gravity_2 = 0.0; + +// dimensional physical time for additional force(s). +double addedForceTime_2[] = 0.0; + +// dimensional massCenterPosition for additional force(s). +double addedForcePosition_2[] = 0.0, 0.0, 0.0; +// additional force(inertia system) fX fY fZ. +double addedForce_2[] = 0.0 ,0.0 ,0.0 ; +// additional moment(inertia system) mX mY mZ. +double addedMoment_2[] = 0.0 ,0.0 ,0.0 ; +// the deformation method of the parts. +int morphing_2 = 0; diff --git a/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/overset_config.hypara b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/overset_config.hypara new file mode 100644 index 0000000..fbba836 --- /dev/null +++ b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/overset_config.hypara @@ -0,0 +1,49 @@ +// ----------------- overlap configuration ------------------------------ +// numberOfGridGroups: The number of grid groups. +// codeOfOversetGrid: Overlapping(overset) grid or not. +// 0 -- NON-overlapping grid. +// 1 -- Overlapping grid. +// oversetInterpolationMethod: the method of overset interpolation while field simulation. +// 0 -- set the acceptor cell value by donor cell value. +// 1 -- set the acceptor cell value by distance weight of donor cell value. +// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated. +// 0 -- no. +// 1 -- yes. +// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in +// the current overset grid(only for three dimension). +// 0 -- no. +// 1 -- yes. +// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid. +// 0 -- no. +// 1 -- yes. +// walldistMainZone: The initial value of background grid which does not exist wall boundary condition. +// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell. +// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region. +// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary. +// 0 -- one layer. +// 1 -- two layers. +// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region. +// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure. +// 0 -- no. +// 1 -- yes. +int codeOfOversetGrid = 1; +int numberOfGridGroups = 3; + +string gridfile = "./grid/background-unstr__64.fts"; +string gridfile1 = "./grid/downLeft-unstr_merge__64.fts"; +string gridfile2 = "./grid/upRight-unstr_merge__64.fts"; + +double toleranceForOversetBox = 0.00001; +int symetryOrNot = 0; +int readInAuxiliaryInnerGrid = 0; +int twoOrderInterpolationOrNot = 0; +int keyEnlargeOfActiveNodes = 0; + +int nCommunicateCellIBlank = 2; +int outTecplotOverset = 0; +int outPutOversetVisualization = 0; + +int oversetInterpolationMethod = 0; +int oversetGridConfigMethod = 1; +int nLayerOfCellsOfCutting = 3; +double walldistMainZone = 5.0; diff --git a/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/partition.hypara b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/partition.hypara new file mode 100644 index 0000000..7ceda49 --- /dev/null +++ b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/bin/partition.hypara @@ -0,0 +1,28 @@ +// pgridtype: The grid type. +// 0 -- unstruct grid. +// 1 -- struct grid. +// maxproc: The number of partition zones that want to be divided into, +// which is equal to the number of CPU processors you want. +// Usually, 50~100 thousands structured cells per CPU-Core is suggested. +// 30~70 thousands unstructured cells per CPU-Core is suggested. +// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts). +// partition_grid_file: Target partition grid file(PHengLEI type, *.fts). + +int numberOfGridFile = 3; +int pgridtype = 0; +int pgridtype1 = 0; +int pgridtype2 = 0; +int maxproc = 64; +int maxproc1 = 64; +int maxproc2 = 64; + +string original_grid_file = "./grid/background-unstr.fts"; +string original_grid_file1 = "./grid/downLeft-unstr_merge.fts"; +string original_grid_file2 = "./grid/upRight-unstr_merge.fts"; + + +// numberOfMultigrid: Number of multi-grid levels, ONLY used for structured grid. +// 1 -- single level. +// 2 -- 2 level. +// N -- N level,..., et al. +int numberOfMultigrid = 1; diff --git a/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/grid/网格地址.txt b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/grid/网格地址.txt new file mode 100644 index 0000000..899f977 --- /dev/null +++ b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/grid/网格地址.txt @@ -0,0 +1,5 @@ +红山开源风雷算例库原始网格获取百度网盘链接: +链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA +提取码:w47m + +注:plot3D格式网格需同时下载.grd和.inp文件 \ No newline at end of file diff --git a/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/非结构三维NREL Phase Ⅵ风轮叶片非定常计算_算例说明文档.pdf b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/非结构三维NREL Phase Ⅵ风轮叶片非定常计算_算例说明文档.pdf new file mode 100644 index 0000000..d7d550c Binary files /dev/null and b/F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU/非结构三维NREL Phase Ⅵ风轮叶片非定常计算_算例说明文档.pdf differ diff --git a/README.md b/README.md index 08fcb76..bcef718 100644 --- a/README.md +++ b/README.md @@ -76,11 +76,13 @@ B 非结构 | 二维非结构S-K低速平板转捩模拟 | B17_TwoD_Plate_S-KSR_SST_Unstruct_4CPU | | 三维非结构CRM-HL高升力外形模拟 | B18_ThreeD_CRM-HL_Level-B_SA_Unstruct_1024CPU | | 三维非结构TrapWing外形模拟 | B19_ThreeD_TrapWing_SA_AoA13_256CPU | -| 二维非结构NACA0012低速绕流(Gmresh) | B20_TwoD_NACA0012_SA_Gmresh_Unstruct_1CPU | -| 三维非结构球头高速绕流(Gmresh) | B21_ThreeD_Sphere_Laminar_Gmresh_Unstruct_1CPU | +| 二维非结构NACA0012低速绕流(GMRES) | B20_TwoD_NACA0012_SA_GMRES_Unstruct_1CPU | +| 三维非结构球头高速绕流(GMRES) | B21_ThreeD_Sphere_Laminar_GMRES_Unstruct_1CPU | | 三维非结构Rotor67转子叶片(多参考系) | B22_ThreeD_Rotor67_SngleZone_RotatingFrame_6CPU | | 三维非结构Stage35(多参考系、掺混面) | B23_ThreeD_Stage35_MultiZone_MixingPlane_1CPU | | 三维非结构Aachen 涡轮(周期边界) | B24_ThreeD_Aachen-row1_SngleZone_Periodicity_4CPU | +| 二维非结构圆柱(定常低速预处理) | B25_TwoD_Cylinder_Laminar_LowSpeed_Steady_Unstruct_4CPU | +| 二维非结构圆柱(非定常低速预处理) | B26_TwoD_Cylinder_Laminar_LowSpeed_Unsteady_Unstruct_4CPU | C 混合 @@ -112,18 +114,19 @@ E LES F 重叠网格、动网格 | 中文 | 英文 | -| :------------------------- | :--------------------------------- | -| 二维结构30p30n重叠网格装配 | F01_TwoD_30p30n_OversetGrid_SA_Struct_4CPU | -| 三维结构多弹体重叠网格装配 | F02_ThreeD_duodan_OversetGrid_SA_Struct_8CPU | -| 二维非结构双0012重叠网格装配 | F03_TwoD_Dual0012_OversetConfig_Unstruct_4CPU | -| 二维非结构双0012重叠网格计算 | F04_TwoD_Dual0012_OversetGrid_InvisCal_Unstruct_4CPU | -| 三维非结构AEDC吊舱分离重叠网格装配 | F05_ThreeD_AEDC_OversetConfig_Unstruct_8CPU | -| 三维非结构AEDC吊舱分离非定常计算 | F06_ThreeD_AEDC_Separation_OversetGrid_Unsteady
_InvisCal_Unstruct_8CPU | -| 二维结构NACA0012翼型俯仰振荡 | F07_TwoD_NACA0012_PitchingMovement_SA_Struct_4CPU | -| 三维结构Finner弹体俯仰振荡 | F08_ThreeD_Finner_Laminar_Ma2d5_Struct_16CPU | -| 鸟类扑翼网格变形(弹簧法) | F09_ThreeD_Brid_GridDeformationSPRING_Unstruct_1CPU | -| 鸟类扑翼网格变形(RBF方法) | F10_ThreeD_Brid_GridDeformationRBF_Unstruct_1CPU | -| 非结构三维M6机翼并行加密 | F11_ThreeD_M6_GridParallelRefine_Unstruct_4CPU | +| :----------------------------------------------------------- | :----------------------------------------------------------- | +| 二维结构30p30n重叠网格装配 | F01_TwoD_30p30n_OversetGrid_SA_Struct_4CPU | +| 三维结构多弹体重叠网格装配 | F02_ThreeD_duodan_OversetGrid_SA_Struct_8CPU | +| 二维非结构双0012重叠网格装配 | F03_TwoD_Dual0012_OversetConfig_Unstruct_4CPU | +| 二维非结构双0012重叠网格计算 | F04_TwoD_Dual0012_OversetGrid_InvisCal_Unstruct_4CPU | +| 三维非结构AEDC吊舱分离重叠网格装配 | F05_ThreeD_AEDC_OversetConfig_Unstruct_8CPU | +| 三维非结构AEDC吊舱分离非定常计算 | F06_ThreeD_AEDC_Separation_OversetGrid_Unsteady
_InvisCal_Unstruct_8CPU | +| 二维结构NACA0012翼型俯仰振荡 | F07_TwoD_NACA0012_PitchingMovement_SA_Struct_4CPU | +| 三维结构Finner弹体俯仰振荡 | F08_ThreeD_Finner_Laminar_Ma2d5_Struct_16CPU | +| 鸟类扑翼网格变形(弹簧法) | F09_ThreeD_Brid_GridDeformationSPRING_Unstruct_1CPU | +| 鸟类扑翼网格变形(RBF方法) | F10_ThreeD_Brid_GridDeformationRBF_Unstruct_1CPU | +| 非结构三维M6机翼并行加密 | F11_ThreeD_M6_GridParallelRefine_Unstruct_4CPU | +| 非结构三维NREL PhaseⅥ风轮叶片 | F12_ThreeD_NRELPhaseⅥ_Laminar_OversetGrid_LowSpeed_Unsteady_Unstruct_64CPU | G 非平衡 @@ -177,11 +180,13 @@ X 用户分享算例 -Y 天河分支GPU算例 +Y 异构计算算例 | 中文 | 英文 | | :----------------------------------------------------------- | :----------------------------------------------------------- | -| 三维非结构客机标模模拟 | Y01_ThreeD_Chnt_SA_Unstruct_Branch_TH | +| 三维非结构客机标模模拟(天河分支) | Y01_ThreeD_Chnt_SA_Unstruct_Branch_TH | +| 三维非结构M6机翼(华为昇腾分支) | Y02_ThreeD_M6_Unstruct_Branch_Ascend | +| 三维非结构M6机翼(MC-LUSGS 天河分支) | Y03_ThreeD_M6_MC-LUSGS_Unstruct_Branch_TH | diff --git a/Y03_ThreeD_M6_MC-LUSGS_Unstruct_Branch_TH/bin/cfd_para.hypara b/Y03_ThreeD_M6_MC-LUSGS_Unstruct_Branch_TH/bin/cfd_para.hypara new file mode 100644 index 0000000..29b35c1 --- /dev/null +++ b/Y03_ThreeD_M6_MC-LUSGS_Unstruct_Branch_TH/bin/cfd_para.hypara @@ -0,0 +1,697 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// PPPPP H H EEEEE N N GGGGG L EEEEE III + +// P P H H E NN N G L E I + +// PPPPP HHHHH EEEEE N N N G GG L EEEEE I + +// P H H E N N N G G L E I + +// P H H EEEEE N N GGGGG LLLLL EEEEE III + +//------------------------------------------------------------------------+ +// Platform for Hybrid Engineering Simulation of Flows + +// China Aerodynamics Research and Development Center + +// (C) Copyright, Since 2010 + +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +######################################################################### +# Default parameters for Grid conversion # +######################################################################### +// gridtype: Grid type for generation, conversion, reconstruction, merging. +// 0 -- Unstructured grid. +// 1 -- Structured grid. +// 2 -- Hybrid grid, include both of unstructured and structured grid. +// gridobj: Task type of grid treatment. +// 0 -- Grid generation of typical case, such as cylinder, flat plate, etc. +// 1 -- Grid conversion, from other grid data to PHenglEI( HyperFLOW ), such as Fluent, CGNS. +// 2 -- Grid refinement. +// 3 -- Grid merging, merge two blocks into one block. +// 5 -- Grid repairing, repair the original grid in order to remove the negative volume cells. +// 6 -- Grid mirroring, mirror a symmetry grid to whole grid. +// multiblock: Multi-block grid or not, only for structured grid conversion. +// 0 -- Not. +// 1 -- Yes. +// grid_database_index: Case of typical case, only for gridobj=0. +// 1 - Laminar flat plate of subsonic flow. +// 2 - Laminar flat plate of supersonic flow. +// 3 - Turbulent flat plate of subsonic flow. +// 4 - Turbulent flat plate of supersonic flow. +// iadapt: Adaptation number for unstructure grid. +// iovrlap: Overlapping( overset ) grid or not. +// 0 -- NON-overlapping grid. +// 1 -- Overlapping grid. +// SymmetryFaceVector: The vector of symmetry face. +// 0 -- X axis. +// 1 -- Y axis. +// 2 -- Z axis. +int gridtype = 0; +int gridobj = 1; +int multiblock = 1; +int grid_database_index = 3; +int iadapt = 0; +int iovrlap = 0; +int SymmetryFaceVector = 1; + +// axisup: Type of Cartisien coordinates system, used in grid conversion. +// 1 -- Y upward. (default) +// 2 -- Z upward. +int axisup = 1; + +// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". +// 0 -- Interface. (default) +// 1 -- Physical boundary condition, used in Hybrid solver. +int omit_no_bound_bc = 0; + +//----------------------------------------------------------------------- +# Grid data type # +//----------------------------------------------------------------------- +// from_gtype/to_gtype: Type of grid data type in grid conversion process. +// -1 -- MULTI_TYPE +// 1 -- HyperFLOW( PHengLEI ), *.fts. +// 2 -- CGNS, *.cgns. +// 3 -- Plot3D type of structured grid, *.dat/*.grd. +// 4 -- Fieldview type of unstructured grid, *.dat/*.inp. +// 5 -- Fluent, *.cas/*.msh. +// 6 -- Ustar, mgrid.in. +// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. +// 8 -- GMSH, *.msh. +int from_gtype = 2; +int to_gtype = 1; + +//----------------------------------------------------------------------- +# File path # +//----------------------------------------------------------------------- +// from_gfile: path of original data file for unstructure grid convert from. +// out_gfile: path of target file for grid convert to, *.fts type of file usually. +string from_gfile = "./grid/rae2822_hybrid2d.cas"; +string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; + +// ---------------- some advanced choices ----------------------------- +// iunsteady: The Grid is for unsteady simulation or not. +int iunsteady = 0; +int iale = 0; + +// fileformat : Ustar Grid file format. +// 0 --- ASCII +// 1 --- BINARY +int fileformat = 0; + +// .skl meaning skeleton. +string original_grid_info_file = "./grid/FLUENT_test.skl"; + +// Parameters for hybrid solver. +string mixgrid_uns = "./grid/rae2822_uns2d_4.fts"; +string mixgrid_str = "./grid/flat_laminr_133_85_2d.fts"; +string mixgrid_str_bc = "./grid/flat_laminr_133_85_2d.inp"; + +// Some parameters for structured overlapping grid of GuoYongHeng start. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +######################################################################### +# Default parameters for Partition # +######################################################################### +// pgridtype: The grid type. +// 0 -- unstruct grid +// 1 -- struct grid +// 2 -- refine structured grid. +// maxproc: The number of partition zones that want to be divided into. +int pgridtype = 0; +int maxproc = 4; + +//----------------------------------------------------------------------- +# File path # +//----------------------------------------------------------------------- +// original_grid_file : original grid file that want to be divided(HyperFLOW/PHengLEI type, *.fts). +// partition_grid_file : target partition grid file(HyperFLOW/PHengLEI type, *.fts). +string original_grid_file = "./grid/rae2822_hybrid2d.fts"; +string partition_grid_file = "./grid/rae2822_hybrid2d__4.fts"; + +// ------------------ Sompe advanced parameters ------------------------ +// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". +// 0 -- Interface. (default) +// 1 -- Physical boundary condition, used in Hybrid solver. +// npartmethod: Method of interface reconstruction, default 1. +// parallelPartMethod: Method of parallel partition, this is set only when execute parallel partition.It would be skipped when serial partition. +// 1 -- Using ParMetis for homogeneous MPI. +// 2 -- Using Metis for homogeneous MPI. +// 3 -- using METIS partition for homogeneous OpenMP. +// parmetisBalance: is used to specify the imbalance tolerance. +// 1 -- perfect balance; +// maxproc -- perfect imbalance; +// 1.05 -- recommended. + +int omit_no_bound_bc = 0; +int npartmethod = 1; +int parallelPartitionMethod = 2; +double parmetisBalance = 1.05; + +// Number of multi-grid levels, ONLY used for structured grid. +// 1 -- single level, 2 -- 2 level, N -- N level, ..., et all. +int numberOfMultigrid = 1; + + +######################################################################### +# Default parameters for CFD simulation # +######################################################################### +// maxsimustep: the max simulation step, don't care simulation is restart or not. +// ndisk: the step intervals for 'flow.dat ' saved. +// nplotsave: the step intervals for 'tecflow.dat ' saved. +// nforcsave: the step intervals for 'aircoef.dat ' saved. +// nressave: the step intervals for 'res.dat ' saved. +// precon: precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default) +// 1 -- carry out precondition process. + +int ndisk = 1000; +int maxsimustep = 20000; + +int nplotsave = 1000; +int nforcsave = 100; +int nressave = 10; +int precon = 0; + +// m_block_proc: Method of grid zone distribution among different processors. +// 0 -- Each zone is distributed by grid partition. (default) +// 1 -- Each zone is distributed randomly. +//compressible: 0 for incompressible flow, 1 for compressible flow (default). + +int compressible = 1; + +//----------------------------------------------------------------------- +# CFD Control Parameter # +//----------------------------------------------------------------------- +// attackd: Angle of attack. +// sideslipd: Angle of yaw. +// reference_mach_number: Mach number. +// reynolds: Reynolds number, which is based unit length, unit of 1/m. +// reference_temperature_dimensional: dimensional reference temperature, or the total temperature only for the experiment condition. +// reference_pressure_dimensional: dimensional reference pressure , or the total pressure only for the experiment condition. +// height: Fly height, unit of km. +// inflowParaType: the type of inflow parameters. +// 0 - the nondimensional conditions. +// 1 - the flight conditions. +// 2 - the experiment conditions. +// 3 - the subsonic boundary conditions. +// twall: Temprature of the solid wall, minus value is for adiabatic boundary condition. +// dump_Q: Dump out thermal flux Q of solid wall. +// 0 - no dump out. +// 1 - dump out wall Q only. +// 2 - dump out wall Q & the typical position Q of ball. +// 3 - dump out wall Q & the typical position Q of cone. +// 4 - dump out wall Q & the typical position Q of double sphere. +// Qstag: The Q of the stagnation point, calculated by Fay-Riddle formula. +// gridUnit: The unit of the grid. +// 0 - meter. +// 1 - decimeter, 1 dm = 0.1 m. +// 2 - centimeter, 1 cm = 0.01 m. +// 3 - millimeter, 1 mm = 0.001m. +// 4 - inch, 1 inch = 0.0254m. +// 5 - foot, 1 foot = 12 inches = 0.3048m. +// 6 - yard, 1 yard = 3 feet = 0.9144m. +// forceRefenenceLength, forceRefenenceArea: Reference length and area, independent of grid unit. +// forceRefenenceX, forceRefenenceY, forceRefenenceZ: Reference point, independent of grid unit. + +double reference_mach_number = 0.73; +double attackd = 2.79; +double sideslipd = 0.00; + +int inflowParaType = 0; +double reynolds = 6.5e6; +double reference_temperature_dimensional = 288.15; + +//int inflowParaType = 1; +//double height = 0.001; + +//int inflowParaType = 2; +//double reference_temperature_dimensional = 6051.024; //the total temperature, T*(1+(gama0-1)*M*M/2). +//double reference_pressure_dimensional = 4.299696E09; //the total pressure, p*(T0/T)^(gama0/(gama0-1)). + +//int inflowParaType = 3; +//int nsubsonicInlet = 1; +//int nsubsonicOutlet = 1; +//string inLetFileName = "./bin/subsonicInlet.hypara"; +//string outLetFileName = "./bin/subsonicOutlet.hypara"; +//double reference_temperature_dimensional = 288.144; +//double reference_pressure_dimensional = 1.01313E05; + + +double twall = -1.0 ; +int dump_Q = 0; +double Qstag = 1.825e-3; + +int gridUnit = 0; + +double forceRefenenceLength = 1.0; +double forceRefenenceLengthSpanWise = 1.0; +double forceRefenenceArea = 1.0; +double forceRefenenceX = 0.0; +double forceRefenenceY = 0.0; +double forceRefenenceZ = 0.0; + +int directionMethod = 2; // 1 -- using direciton; 2 -- using face normal. +double totalP_inlet = 1.2e6; +double totalT_inlet = 1300; +double direction_inlet[3] = 1, 0, 0; + +double totalP_outlet = 17.8571428; +double totalT_outlet = 1.0; +double direction_outlet[3] = 1, 0, 0; + +//----------------------------------------------------------------------- +# Spatial Discretisation # +//----------------------------------------------------------------------- +#******************************************************************* +# Struct Solver * +#******************************************************************* +// str_scheme_name: Spatial discretisation scheme of struct grid +// Using this when solve structered grid or hybrid. +// - "vanleer", "steger", "hlle", "lax_f" +// - "roe","modified_roe" +// - "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw" +// str_limiter_name: Limiter of struct grid +// - "vanalbada", "vanleer", "minmod", "smooth" "minvan" "3rdsmooth" "3rd_minmod_smooth" +// - "nolim" - no limiter +// - "vanalbada_clz" clz supersonic version +string str_scheme_name = "roe"; +string str_limiter_name = "vanalbada"; + +#******************************************************************* +# UnStruct Solver or Common * +#******************************************************************* +// iviscous: Viscous model +// 0 - Euler +// 1 - Lamilar +// 2 - Algebraic +// 3 - 1eq turbulent +// 4 - 2eq turbulent +// visname : Laminar or tubulent model +// - "0eq-bl" +// - "1eq-sa" +// - "2eq-kw-menter-sst" +// - "2eq-kw-menter-bsl" +// - "2eq-kw-wilcox-1988" +// - "2eq-kw-wilcox-1998" +// - "2eq-kw-kok-tnt" +// - "2eq-kw-wilcox-2006" +// - "easm-kw-2003" +// - "easm-kw-2005" +// codeofDES : Type of DES +// 0 - RANS (default); +// 1 - DES; +// 2 - DDES; +// 3 - IDDES; +// uns_scheme_name: Spatial discretisation scheme of Unstruct grid +// Using this when solve Unstructered grid or hybrid. +// - "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle" +// - "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpwplus" +// uns_limiter_name: Limiter of Unstruct grid +// - "barth", "vencat", "vanleer", "minmod" +// - "vanalbada", "smooth", "nnd", "lpz", "1st", +// - "nolim" - no limiter +// uns_vis_name: Discretisation method of viscous term. +// - "std", "test", "aver", "new1", "new2" +// uns_gradient: Gradient reconstruction method +// - "default", "ggcell", "ggnode", "lsq" +// ivencat: Variation of vencat limiter +// 0 - org method, it is independent of grid scale +// 1 - new method, it is dependent of grid scale +// 4 - Ustar limiter model, without grid size unitary. +// 7 - default used. +// eps_vencat: Cofficient of vencat, when using vencat limter +// limit_mode: limit model. +// 0 - limit only for pressure and denstiny, then get the min value +// 1 - limit for every variables, then get the min value +// limiter_vec: +// 0 - Each variable use the same limiter coefficient. +// 1 - Each variable use the respective limiter coefficients. +// reconmeth: +// 0 - When reconstruct face value, Q+, Q- use respective limiter coefficients. +// 1 - Q+, Q- use the min limiter coefficients of left and right cell. +// nentrfix: Entropy fix. +// 1 - common entropy fix. +// 2 - Harte's method, to be continued. +// 3 - Method in ZYB 's Doctor thesis, to be continued. +// 4 - Method in Ustar. +// alf_l, alf_n: Entropy fix cofficient for Roe scheme. + +//int iviscous = 0; +//string visname = "Euler"; + +//int iviscous = 1; +//string visname = "laminar"; + +int iviscous = 3; +string visname = "1eq-sa"; + +//int iviscous = 4; +//string visname = "2eq-kw-menter-sst"; + +int codeofDES = 0; + +string uns_scheme_name = "roe"; +string uns_limiter_name = "vencat"; +string uns_vis_name = "test"; +string uns_gradient_name = "ggnode"; + +int ivencat = 7; +double eps_vencat = 5.0; +int reconmeth = 1; +int limit_mode = 0; +int limiter_vec = 0; +double limit_angle = 0; +double skewnessAngle = 60.0; + +int nentrfix = 1; +double alf_l = 0.0001; +double alf_n = 0.0001; + +//----------------------------------------------------------------------- +# Temporal Discretisation # +//----------------------------------------------------------------------- +// iunsteady: Steady or unsteady. +// 0 - steady +// 1 - unsteay +// physicalTimeStep: the nondimensional physical time step. +// startFromSteady: the unsteady simulation is start from steady flowfield or not, 0 is for no and else is for yes. +// statisticsDES: Statistical variables for DES simulation. +// startStatisticStep: Outer step when start statistics. +// when the value is larger than "maxsimustep", it is useless. +// min_sub_iter: the min sub iteration of unsteady simulation. +// max_sub_iter: the max sub iteration of unsteady simulation. +// tol_sub_iter: the tolerance of sub iteration of unsteady simulation. +// tscheme: Temporal Discretisation method +// 1 - Runge-Kutta Multi-State +// 2 - Point implicit +// 3 - Full implicit +// 4 - LU-SGS +// 5 - Block LU-SGS +// 6 - Jacobian iteration +// 7 - Lower G-S iteration +// 8 - Upper G-S iteration +// 9 - Lower/Upper G-S iteration +// iSimplifyViscousTerm: Simplify the computation of viscous term in the Block LU-SGS method. The default value assigns 1 that could speed up the computation. +// Otherwise, the viscous Jacobian matrix Mv should be computed that will increase the memory and time in iteration of the BLUSGS method. +// cfl_start: Started cfl +// cfl_end: End cfl +// cfl_nstep: The number of step when cfl increase from cfl_start to cfl_end +// ktmax: Dtratio. dt[i] = MIN( dt[i], ktmax * dtmin / vol[i] ) +// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default 0. +// sweeps: Sub iteration of LU-SGS or Block LU-SGS. +// epsilon: Sub iter tolerance of LU-SGS or Block LU-SGS. +// ntmst: Time step method +// 0 - Local +// 1 - Gloable +// n_state: The number of Runge-Kutta step +// lamda: Cofficient of Runge-Kutta step + +int iunsteady = 0; +double physicalTimeStep = 0.01; +int startFromSteady = 0; +int statisticsDES = 0; +int startStatisticStep = 800000; + +int min_sub_iter = 50; +int max_sub_iter = 50; +double tol_sub_iter = 0.01; + +int tscheme = 1; +int iSimplifyViscousTerm = 1; +double cfl_start = 0.001; +double cfl_end = 0.1; +int cfl_nstep = 500; + +double ktmax = 1.0e10; + +int swapDq = 1; + +int sweeps = 1; +double epsilon = 0.1; +int turb_sweeps = 1; +double turb_epsilon = 0.1; + +int ismooth_ns = 0; +int icalvis = 1; +int vis_run = 1; +int iupdate = 1; +int order = 2; + +double limit_p = 3.0; +double limit_r = 3.0; +double visl_min = 0.01; +int nnegtive_max = 0; + +double cflturb = 1.0; +double timemax = 1.0e10; +double dtsave = -1.0; +int iale = 0; +int ialetype = 2; +int maxale = 10; +int ntmst = 0; +double dtau = 0.001; +double dtau_max = 1E-01; + +int iwallfunction = 0; + + +int n_stage = 2; +double lamda[2] = 0.5, 1.0; + +//int n_stage = 1; +//double lamda[1] = 1.0; + +//int n_stage = 4; +//double lamda[4] = 0.25,0.33333333333,0.5,1.0; + +//----------------------------------------------------------------------- +# File In or Out # +//----------------------------------------------------------------------- +// gridfile: The partitioned Grid file path, using relative path, +// which is relative to the working directory. +// IMPORTANT WARNNING: the file index should be ignored, +// e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts, +// Please use 'rae2822_hybrid2d__4.fts' here! +// visual_field: If dump out the field results to visulization +// walldistMethod: The method to compute wall distance. +// 0 - accurate but not fast enough. +// 1 - fast but not accurate enough. +// 2 - Super fast but more non-accurate! + +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; + +int walldistMethod = 1; + +string resfile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string aircoeffile = "results/aircoef.dat"; + +string flowfile = "results/flow.dat"; +string turbfile = "results/turb.dat"; + +string visualfile = "results/tecflow.plt"; +string Qwall_file = "results/Qwall.dat"; +string wall_aircoefile = "results/wall_aircoef.dat"; + +string surfacefile = ""; + +string wall_varfile = ""; + +string componentDefineFile = "bin/component.hypara"; +string jetDefineFile = "bin/jet.hypara"; + +string componentforcefile = "results/component_aircoef.dat"; + +string overset_gridfile = "iblank.ovs"; + +int visual_field = 0; + +//visualSlice: The slice of tecflow +// 0 - Do not save slice data +// 1 - comput and save it to sliceFile +//sliceAxis: Normal vector of slice +// 1 - X_DIR +// 2 - Y_DIR +// 3 - Z_DIR +//slicePostion: Coordinate of slice + +int visualSlice = 0; +int sliceAxis = 1; +double slicePostion = -0.5; +string sliceFile = "results/Slice.plt"; + +// min-max box of the visual block. +double visual_block_min[3] = [0.0 0.0 0.0]; +double visual_block_max[3] = [1.0 1.0 1.0]; + +// nVisualVariables: number of variables want to be dumped for tecplot visualization. +// visualVariables : variable types dumped, listed as following: +// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6) +// -- viscosityLaminar(7), viscosityTurbulent(8) +// -- vorticity_x(9), vorticity_y(10), vorticity_z(11), vorticityMagnitude(12), strain_rate(13), Q_criteria(14) +// -- Cp(15), timeStep(16), volume(17) +// -- modeledTKE(18),modeleddissipationrate(19), SSTF1(20), SSTF2(21) +// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!. +// Arriables order must from small to larger. +int nVisualVariables = 8; +int visualVariables[8] = 0, 1, 2, 3, 4, 5, 6, 15; + +//----------------------------------------------------------------------- +# Turbulence Parameter # +//----------------------------------------------------------------------- +//turb_vis_kind : +// const int VIS_STD = 0; +// const int VIS_AVER = 1; +// const int VIS_TEST = 2; +// const int VIS_NEW1 = 3; +// const int VIS_NEW2 = 4; +// const int VIS_ERIC = 5; +int turbInterval = 1; +int turb_vis_kind = 2; +int turb_s_kind = 0; //turb_s_kind = 0:original 1:edwards 2:new +int mod_turb_res = 0; +double turb_relax = 1.0; +double turb_min_coef = 1.0e-1; +double vistoo = 1.0e-3; +double muoo = 1.0e-1; +double kwoo = 1.0; + + +# maximum eddy viscosity (myt/my)max +double mytmax = 1.0e10; +double sdilim = 1.0e20; +double coef_kvist = 1.0; +int monitor_vistmax = 0; + +//----------------------------------------------------------------------- +# Other Parameter # +//----------------------------------------------------------------------- +// iapplication: 0 - NS +// 1 - MHD +// nm: equation number of the physics , but is out of commision now. +// 4 - for 2D +// 5 - for 3D +//ncatamod: 0 - full non-catalytic wall boundary condition; +// 1 - full catalytic wall boundary condition; + +int dg_high_order = 0; //0 澫 1 DG ߽׾ +int iapplication = 0; +int nm = 5; + +//MHD +double bxoo = 0.0; +double byoo = 0.0; +double bzoo = 0.0; + +double gama0 = 1.4; +double prl = 0.72; +double prt = 0.90; +double sc_l = 0.5; +double sc_t = 0.5; + +int nchem = 0; +int nchemsrc = 0; +int nchemrad = 0; +int ntmodel = 1; +string gasfile = "./chemical/Gupta_air5s6r.dat"; +int ncatamod = 0; + +######################################################################### +// Multi-Grid parameters. +// mgrid: The number of level of Multi-Grid +// <= 1 : Single level. +// > 1 : multi-level. +// npre : for each grid, the number of pre-smoothing steps +// npost : for each grid, the number of post-smoothing steps +// n_solve: for the coarest grid the number of smoothing steps +// n_fas : V-multi cycle or W-multi cycle. +// 1 : V-multi cycle +// 2 : W-multi cycle +// mgvisl : If calculate the viscous term on coarse grid +// 0 : No +// 1 : Yes +// mgvist : If consideration the turbulent model on coarse grid. +// 0 : No +// 1 : Yes +// mgInitStep: Number of step computing on coarse grid, during flow initialization. +// cflMGTimes: CFL number enlarge times for coarse grid. +// mprol: Multi-grid interpolation method, interpolation from coarse cell to fine grid: +// 1: zero order; +// 2: first-order(default). +int mgrid = 1; +int n_solve = 1; +int n_pre = 1; +int n_fas = 1; +int n_post = 0; +int mgvisl = 1; +int mgvist = 0; +int mgInitStep = 100; +int mprol = 2; +double cflMGTimes = 1.0; +double correctionLimit= 0.01; + +//----------------------- Some parameter for turbulent model. ----------------------------- +int neasm = -3; // the variation of kw turbulent model +int ivortsource = 0; +int ismooth_turb = 0; // Residual smooth for turb or not. + +int isplt = 2; + +int inflowtype = 0; + +//string n_turb_scheme = "roe","center","nnd"; +string n_turb_scheme = "nnd"; + +// ---------------- Overset Grid parameter ------------------------------------- +int codeOfDigHoles = 1; +int codeOfTurbulentModel = 0; +string masterFileName = "./grid/searchFile.inp"; +string holeBasicFileName = "./grid/holeBasicFile.inp"; +string holeFullFileName = "./grid/holeFullFile.dat"; +string linkFileName = "./grid/topology.dat"; +string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; + +######################################################################### +# High Order Struct Solver # +######################################################################### +// ifvfd : 0 - NSSolverStruct using Finite Volume Method; +// 1 - NSSolverStruct using Finite Differ Method; +// =0 default +// SolverStructOrder: Spatial discretisation order of NS equations with struct grid +// =<2 finite volume method +// >=3 finite difference order (to be completed) +// =0 default +// str_highorder_interpolation_name: interpolation method: "prim", "char" +// str_highorder_flux_name: flux evaluation method: "roe", "steger", "godunov", "hllc" +int ifvfd = 0; +int SolverStructOrder = 0; +string str_highorder_interpolation_name = "char"; +string str_highorder_flux_name = "steger"; + + + +// ---------------- advanced choices ------------------------------------------- +// xkmuscl: the parameter of MUSCL interpolations, belongs to [-1,1]. +// -1 - seconde-order fully-upwind differencing +// 0 - seconde-order upwind-biased differencing +// 0.333333 - third-order upwind-biased differencing +// 1 - seconde-order central differencing +// xbmuscl: the limiter parameter. +// 0 - the effect of the limiter is cancelled, means the first-order interpolations. +// allReduceStep: iteration intervals for MPI AllReduce operation, default '1'. +string outtimesc = "impbd2"; +double unxk1 = 1.0; +double unxk2 = 0.0; +double xkmuscl = -1; +double xbmuscl = 1.0; +int allReduceStep = 1; + + +// --------------- ATP read ---------------------------------------------------- +//@int inflowParaType = 0; +//@double reynolds = 2.329418E08; +//@double reference_temperature_dimensional = 288.144; +//@double reference_pressure_dimensional = 1.01313E05; +//@double height = -0.001; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; \ No newline at end of file diff --git a/Y03_ThreeD_M6_MC-LUSGS_Unstruct_Branch_TH/bin/cfd_para_transonic.hypara b/Y03_ThreeD_M6_MC-LUSGS_Unstruct_Branch_TH/bin/cfd_para_transonic.hypara new file mode 100644 index 0000000..a673f72 --- /dev/null +++ b/Y03_ThreeD_M6_MC-LUSGS_Unstruct_Branch_TH/bin/cfd_para_transonic.hypara @@ -0,0 +1,202 @@ +######################################################################### +# General Control Parameter # +######################################################################### +// maxsimustep: the max simulation step, don't care simulation is restart or not. +// ndisk: the step intervals for flow variables file 'flow.dat' saved. +// nplotsave: the step intervals for tecplot visual file 'tecflow.dat' saved. +// nforcsave: the step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// nressave: the step intervals for residual 'res.dat' saved. + +int maxsimustep = 20000; + +int ndisk = 5000; +int nplotsave = 5000; +int nforcsave = 1000; +int nressave = 10; + +######################################################################### +# Inflow Parameter # +######################################################################### +// reference_mach_number: Mach number per meter. +// attackd: Angle of attack. +// sideslipd: Angle of sideslip. +// reynolds: Reynolds number, which is based unit length, unit of 1/m. +// reference_temperature_dimensional: dimensional reference temperature, or the total temperature only for the experiment condition. +// reference_pressure_dimensional: dimensional reference pressure , or the total pressure only for the experiment condition. +// inflowParaType: the type of inflow parameters. +// 0 - the nondimensional conditions. +// 1 - the flight conditions. +// 2 - the experiment conditions. +// height: Fly height, unit of km. +// gridUnit: The unit of the grid. +// 0 - meter. +// 1 - decimeter, 1 dm = 0.1 m. +// 2 - centimeter, 1 cm = 0.01 m. +// 3 - millimeter, 1 mm = 0.001m. +// 4 - inch, 1 inch = 0.0254m. +// 5 - foot, 1 foot = 12 inches = 0.3048m. +// 6 - yard, 1 yard = 3 feet = 0.9144m. +// forceRefenenceLength, forceRefenenceArea: Reference length and area, independent to grid scale. +// forceRefenenceX, forceRefenenceY, forceRefenenceZ: Reference point, independent to grid scale. + +double reference_mach_number = 0.8395; +double attackd = 3.06; +double sideslipd = 0.00; + +int inflowParaType = 0; +double reynolds = 1.171e7; +double reference_temperature_dimensional = 288; + +//int inflowParaType = 1; +//double height = 0.001; + +//int inflowParaType = 2; +//double reference_temperature_dimensional = 6051.024; //the total temperature, T*(1+(gama0-1)*M*M/2). +//double reference_pressure_dimensional = 4.299696E09; //the total pressure, p*(T0/T)^(gama0/(gama0-1)). + +int gridUnit = 0; + +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceArea = 1.0; // unit of meter^2 +double forceRefenenceX = 0.0; // unit of meter. +double forceRefenenceY = 0.0; // unit of meter. +double forceRefenenceZ = 0.0; // unit of meter. + +#******************************************************************* +# Physical models * +#******************************************************************* +// iviscous: Viscous model +// 0 - Euler +// 1 - Lamilar +// 3 - 1eq turbulent +// 4 - 2eq turbulent +// visname : Laminar or tubulent model +// - "1eq-sa", when iviscous = 3 +// - "2eq-kw-menter-sst", when iviscous = 4 +// codeofDES : Type of DES +// 0 - RANS (default); +// 1 - DES; +// 2 - DDES; +// 3 - IDDES; + +//int iviscous = 0; +//string visname = "Euler"; + +//int iviscous = 1; +//string visname = "laminar"; + +int iviscous = 3; +string visname = "1eq-sa"; + +//int iviscous = 4; +//string visname = "2eq-kw-menter-sst"; + +int codeofDES = 0; + + +######################################################################### +# Spatial Discretisation # +######################################################################### +#******************************************************************* +# Struct Solver * +#******************************************************************* +// str_scheme_name: Spatial discretisation scheme of struct grid +// Using this when solve structered grid or hybrid. +// - "roe", "vanleer", "ausm+up", "ausmpw" +// str_limiter_name: Limiter of struct grid +// - "3rdsmooth", "smooth" +// - "nolim" - no limiter + +string str_scheme_name = "roe"; +string str_limiter_name = "smooth"; + +#******************************************************************* +# UnStruct Solver * +#******************************************************************* +// uns_scheme_name: Spatial discretisation scheme of Unstruct grid +// Using this when solve Unstructered grid or hybrid. +// - "vanleer", "roe", "steger", "kfvs", "lax_f", "hlle" +// - "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpwplus" +// uns_limiter_name: Limiter of Unstruct grid +// - "vencat", "barth" +// - "1st", meaning accuracy of first-order. +// - "nolim", no limiter. +// eps_vencat: Coefficient of vencat limiter, when uns_limiter_name = 'vencat' +// The smaller the value, the more robust it is. + +string uns_scheme_name = "roe"; +string uns_limiter_name = "vencat"; +double eps_vencat = 5.0; + +######################################################################### +# Temporal Discretisation # +######################################################################### +// iunsteady: Steady or unsteady. +// 0 - steady +// 1 - unsteay +// cfl_end: The CFL number, [0.1, 100] +// The bigger the value, the convergence faster but lower robustness. +// sweeps: Number of Sub-iteration of LU-SGS. +// 1 : is recommended for structured solver. +// 1-3: is recommended for unstructured solver. + +int iunsteady = 0; + +double cfl_end = 0.1; +int tscheme = 4; +int sweeps = 1; + +######################################################################### +# Multi-Grid parameters # +######################################################################### +// mgrid: The number of Multi-Grid level +// = 1 : Single level. +// > 1 : multi-level. +// mgInitStep: Number of step computing on coarse grid, during flow initialization. +// 0~500 is suggested. + +int mgrid = 1; +int mgInitStep = 100; + + +######################################################################### +# File In or Out # +######################################################################### +// gridfile: The partitioned Grid file path, using relative path, +// which is relative to the working directory. +// IMPORTANT WARNNING: the file index should be ignored, +// e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts, +// Please use 'rae2822_hybrid2d__4.fts' here! +// visual_field: If dump out the whole field results to tecplot or not, 0/1. + +string gridfile = "./grid/M6_str2unstr.fts"; +int visual_field = 0; + + + +// ---------------- advanced Parameters, DO NOT care it ----------- +// nVisualVariables: number of variables want to be dumped for tecplot visualization. +// visualVariables : variable types dumped, listed as following: +// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6) +// -- viscosityLaminar(7), viscosityTurbulent(8) +// -- vorticity_x(9), vorticity_y(10), vorticity_z(11), vorticityMagnitude(12), strain_rate(13), Q_criteria(14) +// -- Cp(15), timeStep(16), volume(17) +// -- modeledTKE(18),modeleddissipationrate(19), SSTF1(20), SSTF2(21) +// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!. +// Arriables order must from small to larger. +int nVisualVariables = 8; +int visualVariables[8] = 0, 1, 2, 3, 4, 5, 6, 15; + +// limit_mode: limit model. +// 0 - limit only for pressure and denstiny, then get the min value +// 1 - limit for every variables, then get the min value +// limiter_vec: +// 0 - Each variable use the same limiter coefficient. +// 1 - Each variable use the respective limiter coefficients. +// reconmeth: +// 0 - When reconstruct face value, Q+, Q- use respective limiter coefficients. +// 1 - Q+, Q- use the min limiter coefficients of left and right cell. +int reconmeth = 1; +int limit_mode = 0; +int limiter_vec = 0; diff --git a/Y03_ThreeD_M6_MC-LUSGS_Unstruct_Branch_TH/bin/grid_para.hypara b/Y03_ThreeD_M6_MC-LUSGS_Unstruct_Branch_TH/bin/grid_para.hypara new file mode 100644 index 0000000..d5a8df3 --- /dev/null +++ b/Y03_ThreeD_M6_MC-LUSGS_Unstruct_Branch_TH/bin/grid_para.hypara @@ -0,0 +1,30 @@ +######################################################################### +# Grid data type # +######################################################################### +// gridtype: Grid type for generation, conversion, reconstruction, merging. +// 0 -- Unstructured grid. +// 1 -- Structured grid. +// axisup: Type of Cartisien coordinates system, used in grid conversion. +// 1 -- Y upward. (default) +// 2 -- Z upward. +// from_gtype: Type of grid data type in grid conversion process. +// -1 -- MULTI_TYPE +// 1 -- HyperFLOW( PHengLEI ), *.fts. +// 2 -- CGNS, *.cgns. +// 3 -- Plot3D type of structured grid, *.dat/*.grd. +// 4 -- Fieldview type of unstructured grid, *.dat/*.inp. +// 5 -- Fluent, *.cas/*.msh. +// 6 -- Ustar, mgrid.in. +// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. +// 8 -- GMSH, *.msh. +int gridtype = 0; +int axisup = 2; +int from_gtype = 2; + +######################################################################### +# File path # +######################################################################### +// from_gfile: path of original data file for unstructure grid convert from. +// out_gfile: path of target file for grid convert to, *.fts type of file usually. +string from_gfile = "./grid/M6_str2unstr.cgns"; +string out_gfile = "./grid/M6_str2unstr.fts"; diff --git a/Y03_ThreeD_M6_MC-LUSGS_Unstruct_Branch_TH/bin/key.hypara b/Y03_ThreeD_M6_MC-LUSGS_Unstruct_Branch_TH/bin/key.hypara new file mode 100644 index 0000000..91b77fb --- /dev/null +++ b/Y03_ThreeD_M6_MC-LUSGS_Unstruct_Branch_TH/bin/key.hypara @@ -0,0 +1,51 @@ +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 the parameter file. +// nsimutask: simulation task type. +// 0 -- CFD Solver of NS or Turbulation. +// 1 -- Grid generation: for special typical cases, such as cylinder, flat plate, etc. +// Grid conversion: from other format to HyperFLOW format (.fts). +// Grid reconstruction: such as grid adaptation. +// Grid merging: merge two blocks into one block. +// Grid repairing: repair the original grid in order to remove the negative volume cells. +// 2 -- Wall distance computation for turb-solver. +// 3 -- Grid partition. +// 4 -- Knowledge repository / examples of PHengLEI-API. +int ndim = 3; +int nparafile = 1; + +int nsimutask = 0; +//string parafilename = "./bin/cfd_para_subsonic.hypara"; +string parafilename = "./bin/cfd_para_transonic.hypara"; +//string parafilename = "./bin/cfd_para_supersonic.hypara"; +//string parafilename = "./bin/cfd_para_hypersonic.hypara"; +//string parafilename = "./bin/incompressible.hypara"; + +//int nsimutask = 1; +//string parafilename = "./bin/grid_para.hypara"; + +//int nsimutask = 2; +//string parafilename = "./bin/cfd_para.hypara"; + +//int nsimutask = 3; +//string parafilename = "./bin/partition.hypara"; + +//int nsimutask = 4; +//string parafilename = "./bin/repository.hypara"; + +//int nsimutask = 5; +//string parafilename = "./bin/overset_grid_view.hypara"; + +//int nsimutask = 99; +//string parafilename = "./bin/post_processing.hypara"; + +// ---------------- advanced Parameters, DO NOT care it ----------- +int iovrlap = 0; +int numberOfGridProcessor = 0; +// ATP read +//@string parafilename1 = "" +//@string parafilename2 = ""; diff --git a/Y03_ThreeD_M6_MC-LUSGS_Unstruct_Branch_TH/bin/partition.hypara b/Y03_ThreeD_M6_MC-LUSGS_Unstruct_Branch_TH/bin/partition.hypara new file mode 100644 index 0000000..634c0d8 --- /dev/null +++ b/Y03_ThreeD_M6_MC-LUSGS_Unstruct_Branch_TH/bin/partition.hypara @@ -0,0 +1,20 @@ +// pgridtype: The grid type. +// 0 -- unstruct grid +// 1 -- struct grid +// maxproc: The number of partition zones that want to be divided into, +// which is equal to the number of CPU processors you want. +// Usually, 50~100 thousands structured cells per CPU-Core is suggested. +// 30~70 thousands unstructured cells per CPU-Core is suggested. +// original_grid_file : original grid file that want to be divided(HyperFLOW/PHengLEI type, *.fts). +// partition_grid_file : target partition grid file(HyperFLOW/PHengLEI type, *.fts). + +int pgridtype = 0; +int maxproc = 4; + +string original_grid_file = "./grid/m6_unstr.fts"; +string partition_grid_file = "./grid/m6_unstr__4.fts"; + + +// Number of multi-grid levels, ONLY used for structured grid. +// 1 -- single level, 2 -- 2 level, N -- N level, ..., et al. +int numberOfMultigrid = 1;