diff --git a/README.md b/README.md index d6614fa2..fcbd2265 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,71 @@ -#### 从命令行创建一个新的仓库 +# 国家数值风洞风雷软件算例库 -```bash -touch README.md -git init -git add README.md -git commit -m "first commit" -git remote add origin https://git.osredm.com/p68217053/PHengLEI-TestCases.git -git push -u origin master +banner +[![build pass](build-passing.svg)](https://img.shields.io/badge/build-passing-brightgreen) [![license](license.svg)](LICENSE) ![Version](version.svg) +国家数值风洞风雷软件算例库,包含Rae2822、Plate、Cylinder、30p30n、Sphere、NACA0012、M6、Electre、DoubleEllipse、CHNT等多种模型算例,正在持续更新中。 + +## 导航 + +- [使用说明](#使用说明) +- [算例库中英文对照表](#算例库中英文对照表) +- [License](#license) + + + +## 使用说明 + +本算例库配套国家数值风洞风雷软件使用,使用时应切换到对应的版本。 + +具体使用说明如下: + +```shell +# 1、查看历史版本号,记住你需要的版本hash值 +# 如: f3ef592 +git log + +# 2、使用第一步得到的hash值,切换到对应版本 +git reset --hard f3ef592 + +# 3、使用国家数值风洞风雷软件进行测试和计算 ``` -#### 从命令行推送已经创建的仓库 -```bash -git remote add origin https://git.osredm.com/p68217053/PHengLEI-TestCases.git -git push -u origin master -``` +## 算例库中英文对照表 +二维结构 + +| 中文 | 英文 | +| -------------------------: | :--------------------------------- | +| 二维结构高阶圆柱 | TwoD_Cylinder_Laminar_HighOrder_Struct | +| 二维结构低速层流平板 | TwoD_Plate_Laminar_Struct_1CPU | +| 二维结构高速层流平板 | TwoD_Plate_Laminar_Ma5_Struct_1CPU | +| 二维结构低速湍流平板 | TwoD_LowMach_plate_SST_Struct | +| 二维结构高速湍流平板 | TwoD_Plate_SST_Ma5_Struct_1CPU | +| 二维结构圆柱高速绕流 | TwoD_Cylinder_Laminar_Ma8d03_Struct | +| 二维结构圆柱化学非平衡 | TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct | +| 二维结构30p30n翼型低速绕流 | TwoD_30p30n_SST_Struct | +| 二维结构30p30n翼型低速绕流 | TwoD_30p30n_SST_Struct | +| 二维结构Rae2822翼型跨声速绕流 | TwoD_Rae2822_SST_Struct | + +三维结构 + + +| 中文 | 英文 | +| -------------------------: | :--------------------------------- | +| 三维结构高阶双椭球 | ThreeD_DoubleEllipse_Laminar_HighOrder_Struct | +| 三维结构球头高速绕流 | ThreeD_Sphere_Laminar_Ma10_Struct | +| 三维结构圆柱LES模拟 | ThreeD_Cylinder_LES_Re3900_Struct | +| 三维结构客机标模模拟 | ThreeD_CHNT_SST_Struct_16CPU | +| 三维结构钝锥化学非平衡 | ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct | +| 三维结构M6机翼跨声速绕流 | ThreeD_M6_SST_Struct_MG2_4CPU | +| 三维结构NACA0012翼型低速绕流 | ThreeD_NACA0012_SA_Struct | + +其他算例正在持续更新中。 + + + +## License + +[GPL](LICENSE) \ No newline at end of file diff --git a/ThreeD_CHNT_SST_Struct_16CPU/bin/cfd_para.hypara b/ThreeD_CHNT_SST_Struct_16CPU/bin/cfd_para.hypara new file mode 100644 index 00000000..449929dc --- /dev/null +++ b/ThreeD_CHNT_SST_Struct_16CPU/bin/cfd_para.hypara @@ -0,0 +1,809 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// 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, 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 = 0; +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 -- 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. +// 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. +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 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// .skl meaning skeleton. +string original_grid_info_file = "./grid/FLUENT_test.skl"; + +// 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. +// mixgrid_str_bc: path of structure grid boundary condition file 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. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Adaptive Mesh Refine ------------------------------- +// In this file, the original_grid_file is used of the partition part. +// If use it dependently, abstract it here. +string adapt_grid_file = "./grid/sphere_mixed_adapt1.fts"; +string geometryFileName = "./grid/jsm.igs"; + +// 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 geometryUnit = 1; +int anisoRefine = 0; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; // 0: NON case; 1: JSM-C2-NPOFF case; 2: CHNT. +int projectOrgPoint = 0; // if project original wall points. + +// ----------------- RBF Parameters ------------------------------------- +// symmetryPlane: Which symmetry plane is used in the mesh. +// 0 -- without symmetry. +// 1 -- plane of x=0. +// 2 -- plane of y=0. +// 3 -- plane of z=0. +int numberOfReferenceCP = 10; +double influenceRadius = 20; +int symmetryPlane = 3; // 1: plane of x=0; 2: plane of y=0; 3: plane of z=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. +int pgridtype = 0; +int maxproc = 4; + +// 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]; + +//----------------------------------------------------------------------- +# 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. +// 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: 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. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) + +int maxSimuStep = 20000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; +int ifLowSpeedPrecon = 0; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 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. +// 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. +// 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. +// 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. +// 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. + +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 10000.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)). + +//int inflowParaType = 3; +//int nsubsonicInlet = 1; +//int nsubsonicOutlet = 1; +//string inLetFileName = "./bin/subsonicInlet.hypara"; +//string outLetFileName = "./bin/subsonicOutlet.hypara"; +//double refDimensionalTemperature = 288.144; +//double refDimensionalPressure = 1.01313E05; + +double wallTemperature = -1.0; +int dump_Q = 0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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. + +// directionMethod: The method of determining direction. +// 1 -- using direciton. +// 2 -- using face normal. +// subsonicInletTotalPressure: The dimensional total pressure of subsonic inlet if height > 0, else non-dimensional. +// subsonicInletTotalTemperature: The dimensional total temperature of subsonic inlet if height > 0, else non-dimensional. +// direction_inlet: The direction of inlet. +// subsonicOutletTotalPressure: The dimensional total pressure of subsonic outlet if height > 0, else non-dimensional. +// subsonicOutletTotalTemperature: The dimensional total temperature of subsonic outlet if height > 0, else non-dimensional. +// direction_outlet: The direction of outlet. +int directionMethod = 2; +double subsonicInletTotalPressure = 1.2e6; +double subsonicInletTotalTemperature = 1300; +double direction_inlet[] = 1, 0, 0; + +double subsonicOutletTotalPressure = 17.8571428; +double subsonicOutletTotalTemperature = 1.0; +double direction_outlet[] = 1, 0, 0; + +//----------------------------------------------------------------------- +# 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". +// 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 inviscidSchemeName = "roe"; +string str_limiter_name = "vanalbada"; + +#******************************************************************* +# UnStruct Solver or Common * +#******************************************************************* +// viscousType : Viscous model. +// 0 -- Euler. +// 1 -- Lamilar. +// 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", "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. +// 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. + +//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 limit_angle = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 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 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. +// 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. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// iale: 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; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int startStatisticStep = 800000; + +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; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; + +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 timemax = 1.0e10; +double dtsave = -1.0; +int iale = 0; +int ialetype = 2; +int maxale = 10; +double dtau = 0.001; +double dtau_max = 1E-01; + +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! +// isPlotVolumeField: 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. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; + +int walldistMethod = 1; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "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 isPlotVolumeField = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. + +int visualfileType = 1; + +// 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 lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [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), vibration temperature(33), electron temperature(34), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44). +// 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]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +//----------------------------------------------------------------------- +# Turbulence Parameter # +//----------------------------------------------------------------------- +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// 1 -- Edwards. +// 2 -- new. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. + +int turbInterval = 1; +int turb_vis_kind = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double turb_relax = 1.0; +double turb_min_coef = 1.0e-1; +double freeStreamViscosity = 1.0e-3; +double muoo = 1.0e-1; +double kwoo = 1.0; + +# maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +double sdilim = 1.0e20; +double coef_kvist = 1.0; +int monitor_vistmax = 0; + +//----------------------------------------------------------------------- +# Other Parameter # +//----------------------------------------------------------------------- +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- NS. +// 1 -- MHD. +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int dg_high_order = 0; +int iapplication = 0; +int nm = 5; + +// MHD +double bxoo = 0.0; +double byoo = 0.0; +double bzoo = 0.0; + +double refGama = 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 = 1; +int nchemrad = 1; +int ntmodel = 1; +int nChemicalFlowStep = 0; +double catalyticCoef = 0.0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.77"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.77, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.77, 0.0"; + +int ifStartFromPerfectGasResults = 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 # +######################################################################### +// ifvfd: +// 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 ifvfd = 0; +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"; + +// ----------------- 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; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 2.329418E08; +//@double refDimensionalTemperature = 288.144; +//@double refDimensionalPressure = 1.01313E05; +//@double height = -0.001; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; diff --git a/ThreeD_CHNT_SST_Struct_16CPU/bin/cfd_para_transonic.hypara b/ThreeD_CHNT_SST_Struct_16CPU/bin/cfd_para_transonic.hypara new file mode 100644 index 00000000..245ddffa --- /dev/null +++ b/ThreeD_CHNT_SST_Struct_16CPU/bin/cfd_para_transonic.hypara @@ -0,0 +1,205 @@ +######################################################################### +# 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 = 15000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 10; +int intervalStepRes = 10; + +######################################################################### +# 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.785; +double attackd = 2.61; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 1.703665e7; +double refDimensionalTemperature = 298.15; + +//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)). + +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 0.1937; // unit of meter. +double forceRefenenceArea = 0.12892; // unit of meter^2. +double TorqueRefX = 0.66087; // 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 = 2; +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.0; + +######################################################################### +# Temporal Discretisation # +######################################################################### +// iunsteady: Steady or unsteady. +// 0 -- steady. +// 1 -- unsteay. +// CFLEnd: The CFL number, [0.1, 100]. +// The bigger the value, the convergence faster but lower robustness. +// nLUSGSSweeps: Number of Sub-iteration of LU-SGS. +// 1 -- is recommended for structured solver. +// 1-3 -- is recommended for unstructured solver. + +int iunsteady = 0; + +double CFLEnd = 30.0; + +int nLUSGSSweeps = 1; + +######################################################################### +# Multi-Grid parameters # +######################################################################### +// nMGLevel: The number of Multi-Grid level. +// = 1 -- single-level. +// > 1 -- multi-level. +// flowInitStep: Flow initialization step, 0 - 500 is suggested. +// Multi-Grid : Number of steps computing on coarse grid, during flow initialization. +// Single-Grid: Number of steps computing using first-order with vanleer, during flow initialization. + +int nMGLevel = 1; +int flowInitStep = 100; + +######################################################################### +# File In or Out # +######################################################################### +// gridfile: The partitioned Grid file path, using relative path, +// which is relative to the working directory. +// IMPORTANT WARNING: The file index should be ignored, +// e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts, +// Please use 'rae2822_hybrid2d__4.fts' here! +// isPlotVolumeField: If dump out the whole field results to tecplot or not, 0 / 1. + +string gridfile = "./grid/stm-dkbm-c-all__16.fts"; +int isPlotVolumeField = 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; + +double MUSCLCoefXk = 0.333333; diff --git a/ThreeD_CHNT_SST_Struct_16CPU/bin/grid_para.hypara b/ThreeD_CHNT_SST_Struct_16CPU/bin/grid_para.hypara new file mode 100644 index 00000000..8c9c2a35 --- /dev/null +++ b/ThreeD_CHNT_SST_Struct_16CPU/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 -- 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 = 1; +int axisup = 1; +int from_gtype = 3; + +######################################################################### +# 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/stm-dkbm-c-all.grd"; +string out_gfile = "./grid/stm-dkbm-c-all.fts"; diff --git a/ThreeD_CHNT_SST_Struct_16CPU/bin/key.hypara b/ThreeD_CHNT_SST_Struct_16CPU/bin/key.hypara new file mode 100644 index 00000000..280fe895 --- /dev/null +++ b/ThreeD_CHNT_SST_Struct_16CPU/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 parameter files. +// nsimutask: simulation task type. +// 0 -- CFD Solver of NS or Turbulation. +// 1 -- Grid generation: for special typical cases, such as cylinder, flat plate, etc. +// Grid conversion: from other format to PHengLEI format (.fts). +// Grid reconstruction: such as grid adaptation. +// Grid merging: merge two blocks into one block. +// Grid repairing: repair the original grid in order to remove the negative volume cells. +// 2 -- Wall distance computation for turb-solver. +// 3 -- Grid partition. +// 4 -- Knowledge repository / examples of PHengLEI-API. +int ndim = 3; +int nparafile = 1; + +int nsimutask = 0; +//string parafilename = "./bin/cfd_para_subsonic.hypara"; +string parafilename = "./bin/cfd_para_transonic.hypara"; +//string parafilename = "./bin/cfd_para_supersonic.hypara"; +//string parafilename = "./bin/cfd_para_hypersonic.hypara"; +//string parafilename = "./bin/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/ThreeD_CHNT_SST_Struct_16CPU/bin/partition.hypara b/ThreeD_CHNT_SST_Struct_16CPU/bin/partition.hypara new file mode 100644 index 00000000..041126e7 --- /dev/null +++ b/ThreeD_CHNT_SST_Struct_16CPU/bin/partition.hypara @@ -0,0 +1,21 @@ +// pgridtype: The grid type. +// 0 -- unstruct grid. +// 1 -- struct grid. +// maxproc: The number of partition zones that want to be divided into, +// which is equal to the number of CPU processors you want. +// Usually, 50~100 thousands structured cells per CPU-Core is suggested. +// 30~70 thousands unstructured cells per CPU-Core is suggested. +// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts). +// partition_grid_file: Target partition grid file(PHengLEI type, *.fts). + +int pgridtype = 1; +int maxproc = 16; + +string original_grid_file = "./grid/stm-dkbm-c-all.fts"; +string partition_grid_file = "./grid/stm-dkbm-c-all__16.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/ThreeD_CHNT_SST_Struct_16CPU/grid/stm-dkbm-c-all.grd b/ThreeD_CHNT_SST_Struct_16CPU/grid/stm-dkbm-c-all.grd new file mode 100644 index 00000000..65722fc0 Binary files /dev/null and b/ThreeD_CHNT_SST_Struct_16CPU/grid/stm-dkbm-c-all.grd differ diff --git a/ThreeD_CHNT_SST_Struct_16CPU/grid/stm-dkbm-c-all.inp b/ThreeD_CHNT_SST_Struct_16CPU/grid/stm-dkbm-c-all.inp new file mode 100644 index 00000000..f04b90b9 --- /dev/null +++ b/ThreeD_CHNT_SST_Struct_16CPU/grid/stm-dkbm-c-all.inp @@ -0,0 +1,2956 @@ + 1 + 184 + 157 13 61 + Block + 29 + 1 1 1 13 1 61 4 + 157 157 1 13 1 61 4 + 1 157 1 1 1 61 4 + -1 -157 1 13 1 1 -1 + -157 -1 13 1 61 61 93 + 1 157 1 13 61 61 4 + 1 13 13 13 -1 -49 -1 + 1 13 1 1 -1 -49 2 + 13 22 13 13 -1 -13 -1 + -1 -13 1 10 1 1 26 + 22 28 13 13 -1 -13 -1 + -1 -13 1 7 1 1 29 + 28 43 13 13 -1 -13 -1 + -1 -13 1 16 1 1 32 + 43 73 13 13 -1 -13 -1 + -1 -13 1 31 1 1 35 + 73 91 13 13 -1 -13 -1 + -1 -13 1 19 1 1 38 + 91 97 13 13 -1 -13 -1 + -1 -13 1 7 1 1 41 + 97 124 13 13 -1 -13 -1 + -1 -13 1 28 1 1 44 + 124 136 13 13 -1 -13 -1 + -1 -13 1 13 1 1 48 + 136 145 13 13 -1 -13 -1 + -1 -13 1 10 1 1 52 + 157 145 13 13 -1 -49 -1 + 13 1 1 1 -1 -49 4 + 43 73 13 13 -13 -28 -1 + -1 -16 1 31 1 1 62 + 13 43 13 13 -28 -13 -1 + 1 31 1 1 -16 -1 6 + 43 73 13 13 -28 -49 -1 + -1 -22 1 31 1 1 66 + 91 97 13 13 -28 -13 -1 + 1 7 1 1 -16 -1 13 + 91 73 13 13 -28 -13 -1 + 19 1 1 1 -16 -1 9 + 97 124 13 13 -28 -13 -1 + 1 28 1 1 -16 -1 16 + 124 136 13 13 -28 -13 -1 + 1 13 1 1 -16 -1 17 + 145 136 13 13 -28 -13 -1 + 10 1 1 1 -16 -1 20 + 13 43 13 13 -49 -28 -1 + 1 31 1 1 -22 -1 10 + 145 73 13 13 -49 -28 -1 + 73 1 1 1 -22 -1 11 + 1 13 13 13 -61 -49 -1 + 1 13 1 1 -13 -1 81 + 13 145 13 13 -61 -49 -1 + 1 133 1 1 -13 -1 5 + 157 145 13 13 -61 -49 -1 + 13 1 1 1 -13 -1 82 + 13 40 49 + Block + 11 + 1 1 1 40 1 49 4 + -1 -13 1 40 1 1 -1 + -13 -1 40 1 49 49 94 + 1 13 1 1 -1 -49 -1 + 1 13 13 13 -1 -49 1 + 13 13 -1 -25 1 13 -1 + -1 -25 1 13 1 1 25 + 1 13 40 40 -1 -49 -1 + 1 13 1 1 -1 -49 3 + 13 13 -40 -25 1 13 -1 + 1 1 -16 -1 1 13 7 + 13 13 -40 -25 13 28 -1 + 1 1 -16 -1 1 16 8 + 13 13 -1 -25 28 13 -1 + 1 1 -1 -25 16 1 6 + -1 -13 1 40 49 49 -1 + -1 -13 1 40 1 1 81 + 13 13 -1 -25 49 28 -1 + 1 1 -1 -25 22 1 10 + 13 13 -40 -25 49 28 -1 + 1 1 -16 -1 22 1 12 + 157 13 61 + Block + 22 + 1 1 1 13 1 61 4 + 157 157 1 13 1 61 4 + 1 157 13 13 1 61 4 + -1 -157 1 13 1 1 -1 + -157 -1 13 1 61 61 95 + 1 157 1 13 61 61 4 + 1 13 1 1 -1 -49 -1 + 1 13 40 40 -1 -49 2 + 13 73 1 1 -1 -13 -1 + 1 61 16 16 -1 -13 7 + 73 91 1 1 -1 -13 -1 + 1 19 16 16 -1 -13 78 + 91 136 1 1 -1 -7 -1 + -1 -7 1 46 16 16 72 + 145 136 1 1 -1 -7 -1 + 10 1 16 16 -1 -7 18 + 157 145 1 1 -1 -49 -1 + 13 1 40 40 -1 -49 4 + 13 73 1 1 -13 -28 -1 + 1 61 16 16 -1 -16 8 + 73 91 1 1 -13 -28 -1 + 1 19 16 16 -1 -16 79 + 91 136 1 1 -13 -28 -1 + 1 46 16 16 -1 -16 14 + 91 136 1 1 -13 -7 -1 + 1 46 16 16 -7 -1 15 + 145 136 1 1 -13 -28 -1 + 10 1 16 16 -1 -16 21 + 145 136 1 1 -13 -7 -1 + 10 1 16 16 -7 -1 19 + 13 73 1 1 -49 -28 -1 + 1 61 16 16 -22 -1 12 + 145 73 1 1 -49 -28 -1 + 73 1 16 16 -22 -1 80 + 1 13 1 1 -61 -49 -1 + 1 13 40 40 -13 -1 81 + 13 145 1 1 -61 -49 -1 + 1 133 40 40 -13 -1 5 + 157 145 1 1 -61 -49 -1 + 13 1 40 40 -13 -1 82 + 13 40 49 + Block + 12 + 13 13 1 40 1 49 4 + -1 -13 1 40 1 1 -1 + -13 -1 40 1 49 49 96 + 1 1 -1 -25 1 13 -1 + -1 -25 1 13 16 16 51 + 13 1 1 1 -1 -49 -1 + 157 145 13 13 -1 -49 1 + 1 1 -40 -25 1 7 -1 + 10 10 -16 -1 1 7 18 + 13 1 40 40 -1 -49 -1 + 157 145 1 1 -1 -49 3 + 1 1 -40 -25 13 28 -1 + 10 10 -16 -1 1 16 21 + 1 1 -40 -25 13 7 -1 + 10 10 -16 -1 7 1 19 + 1 1 -1 -25 28 13 -1 + 10 10 -1 -25 16 1 20 + -1 -13 1 40 49 49 -1 + -1 -13 1 40 1 1 82 + 1 1 -1 -25 49 28 -1 + 73 73 -1 -25 22 1 11 + 1 1 -40 -25 49 28 -1 + 73 73 -16 -1 22 1 80 + 133 40 13 + Block + 11 + 1 133 1 40 13 13 4 + -1 -31 1 25 1 1 -1 + -1 -31 1 25 22 22 10 + -31 -61 1 10 1 1 -1 + -1 -31 1 10 16 16 68 + -133 -61 1 25 1 1 -1 + -73 -1 1 25 22 22 11 + -31 -61 25 10 1 1 -1 + -1 -31 16 1 22 22 23 + -1 -61 40 25 1 1 -1 + -1 -61 16 1 22 22 12 + -133 -61 40 25 1 1 -1 + -73 -1 16 1 22 22 80 + 1 133 1 1 -13 -1 -1 + 13 145 13 13 -61 -49 1 + 1 1 -1 -40 13 1 -1 + 13 13 -1 -40 13 1 81 + 133 133 -1 -40 13 1 -1 + 1 1 -1 -40 13 1 82 + 1 133 40 40 -13 -1 -1 + 13 145 1 1 -61 -49 3 + 31 25 16 + Block + 9 + -1 -10 1 25 1 1 -1 + -1 -10 1 25 16 16 27 + -10 -16 1 25 1 1 -1 + -1 -7 1 25 16 16 30 + -16 -31 1 25 1 1 -1 + -1 -16 1 25 16 16 33 + 31 31 -1 -10 1 16 -1 + -1 -10 1 16 1 1 60 + -1 -31 1 25 16 16 -1 + -1 -31 1 25 1 1 10 + 1 1 -1 -25 16 1 -1 + 13 13 -1 -25 28 13 2 + 1 31 1 1 -16 -1 -1 + 13 43 13 13 -28 -13 1 + 1 31 25 25 -16 -1 -1 + 1 31 1 1 -16 -1 8 + 31 31 -25 -10 16 1 -1 + 1 1 -16 -1 16 1 22 + 61 16 13 + Block + 9 + -1 -61 1 16 1 1 -1 + -61 -1 16 1 13 13 99 + 1 10 1 1 -1 -13 -1 + -1 -13 1 10 16 16 28 + 10 16 1 1 -1 -13 -1 + -1 -13 1 7 16 16 31 + 16 31 1 1 -1 -13 -1 + -1 -13 1 16 16 16 34 + 31 61 1 1 -1 -13 -1 + -1 -13 1 31 16 16 37 + 1 1 -16 -1 1 13 -1 + 13 13 -40 -25 1 13 2 + 1 61 16 16 -1 -13 -1 + 13 73 1 1 -1 -13 3 + 61 61 -16 -1 1 13 -1 + 1 1 -16 -1 1 13 78 + -1 -61 16 1 13 13 -1 + -1 -61 16 1 1 1 8 + 61 16 16 + Block + 7 + 1 1 -16 -1 1 16 -1 + 13 13 -40 -25 13 28 2 + 1 61 16 16 -1 -16 -1 + 13 73 1 1 -13 -28 3 + -1 -61 16 1 1 1 -1 + -1 -61 16 1 13 13 7 + 61 61 -16 -1 1 16 -1 + 1 1 -16 -1 1 16 79 + -1 -61 1 16 16 16 -1 + -1 -61 1 16 1 1 12 + 1 31 1 1 -16 -1 -1 + 1 31 25 25 -16 -1 6 + 31 61 1 1 -16 -1 -1 + 1 31 16 16 -16 -1 22 + 19 25 16 + Block + 8 + 1 1 -1 -10 1 16 -1 + -1 -10 1 16 16 16 61 + -19 -1 1 10 1 1 -1 + -19 -1 1 10 16 16 39 + -1 -19 25 10 1 1 -1 + -1 -19 16 1 16 16 92 + 19 19 -1 -25 16 1 -1 + 1 1 -1 -25 16 1 13 + 19 1 1 1 -16 -1 -1 + 91 73 13 13 -28 -13 1 + -1 -19 25 1 16 16 -1 + -1 -19 25 1 1 1 11 + 1 19 25 25 -16 -1 -1 + 1 19 1 1 -16 -1 79 + 1 1 -25 -10 16 1 -1 + 31 31 -16 -1 16 1 22 + 31 25 22 + Block + 7 + -1 -31 1 25 1 1 -1 + -1 -31 1 25 16 16 6 + 31 31 -1 -10 1 22 -1 + -1 -10 1 22 1 1 64 + 1 1 -1 -25 22 1 -1 + 13 13 -1 -25 49 28 2 + 1 31 1 1 -22 -1 -1 + 13 43 13 13 -49 -28 1 + -1 -31 1 25 22 22 -1 + -1 -31 1 25 1 1 5 + 1 31 25 25 -22 -1 -1 + 1 31 1 1 -22 -1 12 + 31 31 -25 -10 22 1 -1 + 1 1 -16 -1 22 1 23 + 73 25 22 + Block + 13 + 1 1 -1 -10 1 22 -1 + -1 -10 1 22 16 16 65 + -19 -25 1 25 1 1 -1 + -1 -7 1 25 16 16 13 + -25 -52 1 10 1 1 -1 + -1 -28 1 10 16 16 16 + -52 -64 1 25 1 1 -1 + -1 -13 1 25 16 16 17 + -73 -64 1 25 1 1 -1 + -10 -1 1 25 16 16 20 + -25 -52 10 16 1 1 -1 + -1 -28 1 7 16 16 91 + -1 -19 25 1 1 1 -1 + -1 -19 25 1 16 16 9 + -25 -52 25 16 1 1 -1 + -1 -28 10 1 16 16 24 + 73 73 -1 -25 22 1 -1 + 1 1 -1 -25 49 28 4 + 73 1 1 1 -22 -1 -1 + 145 73 13 13 -49 -28 1 + -73 -1 1 25 22 22 -1 + -133 -61 1 25 1 1 5 + 1 1 -25 -10 22 1 -1 + 31 31 -16 -1 22 1 23 + 73 1 25 25 -22 -1 -1 + 73 1 1 1 -22 -1 80 + 61 16 22 + Block + 7 + -1 -61 1 16 1 1 -1 + -1 -61 1 16 16 16 8 + 1 31 1 1 -22 -1 -1 + 1 31 25 25 -22 -1 10 + 31 61 1 1 -22 -1 -1 + 1 31 16 16 -22 -1 23 + 61 61 -1 -16 22 1 -1 + 1 1 -1 -16 22 1 80 + 1 1 -16 -1 22 1 -1 + 13 13 -40 -25 49 28 2 + 1 61 16 16 -22 -1 -1 + 13 73 1 1 -49 -28 3 + -1 -61 16 1 22 22 -1 + -1 -61 40 25 1 1 5 + 7 25 16 + Block + 8 + -1 -7 1 25 1 1 -1 + -1 -7 1 25 16 16 42 + 1 1 -1 -25 16 1 -1 + 19 19 -1 -25 16 1 9 + 1 7 1 1 -16 -1 -1 + 91 97 13 13 -28 -13 1 + -1 -7 1 25 16 16 -1 + -19 -25 1 25 1 1 11 + 7 7 -1 -10 16 1 -1 + 1 1 -1 -10 16 1 16 + 7 7 -10 -16 16 1 -1 + -1 -7 16 1 1 1 87 + 1 7 25 25 -16 -1 -1 + 1 7 1 1 -16 -1 14 + 7 7 -25 -16 16 1 -1 + 1 1 -10 -1 16 1 24 + 46 16 16 + Block + 8 + 1 46 16 16 -1 -16 -1 + 91 136 1 1 -13 -28 3 + 1 1 -16 -1 1 16 -1 + 19 19 -16 -1 1 16 79 + -1 -46 16 1 1 1 -1 + -1 -46 16 1 7 7 15 + 46 46 -16 -1 1 16 -1 + 1 1 -16 -1 1 16 21 + -1 -46 1 16 16 16 -1 + -19 -64 1 16 1 1 80 + 1 7 1 1 -16 -1 -1 + 1 7 25 25 -16 -1 13 + 7 34 1 1 -16 -1 -1 + 1 28 10 10 -16 -1 24 + 34 46 1 1 -16 -1 -1 + 1 13 25 25 -16 -1 17 + 46 16 7 + Block + 8 + -1 -46 1 16 1 1 -1 + -1 -46 1 16 16 16 73 + 1 7 1 1 -7 -1 -1 + -7 -1 1 7 16 16 43 + 7 34 1 1 -7 -1 -1 + -7 -1 1 28 16 16 46 + 34 46 1 1 -7 -1 -1 + -7 -1 1 13 16 16 50 + 1 46 16 16 -7 -1 -1 + 91 136 1 1 -13 -7 3 + -1 -46 16 1 7 7 -1 + -1 -46 16 1 1 1 14 + 1 1 -16 -1 7 1 -1 + 19 19 -16 -1 13 7 78 + 46 46 -16 -1 7 1 -1 + 1 1 -16 -1 7 1 19 + 28 10 16 + Block + 6 + -1 -28 1 10 1 1 -1 + -1 -28 1 10 16 16 45 + 1 1 -1 -10 16 1 -1 + 7 7 -1 -10 16 1 13 + 1 28 1 1 -16 -1 -1 + 97 124 13 13 -28 -13 1 + -1 -28 1 10 16 16 -1 + -25 -52 1 10 1 1 11 + 28 28 -1 -10 16 1 -1 + 1 1 -1 -10 16 1 17 + 1 28 10 10 -16 -1 -1 + -16 -1 1 28 1 1 89 + 13 25 16 + Block + 8 + -1 -13 1 25 1 1 -1 + -1 -13 1 25 16 16 49 + 1 1 -1 -10 16 1 -1 + 28 28 -1 -10 16 1 16 + 1 13 1 1 -16 -1 -1 + 124 136 13 13 -28 -13 1 + -1 -13 1 25 16 16 -1 + -52 -64 1 25 1 1 11 + 13 13 -1 -25 16 1 -1 + 1 1 -1 -25 16 1 20 + 1 1 -10 -16 16 1 -1 + -1 -7 16 1 16 16 88 + 1 1 -25 -16 16 1 -1 + 28 28 -10 -1 16 1 24 + 1 13 25 25 -16 -1 -1 + 34 46 1 1 -16 -1 14 + 10 16 7 + Block + 6 + -1 -10 1 16 1 1 -1 + -10 -1 16 1 7 7 110 + 1 1 -1 -16 1 7 -1 + -1 -16 1 7 16 16 75 + 10 1 1 1 -1 -7 -1 + -1 -7 10 1 16 16 54 + 10 10 -16 -1 1 7 -1 + 1 1 -40 -25 1 7 4 + 10 1 16 16 -1 -7 -1 + 145 136 1 1 -1 -7 3 + -10 -1 16 1 7 7 -1 + -10 -1 16 1 1 1 19 + 10 16 7 + Block + 6 + -10 -1 16 1 1 1 -1 + -10 -1 16 1 7 7 18 + 1 10 1 1 -7 -1 -1 + -7 -1 1 10 16 16 55 + 1 1 -16 -1 7 1 -1 + 46 46 -16 -1 7 1 15 + -10 -1 16 1 7 7 -1 + -10 -1 16 1 1 1 21 + 10 10 -16 -1 7 1 -1 + 1 1 -40 -25 13 7 4 + 10 1 16 16 -7 -1 -1 + 145 136 1 1 -13 -7 3 + 10 25 16 + Block + 6 + -1 -10 1 25 1 1 -1 + -1 -10 1 25 16 16 53 + 1 1 -1 -25 16 1 -1 + 13 13 -1 -25 16 1 17 + 10 10 -1 -25 16 1 -1 + 1 1 -1 -25 28 13 4 + 10 1 1 1 -16 -1 -1 + 145 136 13 13 -28 -13 1 + -10 -1 1 25 16 16 -1 + -73 -64 1 25 1 1 11 + 10 1 25 25 -16 -1 -1 + 10 1 1 1 -16 -1 21 + 10 16 16 + Block + 6 + 1 1 -16 -1 1 16 -1 + 46 46 -16 -1 1 16 14 + 10 10 -16 -1 1 16 -1 + 1 1 -40 -25 13 28 4 + 10 1 16 16 -1 -16 -1 + 145 136 1 1 -13 -28 3 + -10 -1 16 1 1 1 -1 + -10 -1 16 1 7 7 19 + -10 -1 1 16 16 16 -1 + -73 -64 1 16 1 1 80 + 10 1 1 1 -16 -1 -1 + 10 1 25 25 -16 -1 20 + 31 16 16 + Block + 6 + 1 31 1 1 -1 -16 -1 + -1 -16 1 31 16 16 63 + -1 -31 16 1 1 1 -1 + -1 -31 16 1 16 16 36 + -1 -31 16 1 16 16 -1 + -1 -31 16 1 1 1 23 + 1 1 -16 -1 16 1 -1 + 31 31 -25 -10 16 1 6 + 1 31 16 16 -16 -1 -1 + 31 61 1 1 -16 -1 8 + 31 31 -16 -1 16 1 -1 + 1 1 -25 -10 16 1 9 + 31 16 22 + Block + 6 + 1 31 1 1 -1 -22 -1 + -1 -22 1 31 16 16 67 + -1 -31 16 1 1 1 -1 + -1 -31 16 1 16 16 22 + 1 1 -16 -1 22 1 -1 + 31 31 -25 -10 22 1 10 + 1 31 16 16 -22 -1 -1 + 31 61 1 1 -22 -1 12 + -1 -31 16 1 22 22 -1 + -31 -61 25 10 1 1 5 + 31 31 -16 -1 22 1 -1 + 1 1 -25 -10 22 1 11 + 28 10 16 + Block + 6 + 1 28 1 1 -1 -16 -1 + -1 -16 1 28 16 16 90 + -1 -28 10 1 1 1 -1 + -1 -28 10 1 16 16 47 + 1 1 -10 -1 16 1 -1 + 7 7 -25 -16 16 1 13 + 1 28 10 10 -16 -1 -1 + 7 34 1 1 -16 -1 14 + -1 -28 10 1 16 16 -1 + -25 -52 25 16 1 1 11 + 28 28 -10 -1 16 1 -1 + 1 1 -25 -16 16 1 17 + 25 13 16 + Block + 6 + -1 -25 1 1 1 16 -1 + -25 -1 13 13 16 1 117 + 1 25 1 13 16 16 2 + 1 1 1 13 -16 -1 -1 + 1 13 1 1 -16 -1 26 + -1 -25 1 13 1 1 -1 + 13 13 -1 -25 1 13 2 + 25 25 1 13 -16 -1 -1 + 1 13 1 1 -1 -16 28 + -1 -25 13 13 16 1 -1 + 1 1 -1 -25 1 16 27 + 13 10 16 + Block + 6 + 1 1 -1 -10 1 16 -1 + 13 13 -10 -1 16 1 118 + 1 13 1 10 16 16 2 + 1 13 1 1 -16 -1 -1 + 1 1 1 13 -16 -1 25 + -1 -13 1 10 1 1 -1 + 13 22 13 13 -1 -13 1 + 1 13 10 10 -16 -1 -1 + 1 13 1 1 -16 -1 29 + 13 13 1 10 -16 -1 -1 + 1 10 1 1 -1 -16 27 + 10 25 16 + Block + 6 + 1 10 1 25 1 1 2 + 1 1 -1 -25 1 16 -1 + -1 -25 13 13 16 1 25 + 1 10 1 1 -1 -16 -1 + 13 13 1 10 -16 -1 26 + -1 -10 1 25 16 16 -1 + -1 -10 1 25 1 1 6 + 10 10 -1 -25 1 16 -1 + 1 1 -1 -25 1 16 30 + -1 -10 25 25 1 16 -1 + 13 13 -1 -10 1 16 28 + 13 10 16 + Block + 6 + 1 1 -1 -10 1 16 -1 + 13 13 -10 -1 16 1 120 + 1 13 1 10 1 1 2 + 1 13 1 1 -1 -16 -1 + 25 25 1 13 -16 -1 25 + -1 -13 1 10 16 16 -1 + 1 10 1 1 -1 -13 7 + 1 13 10 10 -1 -16 -1 + 1 13 1 1 -1 -16 31 + 13 13 -1 -10 1 16 -1 + -1 -10 25 25 1 16 27 + 13 7 16 + Block + 6 + 1 1 -1 -7 1 16 -1 + 13 13 -7 -1 16 1 121 + 1 13 1 7 16 16 2 + 1 13 1 1 -16 -1 -1 + 1 13 10 10 -16 -1 26 + -1 -13 1 7 1 1 -1 + 22 28 13 13 -1 -13 1 + 1 13 7 7 -16 -1 -1 + 1 13 1 1 -16 -1 32 + 13 13 1 7 -16 -1 -1 + 1 7 1 1 -1 -16 30 + 7 25 16 + Block + 6 + 1 7 1 25 1 1 2 + 1 1 -1 -25 1 16 -1 + 10 10 -1 -25 1 16 27 + 1 7 1 1 -1 -16 -1 + 13 13 1 7 -16 -1 29 + -1 -7 1 25 16 16 -1 + -10 -16 1 25 1 1 6 + 7 7 -1 -25 1 16 -1 + 1 1 -1 -25 1 16 33 + -1 -7 25 25 1 16 -1 + 13 13 -1 -7 1 16 31 + 13 7 16 + Block + 6 + 1 1 -1 -7 1 16 -1 + 13 13 -7 -1 16 1 123 + 1 13 1 7 1 1 2 + 1 13 1 1 -1 -16 -1 + 1 13 10 10 -1 -16 28 + -1 -13 1 7 16 16 -1 + 10 16 1 1 -1 -13 7 + 1 13 7 7 -1 -16 -1 + 1 13 1 1 -1 -16 34 + 13 13 -1 -7 1 16 -1 + -1 -7 25 25 1 16 30 + 13 16 16 + Block + 6 + 1 1 -1 -16 1 16 -1 + 13 13 -16 -1 16 1 124 + 1 13 1 16 16 16 2 + 1 13 1 1 -16 -1 -1 + 1 13 7 7 -16 -1 29 + -1 -13 1 16 1 1 -1 + 28 43 13 13 -1 -13 1 + 1 13 16 16 -16 -1 -1 + 1 13 1 1 -16 -1 35 + 13 13 1 16 -16 -1 -1 + 1 16 1 1 -1 -16 33 + 16 25 16 + Block + 7 + 1 16 1 25 1 1 2 + 1 1 -1 -25 1 16 -1 + 7 7 -1 -25 1 16 30 + 1 16 1 1 -1 -16 -1 + 13 13 1 16 -16 -1 32 + -1 -16 1 25 16 16 -1 + -16 -31 1 25 1 1 6 + 16 16 -1 -10 1 16 -1 + -1 -10 1 16 1 1 56 + 16 16 -25 -10 1 16 -1 + 1 1 -16 -1 1 16 36 + -16 -1 25 25 1 16 -1 + 13 13 -16 -1 1 16 34 + 13 16 16 + Block + 6 + 1 1 -1 -16 1 16 -1 + 13 13 -16 -1 16 1 126 + 1 13 1 16 1 1 2 + 1 13 1 1 -1 -16 -1 + 1 13 7 7 -1 -16 31 + -1 -13 1 16 16 16 -1 + 16 31 1 1 -1 -13 7 + 1 13 16 16 -1 -16 -1 + 1 13 1 1 -1 -16 37 + 13 13 -16 -1 1 16 -1 + -16 -1 25 25 1 16 33 + 13 31 16 + Block + 6 + 1 1 -1 -31 1 16 -1 + 13 13 -31 -1 16 1 127 + 1 13 1 31 16 16 2 + 1 13 1 1 -16 -1 -1 + 1 13 16 16 -16 -1 32 + -1 -13 1 31 1 1 -1 + 43 73 13 13 -1 -13 1 + 1 13 31 31 -16 -1 -1 + 1 13 1 1 -16 -1 38 + 13 13 1 31 -16 -1 -1 + -1 -16 1 31 1 1 58 + 31 16 16 + Block + 6 + 1 31 1 16 1 1 2 + 1 31 1 1 -1 -16 -1 + -1 -16 1 31 16 16 59 + 1 1 -16 -1 1 16 -1 + 16 16 -25 -10 1 16 33 + -1 -31 16 16 1 16 -1 + 13 13 -1 -31 1 16 37 + -1 -31 16 1 16 16 -1 + -1 -31 16 1 1 1 22 + 31 31 -16 -1 1 16 -1 + 1 1 -16 -1 1 16 92 + 13 31 16 + Block + 6 + 1 1 -1 -31 1 16 -1 + 13 13 -31 -1 16 1 129 + 1 13 1 31 1 1 2 + 1 13 1 1 -1 -16 -1 + 1 13 16 16 -1 -16 34 + -1 -13 1 31 16 16 -1 + 31 61 1 1 -1 -13 7 + 1 13 31 31 -1 -16 -1 + 1 13 1 1 -1 -16 40 + 13 13 -1 -31 1 16 -1 + -1 -31 16 16 1 16 36 + 13 19 16 + Block + 6 + 1 1 -1 -19 1 16 -1 + 13 13 -19 -1 16 1 130 + 1 13 1 19 16 16 2 + 1 13 1 1 -16 -1 -1 + 1 13 31 31 -16 -1 35 + -1 -13 1 19 1 1 -1 + 73 91 13 13 -1 -13 1 + 1 13 19 19 -16 -1 -1 + 1 13 1 1 -16 -1 41 + 13 13 19 1 -16 -1 -1 + 19 1 1 1 -1 -16 39 + 19 10 16 + Block + 6 + 1 19 1 10 1 1 2 + 1 1 -1 -10 1 16 -1 + -1 -10 1 16 16 16 57 + 19 19 -1 -10 1 16 -1 + 1 1 -1 -10 1 16 42 + 19 1 1 1 -1 -16 -1 + 13 13 19 1 -16 -1 38 + -19 -1 1 10 16 16 -1 + -19 -1 1 10 1 1 9 + 19 1 10 10 -1 -16 -1 + 19 1 1 1 -1 -16 92 + 13 19 16 + Block + 7 + 1 1 -1 -19 1 16 -1 + 13 13 -19 -1 16 1 132 + 1 13 1 19 1 1 2 + 1 13 1 1 -1 -16 -1 + 1 13 31 31 -1 -16 37 + -1 -13 1 19 16 16 -1 + 1 19 1 1 -1 -13 78 + 1 7 19 19 -1 -16 -1 + -1 -16 1 7 1 1 70 + 13 13 1 19 -1 -16 -1 + 1 19 16 16 -1 -16 92 + 13 7 19 19 -1 -16 -1 + 7 1 1 1 -1 -16 43 + 13 7 16 + Block + 6 + 1 1 -1 -7 1 16 -1 + 13 13 -7 -1 16 1 133 + 1 13 1 7 16 16 2 + 1 13 1 1 -16 -1 -1 + 1 13 19 19 -16 -1 38 + -1 -13 1 7 1 1 -1 + 91 97 13 13 -1 -13 1 + 1 13 7 7 -16 -1 -1 + 1 13 1 1 -16 -1 44 + 13 13 1 7 -16 -1 -1 + 1 7 1 1 -1 -16 42 + 7 25 16 + Block + 9 + 1 7 1 25 1 1 2 + 1 1 -1 -10 1 16 -1 + 19 19 -1 -10 1 16 39 + 1 7 1 1 -1 -16 -1 + 13 13 1 7 -16 -1 41 + -1 -7 1 25 16 16 -1 + -1 -7 1 25 1 1 13 + 7 7 -1 -10 1 16 -1 + 1 1 -1 -10 1 16 45 + 7 7 -10 -16 1 16 -1 + -1 -7 1 16 1 1 83 + 1 1 -25 -10 1 16 -1 + 19 19 -16 -1 1 16 92 + -1 -7 25 25 1 16 -1 + 7 7 -1 -7 1 16 43 + 7 7 -25 -16 1 16 -1 + 1 1 -10 -1 1 16 47 + 7 7 16 + Block + 6 + 1 7 1 7 1 1 2 + 1 1 -1 -7 1 16 -1 + -1 -7 1 16 16 16 69 + 7 7 -1 -7 1 16 -1 + -1 -7 25 25 1 16 42 + 7 1 1 1 -1 -16 -1 + 13 7 19 19 -1 -16 40 + -7 -1 1 7 16 16 -1 + 1 7 1 1 -7 -1 15 + 7 1 7 7 -1 -16 -1 + 7 1 1 1 -1 -16 46 + 13 28 16 + Block + 6 + 1 1 -1 -28 1 16 -1 + 13 13 -28 -1 16 1 136 + 1 13 1 28 16 16 2 + 1 13 1 1 -16 -1 -1 + 1 13 7 7 -16 -1 41 + -1 -13 1 28 1 1 -1 + 97 124 13 13 -1 -13 1 + 1 13 28 28 -16 -1 -1 + 1 13 1 1 -16 -1 48 + 13 13 1 28 -16 -1 -1 + 1 28 1 1 -1 -16 45 + 28 10 16 + Block + 6 + 1 28 1 10 1 1 2 + 1 1 -1 -10 1 16 -1 + 7 7 -1 -10 1 16 42 + 1 28 1 1 -1 -16 -1 + 13 13 1 28 -16 -1 44 + -1 -28 1 10 16 16 -1 + -1 -28 1 10 1 1 16 + 28 28 -1 -10 1 16 -1 + 1 1 -1 -10 1 16 49 + 1 28 10 10 -1 -16 -1 + -1 -16 1 28 1 1 85 + 7 28 16 + Block + 6 + 1 7 1 28 1 1 2 + 1 1 -1 -28 1 16 -1 + -1 -28 1 16 16 16 74 + 7 7 1 28 -1 -16 -1 + 1 28 10 10 -1 -16 47 + 7 1 1 1 -1 -16 -1 + 7 1 7 7 -1 -16 43 + -7 -1 1 28 16 16 -1 + 7 34 1 1 -7 -1 15 + 7 1 28 28 -1 -16 -1 + 7 1 1 1 -1 -16 50 + 28 10 16 + Block + 6 + 1 28 1 10 1 1 2 + 1 28 1 1 -1 -16 -1 + -1 -16 1 28 16 16 86 + 1 1 -10 -1 1 16 -1 + 7 7 -25 -16 1 16 42 + 1 28 10 10 -1 -16 -1 + 7 7 1 28 -1 -16 46 + -1 -28 10 1 16 16 -1 + -1 -28 10 1 1 1 24 + 28 28 -10 -1 1 16 -1 + 1 1 -25 -16 1 16 49 + 13 13 16 + Block + 6 + 1 1 -1 -13 1 16 -1 + 13 13 -13 -1 16 1 140 + 1 13 1 13 16 16 2 + 1 13 1 1 -16 -1 -1 + 1 13 28 28 -16 -1 44 + -1 -13 1 13 1 1 -1 + 124 136 13 13 -1 -13 1 + 1 13 13 13 -16 -1 -1 + 1 13 1 1 -16 -1 52 + 13 13 1 13 -16 -1 -1 + 1 13 1 1 -1 -16 49 + 13 25 16 + Block + 8 + 1 13 1 25 1 1 2 + 1 1 -1 -10 1 16 -1 + 28 28 -1 -10 1 16 45 + 1 13 1 1 -1 -16 -1 + 13 13 1 13 -16 -1 48 + -1 -13 1 25 16 16 -1 + -1 -13 1 25 1 1 17 + 13 13 -1 -25 1 16 -1 + 1 1 -1 -25 1 16 53 + 1 1 -10 -16 1 16 -1 + -1 -7 1 16 16 16 84 + 1 1 -25 -16 1 16 -1 + 28 28 -10 -1 1 16 47 + -1 -13 25 25 1 16 -1 + 7 7 -1 -13 1 16 50 + 7 13 16 + Block + 6 + 1 7 1 13 1 1 2 + 1 1 -1 -13 1 16 -1 + -1 -13 1 16 16 16 76 + 7 7 -1 -13 1 16 -1 + -1 -13 25 25 1 16 49 + 7 1 1 1 -1 -16 -1 + 7 1 28 28 -1 -16 46 + -7 -1 1 13 16 16 -1 + 34 46 1 1 -7 -1 15 + 7 1 13 13 -1 -16 -1 + 7 1 1 1 -1 -16 55 + 25 13 16 + Block + 7 + -1 -25 1 1 1 16 -1 + -25 -1 13 13 16 1 143 + 1 25 1 13 1 1 2 + 1 1 1 13 -1 -16 -1 + 1 13 10 10 -16 -1 52 + -1 -25 1 13 16 16 -1 + 1 1 -1 -25 1 13 4 + 25 25 1 7 -1 -16 -1 + 1 7 10 10 -1 -16 54 + -1 -25 13 13 1 16 -1 + 10 10 -1 -25 1 16 53 + 25 25 13 7 -1 -16 -1 + 7 1 10 10 -1 -16 55 + 13 10 16 + Block + 6 + 1 1 -1 -10 1 16 -1 + 13 13 -10 -1 16 1 144 + 1 13 1 10 16 16 2 + 1 13 1 1 -16 -1 -1 + 1 13 13 13 -16 -1 48 + -1 -13 1 10 1 1 -1 + 136 145 13 13 -1 -13 1 + 1 13 10 10 -16 -1 -1 + 1 1 1 13 -1 -16 51 + 13 13 10 1 -16 -1 -1 + 10 1 1 1 -1 -16 53 + 10 25 16 + Block + 6 + 1 10 1 25 1 1 2 + 1 1 -1 -25 1 16 -1 + 13 13 -1 -25 1 16 49 + -1 -10 1 25 16 16 -1 + -1 -10 1 25 1 1 20 + 10 10 -1 -25 1 16 -1 + -1 -25 13 13 1 16 51 + 10 1 1 1 -1 -16 -1 + 13 13 10 1 -16 -1 52 + -10 -1 25 25 1 16 -1 + 7 7 -10 -1 1 16 55 + 7 10 16 + Block + 6 + 1 1 -1 -10 1 16 -1 + 7 7 -10 -1 16 1 146 + 1 7 1 10 1 1 2 + 1 7 1 1 -1 -16 -1 + -1 -16 1 7 16 16 77 + 1 7 10 10 -1 -16 -1 + 25 25 1 7 -1 -16 51 + -1 -7 10 1 16 16 -1 + 10 1 1 1 -1 -7 18 + 7 7 -10 -1 1 16 -1 + 1 1 -10 -1 1 16 55 + 7 10 16 + Block + 6 + 1 7 1 10 1 1 2 + 1 1 -10 -1 1 16 -1 + 7 7 -10 -1 1 16 54 + 7 1 1 1 -1 -16 -1 + 7 1 13 13 -1 -16 50 + -7 -1 1 10 16 16 -1 + 1 10 1 1 -7 -1 19 + 7 7 -10 -1 1 16 -1 + -10 -1 25 25 1 16 53 + 7 1 10 10 -1 -16 -1 + 25 25 13 7 -1 -16 51 + 10 16 16 + Block + 6 + 1 10 1 1 1 16 2 + 1 10 1 16 16 16 2 + 1 1 1 16 -16 -1 -1 + 1 16 1 1 -16 -1 58 + 1 10 16 16 -16 -1 -1 + 1 10 1 1 -16 -1 60 + -1 -10 1 16 1 1 -1 + 16 16 -1 -10 1 16 33 + 10 10 1 16 -16 -1 -1 + 1 16 1 1 -1 -16 59 + 10 16 16 + Block + 6 + 1 10 1 1 1 16 2 + 1 10 1 16 1 1 2 + 1 1 1 16 -1 -16 -1 + 1 16 31 31 -16 -1 58 + 1 10 16 16 -1 -16 -1 + 1 10 1 1 -1 -16 61 + -1 -10 1 16 16 16 -1 + 1 1 -1 -10 1 16 39 + 10 10 1 16 -1 -16 -1 + 1 16 31 31 -1 -16 59 + 16 31 16 + Block + 6 + 1 1 1 31 1 16 2 + 1 16 1 31 16 16 2 + 1 16 1 1 -16 -1 -1 + 1 1 1 16 -16 -1 56 + 16 16 -1 -31 16 1 -1 + 1 1 -1 -31 16 1 62 + -1 -16 1 31 1 1 -1 + 13 13 1 31 -16 -1 35 + 1 16 31 31 -16 -1 -1 + 1 1 1 16 -1 -16 57 + 16 31 16 + Block + 6 + 1 1 1 31 1 16 2 + 1 16 1 31 1 1 2 + 1 16 1 1 -1 -16 -1 + 10 10 1 16 -16 -1 56 + 16 16 -1 -31 1 16 -1 + 1 1 -1 -31 1 16 63 + -1 -16 1 31 16 16 -1 + 1 31 1 1 -1 -16 36 + 1 16 31 31 -1 -16 -1 + 10 10 1 16 -1 -16 57 + 10 16 16 + Block + 6 + 1 10 1 16 16 16 2 + 1 10 1 1 -16 -1 -1 + 1 10 16 16 -16 -1 56 + -1 -10 1 16 1 1 -1 + 31 31 -1 -10 1 16 6 + 1 10 16 16 -16 -1 -1 + 1 10 1 1 -16 -1 64 + 1 1 16 1 -16 -1 -1 + 16 1 1 1 -16 -1 62 + 10 10 16 1 -16 -1 -1 + 16 1 1 1 -1 -16 63 + 10 16 16 + Block + 6 + 1 10 1 16 1 1 2 + 1 10 1 1 -1 -16 -1 + 1 10 16 16 -1 -16 57 + -1 -10 1 16 16 16 -1 + 1 1 -1 -10 1 16 9 + 1 10 16 16 -1 -16 -1 + 1 10 1 1 -1 -16 65 + 1 1 16 1 -1 -16 -1 + 16 1 31 31 -16 -1 62 + 10 10 16 1 -1 -16 -1 + 16 1 31 31 -1 -16 63 + 16 31 16 + Block + 6 + 1 16 1 31 16 16 2 + 1 1 -1 -31 16 1 -1 + 16 16 -1 -31 16 1 58 + -1 -16 1 31 1 1 -1 + 43 73 13 13 -13 -28 1 + 16 16 -1 -31 16 1 -1 + 1 1 -1 -31 16 1 66 + 16 1 1 1 -16 -1 -1 + 1 1 16 1 -16 -1 60 + 16 1 31 31 -16 -1 -1 + 1 1 16 1 -1 -16 61 + 16 31 16 + Block + 6 + 1 16 1 31 1 1 2 + 1 1 -1 -31 1 16 -1 + 16 16 -1 -31 1 16 59 + -1 -16 1 31 16 16 -1 + 1 31 1 1 -1 -16 22 + 16 16 -1 -31 1 16 -1 + 1 1 -1 -31 1 16 67 + 16 1 1 1 -1 -16 -1 + 10 10 16 1 -16 -1 60 + 16 1 31 31 -1 -16 -1 + 10 10 16 1 -1 -16 61 + 10 22 16 + Block + 6 + 1 10 1 22 16 16 2 + 1 10 1 1 -16 -1 -1 + 1 10 16 16 -16 -1 60 + -1 -10 1 22 1 1 -1 + 31 31 -1 -10 1 22 10 + 10 10 1 22 -16 -1 -1 + 1 22 1 1 -1 -16 67 + -1 -10 22 22 16 1 -1 + 1 1 -1 -10 1 16 68 + 1 1 22 1 -16 -1 -1 + 22 1 1 1 -16 -1 66 + 10 22 16 + Block + 6 + 1 10 1 22 1 1 2 + 1 10 1 1 -1 -16 -1 + 1 10 16 16 -1 -16 61 + -1 -10 1 22 16 16 -1 + 1 1 -1 -10 1 22 11 + 10 10 1 22 -1 -16 -1 + 1 22 31 31 -1 -16 67 + -1 -10 22 22 1 16 -1 + 31 31 -1 -10 1 16 68 + 1 1 22 1 -1 -16 -1 + 22 1 31 31 -16 -1 66 + 22 31 16 + Block + 6 + 1 22 1 31 16 16 2 + 1 1 -1 -31 16 1 -1 + 16 16 -1 -31 16 1 62 + -1 -22 1 31 1 1 -1 + 43 73 13 13 -28 -49 1 + 22 22 1 31 -16 -1 -1 + 1 31 1 1 -1 -16 68 + 22 1 1 1 -16 -1 -1 + 1 1 22 1 -16 -1 64 + 22 1 31 31 -16 -1 -1 + 1 1 22 1 -1 -16 65 + 22 31 16 + Block + 6 + 1 22 1 31 1 1 2 + 1 1 -1 -31 1 16 -1 + 16 16 -1 -31 1 16 63 + 1 22 1 1 -1 -16 -1 + 10 10 1 22 -16 -1 64 + -1 -22 1 31 16 16 -1 + 1 31 1 1 -1 -22 23 + 1 22 31 31 -1 -16 -1 + 10 10 1 22 -1 -16 65 + 22 22 1 31 -1 -16 -1 + 1 31 10 10 -1 -16 68 + 31 10 16 + Block + 6 + 1 31 1 10 1 1 2 + 1 1 -1 -10 1 16 -1 + -1 -10 22 22 16 1 64 + 1 31 1 1 -1 -16 -1 + 22 22 1 31 -16 -1 66 + -1 -31 1 10 16 16 -1 + -31 -61 1 10 1 1 5 + 31 31 -1 -10 1 16 -1 + -1 -10 22 22 1 16 65 + 1 31 10 10 -1 -16 -1 + 22 22 1 31 -1 -16 67 + 7 16 16 + Block + 6 + 1 7 1 1 1 16 2 + 1 7 1 16 1 1 2 + 1 1 1 16 -1 -16 -1 + 1 16 7 7 -16 -1 70 + 1 7 16 16 -1 -16 -1 + 1 7 1 1 -1 -16 73 + -1 -7 1 16 16 16 -1 + 1 1 -1 -7 1 16 43 + 7 7 -1 -16 1 16 -1 + 1 1 -1 -16 1 16 74 + 16 7 16 + Block + 6 + 1 1 1 7 1 16 2 + -1 -16 1 1 1 16 -1 + -16 -1 7 7 16 1 162 + 1 16 1 7 16 16 2 + 16 16 -1 -7 16 1 -1 + 1 1 -1 -7 16 1 71 + -1 -16 1 7 1 1 -1 + 1 7 19 19 -1 -16 40 + 1 16 7 7 -16 -1 -1 + 1 1 1 16 -1 -16 69 + 16 7 16 + Block + 6 + -1 -16 1 1 1 16 -1 + -16 -1 7 7 16 1 163 + 1 16 1 7 16 16 2 + 1 1 -1 -7 16 1 -1 + 16 16 -1 -7 16 1 70 + -1 -16 1 7 1 1 -1 + 19 19 -1 -16 1 7 78 + 16 16 1 7 -16 -1 -1 + 1 7 1 1 -1 -16 72 + -16 -1 7 7 16 1 -1 + 1 1 -16 -1 1 16 73 + 7 46 16 + Block + 6 + 1 1 -1 -46 1 16 -1 + 7 7 -46 -1 16 1 164 + 1 7 1 46 1 1 2 + 1 7 1 1 -1 -16 -1 + 16 16 1 7 -16 -1 71 + -1 -7 1 46 16 16 -1 + 91 136 1 1 -1 -7 3 + -1 -7 46 46 1 16 -1 + 16 16 -1 -7 1 16 75 + 7 7 1 46 -1 -16 -1 + 1 46 16 16 -1 -16 73 + 46 16 16 + Block + 8 + 1 46 1 16 1 1 2 + 1 7 1 1 -1 -16 -1 + 1 7 16 16 -1 -16 69 + -1 -46 1 16 16 16 -1 + -1 -46 1 16 1 1 15 + 7 34 1 1 -1 -16 -1 + 1 28 16 16 -1 -16 74 + 34 46 1 1 -1 -16 -1 + 1 13 16 16 -1 -16 76 + 1 1 -16 -1 1 16 -1 + -16 -1 7 7 16 1 71 + 1 46 16 16 -1 -16 -1 + 7 7 1 46 -1 -16 72 + 46 46 16 1 -1 -16 -1 + 16 1 7 7 -1 -16 75 + 28 16 16 + Block + 6 + 1 28 1 1 1 16 2 + 1 28 1 16 1 1 2 + 1 1 -1 -16 1 16 -1 + 7 7 -1 -16 1 16 69 + 1 28 16 16 -1 -16 -1 + 7 34 1 1 -1 -16 73 + -1 -28 1 16 16 16 -1 + 1 1 -1 -28 1 16 46 + 28 28 -1 -16 1 16 -1 + 1 1 -1 -16 1 16 76 + 16 7 16 + Block + 6 + -1 -16 1 1 1 16 -1 + -16 -1 7 7 16 1 167 + 1 16 1 7 1 1 2 + 1 1 -1 -7 1 16 -1 + 16 16 -1 -7 1 16 77 + -1 -16 1 7 16 16 -1 + 1 1 -1 -16 1 7 18 + 16 16 -1 -7 1 16 -1 + -1 -7 46 46 1 16 72 + 16 1 7 7 -1 -16 -1 + 46 46 16 1 -1 -16 73 + 13 16 16 + Block + 6 + 1 13 1 1 1 16 2 + 1 13 1 16 1 1 2 + 1 1 -1 -16 1 16 -1 + 28 28 -1 -16 1 16 74 + 1 13 16 16 -1 -16 -1 + 34 46 1 1 -1 -16 73 + -1 -13 1 16 16 16 -1 + 1 1 -1 -13 1 16 50 + 13 13 1 16 -1 -16 -1 + 1 16 7 7 -1 -16 77 + 16 7 16 + Block + 6 + 1 1 1 7 1 16 2 + -1 -16 1 1 1 16 -1 + -16 -1 7 7 16 1 169 + 1 16 1 7 1 1 2 + 16 16 -1 -7 1 16 -1 + 1 1 -1 -7 1 16 75 + -1 -16 1 7 16 16 -1 + 1 7 1 1 -1 -16 54 + 1 16 7 7 -1 -16 -1 + 13 13 1 16 -1 -16 76 + 19 16 13 + Block + 7 + -1 -19 1 16 1 1 -1 + -19 -1 16 1 13 13 170 + 1 19 1 1 -1 -13 -1 + -1 -13 1 19 16 16 40 + 19 19 -1 -16 1 7 -1 + -1 -16 1 7 1 1 71 + 1 1 -16 -1 1 13 -1 + 61 61 -16 -1 1 13 7 + 1 19 16 16 -1 -13 -1 + 73 91 1 1 -1 -13 3 + -1 -19 16 1 13 13 -1 + -1 -19 16 1 1 1 79 + 19 19 -16 -1 13 7 -1 + 1 1 -16 -1 7 1 15 + 19 16 16 + Block + 6 + 1 1 -16 -1 1 16 -1 + 61 61 -16 -1 1 16 8 + 1 19 16 16 -1 -16 -1 + 73 91 1 1 -13 -28 3 + -1 -19 16 1 1 1 -1 + -1 -19 16 1 13 13 78 + 19 19 -16 -1 1 16 -1 + 1 1 -16 -1 1 16 14 + -1 -19 1 16 16 16 -1 + -1 -19 1 16 1 1 80 + 1 19 1 1 -16 -1 -1 + 1 19 25 25 -16 -1 9 + 73 16 22 + Block + 8 + -1 -19 1 16 1 1 -1 + -1 -19 1 16 16 16 79 + -19 -64 1 16 1 1 -1 + -1 -46 1 16 16 16 14 + -73 -64 1 16 1 1 -1 + -10 -1 1 16 16 16 21 + 1 1 -1 -16 22 1 -1 + 61 61 -1 -16 22 1 12 + 73 1 1 1 -22 -1 -1 + 73 1 25 25 -22 -1 11 + 73 73 -16 -1 22 1 -1 + 1 1 -40 -25 49 28 4 + 73 1 16 16 -22 -1 -1 + 145 73 1 1 -49 -28 3 + -73 -1 16 1 22 22 -1 + -133 -61 40 25 1 1 5 + 13 40 13 + Block + 6 + 1 1 1 40 1 13 4 + 1 13 1 40 13 13 4 + -1 -13 1 40 1 1 -1 + -1 -13 1 40 49 49 2 + 1 13 1 1 -13 -1 -1 + 1 13 13 13 -61 -49 1 + 13 13 -1 -40 13 1 -1 + 1 1 -1 -40 13 1 5 + 1 13 40 40 -13 -1 -1 + 1 13 1 1 -61 -49 3 + 13 40 13 + Block + 6 + 13 13 1 40 1 13 4 + 1 13 1 40 13 13 4 + -1 -13 1 40 1 1 -1 + -1 -13 1 40 49 49 4 + 1 1 -1 -40 13 1 -1 + 133 133 -1 -40 13 1 5 + 13 1 1 1 -13 -1 -1 + 157 145 13 13 -61 -49 1 + 13 1 40 40 -13 -1 -1 + 157 145 1 1 -61 -49 3 + 7 16 16 + Block + 6 + 1 7 1 1 1 16 2 + 1 7 1 16 16 16 2 + 1 1 1 16 -1 -16 -1 + 1 16 1 1 -1 -16 85 + -1 -7 1 16 1 1 -1 + 7 7 -10 -16 1 16 42 + 1 7 16 16 -1 -16 -1 + 1 7 1 1 -1 -16 87 + 7 7 1 16 -1 -16 -1 + 1 16 1 1 -16 -1 86 + 7 16 16 + Block + 6 + 1 7 1 1 1 16 2 + 1 7 1 16 1 1 2 + -1 -7 1 16 16 16 -1 + 1 1 -10 -16 1 16 49 + 1 1 1 16 -16 -1 -1 + 1 16 28 28 -1 -16 85 + 1 7 16 16 -16 -1 -1 + 1 7 1 1 -16 -1 88 + 7 7 1 16 -16 -1 -1 + 1 16 28 28 -16 -1 86 + 16 28 16 + Block + 6 + 1 1 1 28 1 16 2 + 1 16 1 28 16 16 2 + 1 16 1 1 -1 -16 -1 + 1 1 1 16 -1 -16 83 + -1 -16 1 28 1 1 -1 + 1 28 10 10 -1 -16 45 + 16 16 -1 -28 1 16 -1 + 1 1 -1 -28 1 16 89 + 1 16 28 28 -1 -16 -1 + 1 1 1 16 -16 -1 84 + 16 28 16 + Block + 6 + 1 1 1 28 1 16 2 + 1 16 1 28 1 1 2 + 1 16 1 1 -16 -1 -1 + 7 7 1 16 -1 -16 83 + -1 -16 1 28 16 16 -1 + 1 28 1 1 -1 -16 47 + 16 16 -1 -28 16 1 -1 + 1 1 -1 -28 16 1 90 + 1 16 28 28 -16 -1 -1 + 7 7 1 16 -16 -1 84 + 7 16 16 + Block + 6 + 1 7 1 16 16 16 2 + 1 7 1 1 -1 -16 -1 + 1 7 16 16 -1 -16 83 + 7 7 1 16 -1 -16 -1 + 1 16 1 1 -16 -1 90 + -1 -7 16 16 1 16 -1 + 1 1 -1 -7 16 1 91 + 1 1 16 1 -1 -16 -1 + 16 1 1 1 -1 -16 89 + -1 -7 16 1 1 1 -1 + 7 7 -10 -16 16 1 13 + 7 16 16 + Block + 6 + 1 7 1 16 1 1 2 + 1 7 1 1 -16 -1 -1 + 1 7 16 16 -16 -1 84 + 7 7 1 16 -16 -1 -1 + 1 16 28 28 -16 -1 90 + -1 -7 16 16 16 1 -1 + 28 28 -1 -7 16 1 91 + -1 -7 16 1 16 16 -1 + 1 1 -10 -16 16 1 17 + 1 1 16 1 -16 -1 -1 + 16 1 28 28 -1 -16 89 + 16 28 16 + Block + 6 + 1 16 1 28 16 16 2 + 1 1 -1 -28 1 16 -1 + 16 16 -1 -28 1 16 85 + 16 16 1 28 -1 -16 -1 + 1 28 1 1 -16 -1 91 + 16 1 1 1 -1 -16 -1 + 1 1 16 1 -1 -16 87 + -16 -1 1 28 1 1 -1 + 1 28 10 10 -16 -1 16 + 16 1 28 28 -1 -16 -1 + 1 1 16 1 -16 -1 88 + 16 28 16 + Block + 6 + 1 16 1 28 1 1 2 + 1 1 -1 -28 16 1 -1 + 16 16 -1 -28 16 1 86 + 1 16 1 1 -16 -1 -1 + 7 7 1 16 -1 -16 87 + -1 -16 1 28 16 16 -1 + 1 28 1 1 -1 -16 24 + 1 16 28 28 -16 -1 -1 + 7 7 1 16 -16 -1 88 + 16 16 1 28 -16 -1 -1 + 1 28 7 7 -16 -1 91 + 28 7 16 + Block + 6 + 1 28 1 7 1 1 2 + 1 1 -1 -7 16 1 -1 + -1 -7 16 16 1 16 87 + 1 28 1 1 -16 -1 -1 + 16 16 1 28 -1 -16 89 + -1 -28 1 7 16 16 -1 + -25 -52 10 16 1 1 11 + 28 28 -1 -7 16 1 -1 + -1 -7 16 16 16 1 88 + 1 28 7 7 -16 -1 -1 + 16 16 1 28 -16 -1 90 + 19 16 16 + Block + 6 + 1 19 1 16 1 1 2 + 19 1 1 1 -1 -16 -1 + 19 1 10 10 -1 -16 39 + 1 1 -16 -1 1 16 -1 + 31 31 -16 -1 1 16 36 + 1 19 16 16 -1 -16 -1 + 13 13 1 19 -1 -16 40 + -1 -19 16 1 16 16 -1 + -1 -19 25 10 1 1 9 + 19 19 -16 -1 1 16 -1 + 1 1 -25 -10 1 16 42 + 157 13 61 + Block + 29 + 157 157 13 1 61 1 4 + 1 1 13 1 61 1 4 + 157 1 13 13 61 1 4 + -157 -1 13 1 61 61 -1 + -1 -157 1 13 1 1 1 + 157 1 13 1 1 1 4 + 157 145 1 1 -61 -13 -1 + 13 1 40 40 -49 -1 94 + 145 136 1 1 -61 -49 -1 + -13 -1 10 1 16 16 118 + 136 130 1 1 -61 -49 -1 + -13 -1 7 1 16 16 121 + 130 115 1 1 -61 -49 -1 + -13 -1 16 1 16 16 124 + 115 85 1 1 -61 -49 -1 + -13 -1 31 1 16 16 127 + 85 67 1 1 -61 -49 -1 + -13 -1 19 1 16 16 130 + 67 61 1 1 -61 -49 -1 + -13 -1 7 1 16 16 133 + 61 34 1 1 -61 -49 -1 + -13 -1 28 1 16 16 136 + 34 22 1 1 -61 -49 -1 + -13 -1 13 1 16 16 140 + 22 13 1 1 -61 -49 -1 + -13 -1 10 1 16 16 144 + 1 13 1 1 -61 -13 -1 + 1 13 40 40 -49 -1 96 + 115 85 1 1 -49 -34 -1 + -16 -1 31 1 16 16 154 + 145 115 1 1 -34 -49 -1 + 31 1 25 25 -1 -16 98 + 115 85 1 1 -34 -13 -1 + -22 -1 31 1 16 16 158 + 67 61 1 1 -34 -49 -1 + 7 1 25 25 -1 -16 105 + 67 85 1 1 -34 -49 -1 + 1 19 25 25 -1 -16 101 + 61 34 1 1 -34 -49 -1 + 28 1 10 10 -1 -16 108 + 34 22 1 1 -34 -49 -1 + 13 1 25 25 -1 -16 109 + 13 22 1 1 -34 -49 -1 + 1 10 25 25 -1 -16 112 + 145 115 1 1 -13 -34 -1 + 31 1 25 25 -1 -22 102 + 13 85 1 1 -13 -34 -1 + 1 73 25 25 -1 -22 103 + 157 145 1 1 -1 -13 -1 + 13 1 40 40 -1 -13 173 + 145 13 1 1 -1 -13 -1 + 133 1 40 40 -1 -13 97 + 1 13 1 1 -1 -13 -1 + 1 13 40 40 -1 -13 174 + 13 40 49 + Block + 11 + 13 13 40 1 49 1 4 + -13 -1 40 1 49 49 -1 + -1 -13 1 40 1 1 2 + 13 1 40 40 -49 -1 -1 + 157 145 1 1 -61 -13 93 + 1 1 -40 -16 49 37 -1 + -25 -1 13 1 16 16 117 + 13 1 1 1 -49 -1 -1 + 157 145 13 13 -61 -13 95 + 1 1 -1 -16 49 37 -1 + 61 61 -1 -16 13 1 99 + 1 1 -1 -16 37 22 -1 + 61 61 -1 -16 16 1 100 + 1 1 -40 -16 22 37 -1 + 31 31 -25 -1 1 16 98 + -13 -1 40 1 1 1 -1 + -13 -1 40 1 13 13 173 + 1 1 -40 -16 1 22 -1 + 31 31 -25 -1 1 22 102 + 1 1 -1 -16 1 22 -1 + 61 61 -1 -16 1 22 104 + 157 13 61 + Block + 22 + 157 157 13 1 61 1 4 + 1 1 13 1 61 1 4 + 157 1 1 1 61 1 4 + -157 -1 13 1 61 61 -1 + -1 -157 1 13 1 1 3 + 157 1 13 1 1 1 4 + 157 145 13 13 -61 -13 -1 + 13 1 1 1 -49 -1 94 + 145 85 13 13 -61 -49 -1 + 61 1 1 1 -13 -1 99 + 85 67 13 13 -61 -49 -1 + 19 1 1 1 -13 -1 170 + 67 22 13 13 -61 -55 -1 + -7 -1 46 1 1 1 164 + 13 22 13 13 -61 -55 -1 + 1 10 1 1 -7 -1 110 + 1 13 13 13 -61 -13 -1 + 1 13 1 1 -49 -1 96 + 145 85 13 13 -49 -34 -1 + 61 1 1 1 -16 -1 100 + 85 67 13 13 -49 -34 -1 + 19 1 1 1 -16 -1 171 + 67 22 13 13 -49 -34 -1 + 46 1 1 1 -16 -1 106 + 67 22 13 13 -49 -55 -1 + 46 1 1 1 -1 -7 107 + 13 22 13 13 -49 -34 -1 + 1 10 1 1 -16 -1 113 + 13 22 13 13 -49 -55 -1 + 1 10 1 1 -1 -7 111 + 145 85 13 13 -13 -34 -1 + 61 1 1 1 -1 -22 104 + 13 85 13 13 -13 -34 -1 + 1 73 1 1 -1 -22 172 + 157 145 13 13 -1 -13 -1 + 13 1 1 1 -1 -13 173 + 145 13 13 13 -1 -13 -1 + 133 1 1 1 -1 -13 97 + 1 13 13 13 -1 -13 -1 + 1 13 1 1 -1 -13 174 + 13 40 49 + Block + 12 + 1 1 40 1 49 1 4 + -13 -1 40 1 49 49 -1 + -1 -13 1 40 1 1 4 + 13 13 -40 -16 49 37 -1 + -25 -1 13 1 1 1 143 + 1 13 40 40 -49 -1 -1 + 1 13 1 1 -61 -13 93 + 13 13 -1 -16 49 43 -1 + 1 1 -1 -16 7 1 110 + 1 13 1 1 -49 -1 -1 + 1 13 13 13 -61 -13 95 + 13 13 -1 -16 37 22 -1 + 1 1 -1 -16 16 1 113 + 13 13 -1 -16 37 43 -1 + 1 1 -1 -16 1 7 111 + 13 13 -40 -16 22 37 -1 + 1 1 -25 -1 1 16 112 + -13 -1 40 1 1 1 -1 + -13 -1 40 1 13 13 174 + 13 13 -40 -16 1 22 -1 + 1 1 -25 -1 1 22 103 + 13 13 -1 -16 1 22 -1 + 1 1 -1 -16 1 22 172 + 133 40 13 + Block + 11 + 133 1 40 1 1 1 4 + -133 -103 40 16 13 13 -1 + -31 -1 25 1 1 1 102 + -103 -73 40 31 13 13 -1 + -31 -1 10 1 1 1 160 + -1 -73 40 16 13 13 -1 + -1 -73 25 1 1 1 103 + -103 -73 16 31 13 13 -1 + -31 -1 1 16 1 1 115 + -133 -73 1 16 13 13 -1 + -61 -1 1 16 1 1 104 + -1 -73 1 16 13 13 -1 + -1 -73 1 16 1 1 172 + 133 1 40 40 -1 -13 -1 + 145 13 1 1 -1 -13 93 + 133 133 -40 -1 1 13 -1 + 1 1 -40 -1 1 13 173 + 1 1 -40 -1 1 13 -1 + 13 13 -40 -1 1 13 174 + 133 1 1 1 -1 -13 -1 + 145 13 13 13 -1 -13 95 + 31 25 16 + Block + 9 + -31 -22 25 1 16 16 -1 + -10 -1 25 1 1 1 119 + -22 -16 25 1 16 16 -1 + -7 -1 25 1 1 1 122 + -16 -1 25 1 16 16 -1 + -16 -1 25 1 1 1 125 + 1 1 -25 -16 16 1 -1 + -10 -1 16 1 16 16 152 + -31 -1 25 1 1 1 -1 + -31 -1 25 1 22 22 102 + 31 31 -25 -1 1 16 -1 + 1 1 -40 -16 22 37 94 + 31 1 25 25 -1 -16 -1 + 145 115 1 1 -34 -49 93 + 31 1 1 1 -1 -16 -1 + 61 31 16 16 -1 -16 100 + 1 1 -1 -16 1 16 -1 + 31 31 -1 -16 1 16 114 + 61 16 13 + Block + 9 + -61 -1 16 1 13 13 -1 + -1 -61 1 16 1 1 7 + 61 52 16 16 -13 -1 -1 + -13 -1 10 1 1 1 120 + 52 46 16 16 -13 -1 -1 + -13 -1 7 1 1 1 123 + 46 31 16 16 -13 -1 -1 + -13 -1 16 1 1 1 126 + 31 1 16 16 -13 -1 -1 + -13 -1 31 1 1 1 129 + 61 61 -1 -16 13 1 -1 + 1 1 -1 -16 49 37 94 + 61 1 1 1 -13 -1 -1 + 145 85 13 13 -61 -49 95 + 1 1 -1 -16 13 1 -1 + 19 19 -1 -16 13 1 170 + -61 -1 1 16 1 1 -1 + -61 -1 1 16 16 16 100 + 61 16 16 + Block + 7 + 61 61 -1 -16 16 1 -1 + 1 1 -1 -16 37 22 94 + 61 1 1 1 -16 -1 -1 + 145 85 13 13 -49 -34 95 + -61 -1 1 16 16 16 -1 + -61 -1 1 16 1 1 99 + 1 1 -1 -16 16 1 -1 + 19 19 -1 -16 16 1 171 + -61 -1 16 1 1 1 -1 + -61 -1 16 1 22 22 104 + 61 31 16 16 -1 -16 -1 + 31 1 1 1 -1 -16 98 + 31 1 16 16 -1 -16 -1 + 31 1 1 1 -1 -16 114 + 19 25 16 + Block + 8 + 19 19 -25 -16 16 1 -1 + -10 -1 16 1 1 1 153 + -1 -19 25 16 16 16 -1 + -1 -19 10 1 1 1 131 + -19 -1 1 16 16 16 -1 + -19 -1 1 16 1 1 184 + 1 1 -25 -1 1 16 -1 + 7 7 -25 -1 1 16 105 + 1 19 25 25 -1 -16 -1 + 67 85 1 1 -34 -49 93 + -19 -1 1 25 1 1 -1 + -73 -55 1 25 22 22 103 + 19 1 1 1 -1 -16 -1 + 19 1 16 16 -1 -16 171 + 19 19 -1 -16 1 16 -1 + 1 1 -1 -16 1 16 114 + 31 25 22 + Block + 7 + -31 -1 25 1 22 22 -1 + -31 -1 25 1 1 1 98 + 1 1 -25 -16 22 1 -1 + -10 -1 22 1 16 16 156 + 31 31 -25 -1 1 22 -1 + 1 1 -40 -16 1 22 94 + 31 1 25 25 -1 -22 -1 + 145 115 1 1 -13 -34 93 + -31 -1 25 1 1 1 -1 + -133 -103 40 16 13 13 97 + 31 1 1 1 -1 -22 -1 + 61 31 16 16 -1 -22 104 + 1 1 -1 -16 1 22 -1 + 31 31 -1 -16 1 22 115 + 73 25 22 + Block + 13 + 73 73 -25 -16 22 1 -1 + -10 -1 22 1 1 1 157 + -55 -49 25 1 22 22 -1 + -7 -1 25 1 1 1 105 + -49 -22 25 16 22 22 -1 + -28 -1 10 1 1 1 108 + -22 -10 25 1 22 22 -1 + -13 -1 25 1 1 1 109 + -1 -10 25 1 22 22 -1 + -1 -10 25 1 1 1 112 + -49 -22 16 10 22 22 -1 + -28 -1 7 1 1 1 183 + -73 -55 1 25 22 22 -1 + -19 -1 1 25 1 1 101 + -49 -22 1 10 22 22 -1 + -28 -1 1 10 1 1 116 + 1 1 -25 -1 1 22 -1 + 13 13 -40 -16 1 22 96 + 1 73 25 25 -1 -22 -1 + 13 85 1 1 -13 -34 93 + -1 -73 25 1 1 1 -1 + -1 -73 40 16 13 13 97 + 73 73 -1 -16 1 22 -1 + 1 1 -1 -16 1 22 115 + 1 73 1 1 -1 -22 -1 + 1 73 16 16 -1 -22 172 + 61 16 22 + Block + 7 + -61 -1 16 1 22 22 -1 + -61 -1 16 1 1 1 100 + 61 31 16 16 -1 -22 -1 + 31 1 1 1 -1 -22 102 + 31 1 16 16 -1 -22 -1 + 31 1 1 1 -1 -22 115 + 1 1 -16 -1 1 22 -1 + 73 73 -16 -1 1 22 172 + 61 61 -1 -16 1 22 -1 + 1 1 -1 -16 1 22 94 + 61 1 1 1 -1 -22 -1 + 145 85 13 13 -13 -34 95 + -61 -1 1 16 1 1 -1 + -133 -73 1 16 13 13 97 + 7 25 16 + Block + 8 + -7 -1 25 1 16 16 -1 + -7 -1 25 1 1 1 134 + 7 7 -25 -1 1 16 -1 + 1 1 -25 -1 1 16 101 + 7 1 25 25 -1 -16 -1 + 67 61 1 1 -34 -49 93 + -7 -1 25 1 1 1 -1 + -55 -49 25 1 22 22 103 + 1 1 -25 -16 1 16 -1 + 28 28 -10 -1 1 16 108 + 1 1 -16 -10 1 16 -1 + -7 -1 1 16 16 16 179 + 7 1 1 1 -1 -16 -1 + 46 40 16 16 -1 -16 106 + 1 1 -1 -10 1 16 -1 + 28 28 -1 -10 1 16 116 + 46 16 16 + Block + 8 + 46 1 1 1 -16 -1 -1 + 67 22 13 13 -49 -34 95 + 46 46 -1 -16 16 1 -1 + 1 1 -1 -16 16 1 171 + -46 -1 1 16 16 16 -1 + -46 -1 1 16 1 1 107 + 1 1 -1 -16 16 1 -1 + 10 10 -1 -16 16 1 113 + -46 -1 16 1 1 1 -1 + -55 -10 16 1 22 22 172 + 46 40 16 16 -1 -16 -1 + 7 1 1 1 -1 -16 105 + 40 13 16 16 -1 -16 -1 + 28 1 1 1 -1 -16 116 + 13 1 16 16 -1 -16 -1 + 13 1 1 1 -1 -16 109 + 46 16 7 + Block + 8 + -46 -1 16 1 7 7 -1 + -46 -1 16 1 1 1 165 + 46 40 16 16 -1 -7 -1 + -1 -7 7 1 1 1 135 + 40 13 16 16 -1 -7 -1 + -1 -7 28 1 1 1 138 + 13 1 16 16 -1 -7 -1 + -1 -7 13 1 1 1 142 + 46 1 1 1 -1 -7 -1 + 67 22 13 13 -49 -55 95 + -46 -1 1 16 1 1 -1 + -46 -1 1 16 16 16 106 + 46 46 -1 -16 1 7 -1 + 1 1 -1 -16 1 7 170 + 1 1 -1 -16 1 7 -1 + 10 10 -1 -16 1 7 111 + 28 10 16 + Block + 6 + -28 -1 10 1 16 16 -1 + -28 -1 10 1 1 1 137 + 28 28 -10 -1 1 16 -1 + 1 1 -25 -16 1 16 105 + 28 1 10 10 -1 -16 -1 + 61 34 1 1 -34 -49 93 + -28 -1 10 1 1 1 -1 + -49 -22 25 16 22 22 103 + 1 1 -10 -1 1 16 -1 + 13 13 -25 -16 1 16 109 + 28 1 1 1 -1 -16 -1 + -1 -16 28 1 16 16 181 + 13 25 16 + Block + 8 + -13 -1 25 1 16 16 -1 + -13 -1 25 1 1 1 141 + 13 13 -25 -16 1 16 -1 + 1 1 -10 -1 1 16 108 + 13 1 25 25 -1 -16 -1 + 34 22 1 1 -34 -49 93 + -13 -1 25 1 1 1 -1 + -22 -10 25 1 22 22 103 + 1 1 -25 -1 1 16 -1 + 10 10 -25 -1 1 16 112 + 13 13 -16 -10 1 16 -1 + -7 -1 1 16 1 1 180 + 13 13 -1 -10 1 16 -1 + 1 1 -1 -10 1 16 116 + 13 1 1 1 -1 -16 -1 + 13 1 16 16 -1 -16 106 + 10 16 7 + Block + 6 + -10 -1 16 1 7 7 -1 + -1 -10 1 16 1 1 18 + 10 10 -16 -1 7 1 -1 + -16 -1 7 1 1 1 167 + 1 10 16 16 -7 -1 -1 + -7 -1 1 10 1 1 146 + 1 1 -1 -16 7 1 -1 + 13 13 -1 -16 49 43 96 + 1 10 1 1 -7 -1 -1 + 13 22 13 13 -61 -55 95 + -1 -10 1 16 1 1 -1 + -1 -10 1 16 7 7 111 + 10 16 7 + Block + 6 + -1 -10 1 16 7 7 -1 + -1 -10 1 16 1 1 110 + 10 1 16 16 -1 -7 -1 + -1 -7 10 1 1 1 147 + 10 10 -1 -16 1 7 -1 + 1 1 -1 -16 1 7 107 + -1 -10 1 16 1 1 -1 + -1 -10 1 16 16 16 113 + 1 1 -1 -16 1 7 -1 + 13 13 -1 -16 37 43 96 + 1 10 1 1 -1 -7 -1 + 13 22 13 13 -49 -55 95 + 10 25 16 + Block + 6 + -10 -1 25 1 16 16 -1 + -10 -1 25 1 1 1 145 + 10 10 -25 -1 1 16 -1 + 1 1 -25 -1 1 16 109 + 1 1 -25 -1 1 16 -1 + 13 13 -40 -16 22 37 96 + 1 10 25 25 -1 -16 -1 + 13 22 1 1 -34 -49 93 + -1 -10 25 1 1 1 -1 + -1 -10 25 1 22 22 103 + 1 10 1 1 -1 -16 -1 + 1 10 16 16 -1 -16 113 + 10 16 16 + Block + 6 + 10 10 -1 -16 16 1 -1 + 1 1 -1 -16 16 1 106 + 1 1 -1 -16 16 1 -1 + 13 13 -1 -16 37 22 96 + 1 10 1 1 -16 -1 -1 + 13 22 13 13 -49 -34 95 + -1 -10 1 16 16 16 -1 + -1 -10 1 16 1 1 111 + -1 -10 16 1 1 1 -1 + -1 -10 16 1 22 22 172 + 1 10 16 16 -1 -16 -1 + 1 10 1 1 -1 -16 112 + 31 16 16 + Block + 6 + 31 1 16 16 -16 -1 -1 + -16 -1 31 1 1 1 155 + -31 -1 1 16 16 16 -1 + -31 -1 1 16 1 1 128 + -31 -1 1 16 1 1 -1 + -31 -1 1 16 22 22 115 + 31 31 -1 -16 1 16 -1 + 1 1 -1 -16 1 16 98 + 31 1 1 1 -1 -16 -1 + 31 1 16 16 -1 -16 100 + 1 1 -1 -16 1 16 -1 + 19 19 -1 -16 1 16 101 + 31 16 22 + Block + 6 + 31 1 16 16 -22 -1 -1 + -22 -1 31 1 1 1 159 + -31 -1 1 16 22 22 -1 + -31 -1 1 16 1 1 114 + 31 31 -1 -16 1 22 -1 + 1 1 -1 -16 1 22 102 + 31 1 1 1 -1 -22 -1 + 31 1 16 16 -1 -22 104 + -31 -1 1 16 1 1 -1 + -103 -73 16 31 13 13 97 + 1 1 -1 -16 1 22 -1 + 73 73 -1 -16 1 22 103 + 28 10 16 + Block + 6 + 28 1 10 10 -16 -1 -1 + -16 -1 28 1 1 1 182 + -28 -1 1 10 16 16 -1 + -28 -1 1 10 1 1 139 + 28 28 -1 -10 1 16 -1 + 1 1 -1 -10 1 16 105 + 28 1 1 1 -1 -16 -1 + 40 13 16 16 -1 -16 106 + -28 -1 1 10 1 1 -1 + -49 -22 1 10 22 22 103 + 1 1 -1 -10 1 16 -1 + 13 13 -1 -10 1 16 109 + 25 13 16 + Block + 6 + -25 -1 13 13 16 1 -1 + -1 -25 1 1 1 16 25 + 25 1 13 1 1 1 2 + 25 25 13 1 -1 -16 -1 + 13 1 10 10 -1 -16 118 + -25 -1 13 1 16 16 -1 + 1 1 -40 -16 49 37 94 + 1 1 13 1 -1 -16 -1 + 13 1 10 10 -16 -1 120 + -25 -1 1 1 1 16 -1 + 10 10 -25 -1 16 1 119 + 13 10 16 + Block + 6 + 13 13 -10 -1 16 1 -1 + 1 1 -1 -10 1 16 26 + 13 1 10 1 1 1 2 + 13 1 10 10 -1 -16 -1 + 25 25 13 1 -1 -16 117 + -13 -1 10 1 16 16 -1 + 145 136 1 1 -61 -49 93 + 13 1 1 1 -1 -16 -1 + 13 1 7 7 -1 -16 121 + 1 1 10 1 -1 -16 -1 + 10 1 25 25 -16 -1 119 + 10 25 16 + Block + 6 + 10 1 25 1 16 16 2 + 10 10 -25 -1 16 1 -1 + -25 -1 1 1 1 16 117 + 10 1 25 25 -16 -1 -1 + 1 1 10 1 -1 -16 118 + -10 -1 25 1 1 1 -1 + -31 -22 25 1 16 16 98 + 1 1 -25 -1 16 1 -1 + 7 7 -25 -1 16 1 122 + -10 -1 1 1 16 1 -1 + 1 1 -10 -1 16 1 120 + 13 10 16 + Block + 6 + 13 13 -10 -1 16 1 -1 + 1 1 -1 -10 1 16 28 + 13 1 10 1 16 16 2 + 13 1 10 10 -16 -1 -1 + 1 1 13 1 -1 -16 117 + -13 -1 10 1 1 1 -1 + 61 52 16 16 -13 -1 99 + 13 1 1 1 -16 -1 -1 + 13 1 7 7 -16 -1 123 + 1 1 -10 -1 16 1 -1 + -10 -1 1 1 16 1 119 + 13 7 16 + Block + 6 + 13 13 -7 -1 16 1 -1 + 1 1 -1 -7 1 16 29 + 13 1 7 1 1 1 2 + 13 1 7 7 -1 -16 -1 + 13 1 1 1 -1 -16 118 + -13 -1 7 1 16 16 -1 + 136 130 1 1 -61 -49 93 + 13 1 1 1 -1 -16 -1 + 13 1 16 16 -1 -16 124 + 1 1 7 1 -1 -16 -1 + 7 1 25 25 -16 -1 122 + 7 25 16 + Block + 6 + 7 1 25 1 16 16 2 + 7 7 -25 -1 16 1 -1 + 1 1 -25 -1 16 1 119 + 7 1 25 25 -16 -1 -1 + 1 1 7 1 -1 -16 121 + -7 -1 25 1 1 1 -1 + -22 -16 25 1 16 16 98 + 1 1 -25 -1 16 1 -1 + 16 16 -25 -1 16 1 125 + -7 -1 1 1 16 1 -1 + 1 1 -7 -1 16 1 123 + 13 7 16 + Block + 6 + 13 13 -7 -1 16 1 -1 + 1 1 -1 -7 1 16 31 + 13 1 7 1 16 16 2 + 13 1 7 7 -16 -1 -1 + 13 1 1 1 -16 -1 120 + -13 -1 7 1 1 1 -1 + 52 46 16 16 -13 -1 99 + 13 1 1 1 -16 -1 -1 + 13 1 16 16 -16 -1 126 + 1 1 -7 -1 16 1 -1 + -7 -1 1 1 16 1 122 + 13 16 16 + Block + 6 + 13 13 -16 -1 16 1 -1 + 1 1 -1 -16 1 16 32 + 13 1 16 1 1 1 2 + 13 1 16 16 -1 -16 -1 + 13 1 1 1 -1 -16 121 + -13 -1 16 1 16 16 -1 + 130 115 1 1 -61 -49 93 + 13 1 1 1 -1 -16 -1 + 13 1 31 31 -1 -16 127 + 1 1 16 1 -1 -16 -1 + 16 1 25 25 -16 -1 125 + 16 25 16 + Block + 7 + 16 1 25 1 16 16 2 + 16 16 -25 -1 16 1 -1 + 1 1 -25 -1 16 1 122 + 16 1 25 25 -16 -1 -1 + 1 1 16 1 -1 -16 124 + -16 -1 25 1 1 1 -1 + -16 -1 25 1 16 16 98 + 1 1 -25 -16 16 1 -1 + -10 -1 16 1 16 16 148 + 1 1 -1 -16 16 1 -1 + 31 31 -1 -16 16 1 128 + -1 -16 1 1 16 1 -1 + 1 1 -1 -16 16 1 126 + 13 16 16 + Block + 6 + 13 13 -16 -1 16 1 -1 + 1 1 -1 -16 1 16 34 + 13 1 16 1 16 16 2 + 13 1 16 16 -16 -1 -1 + 13 1 1 1 -16 -1 123 + -13 -1 16 1 1 1 -1 + 46 31 16 16 -13 -1 99 + 13 1 1 1 -16 -1 -1 + 13 1 31 31 -16 -1 129 + 1 1 -1 -16 16 1 -1 + -1 -16 1 1 16 1 125 + 13 31 16 + Block + 6 + 13 13 -31 -1 16 1 -1 + 1 1 -1 -31 1 16 35 + 13 1 31 1 1 1 2 + 13 1 31 31 -1 -16 -1 + 13 1 1 1 -1 -16 124 + -13 -1 31 1 16 16 -1 + 115 85 1 1 -61 -49 93 + 13 1 1 1 -1 -16 -1 + 13 1 19 19 -1 -16 130 + 1 1 31 1 -1 -16 -1 + -16 -1 31 1 16 16 150 + 31 16 16 + Block + 6 + 31 1 16 1 16 16 2 + 31 1 16 16 -16 -1 -1 + -16 -1 31 1 1 1 151 + 31 31 -1 -16 16 1 -1 + 1 1 -1 -16 16 1 125 + -31 -1 1 1 16 1 -1 + 1 1 -31 -1 16 1 129 + -31 -1 1 16 1 1 -1 + -31 -1 1 16 16 16 114 + 1 1 -1 -16 16 1 -1 + 19 19 -1 -16 16 1 184 + 13 31 16 + Block + 6 + 13 13 -31 -1 16 1 -1 + 1 1 -1 -31 1 16 37 + 13 1 31 1 16 16 2 + 13 1 31 31 -16 -1 -1 + 13 1 1 1 -16 -1 126 + -13 -1 31 1 1 1 -1 + 31 1 16 16 -13 -1 99 + 13 1 1 1 -16 -1 -1 + 13 1 19 19 -16 -1 132 + 1 1 -31 -1 16 1 -1 + -31 -1 1 1 16 1 128 + 13 19 16 + Block + 6 + 13 13 -19 -1 16 1 -1 + 1 1 -1 -19 1 16 38 + 13 1 19 1 1 1 2 + 13 1 19 19 -1 -16 -1 + 13 1 1 1 -1 -16 127 + -13 -1 19 1 16 16 -1 + 85 67 1 1 -61 -49 93 + 13 1 1 1 -1 -16 -1 + 13 1 7 7 -1 -16 133 + 1 1 1 19 -1 -16 -1 + 1 19 10 10 -16 -1 131 + 19 10 16 + Block + 6 + 19 1 10 1 16 16 2 + 19 19 -10 -1 16 1 -1 + -10 -1 16 1 1 1 149 + 1 1 -10 -1 16 1 -1 + 7 7 -25 -16 16 1 134 + 1 19 10 10 -16 -1 -1 + 1 1 1 19 -1 -16 130 + -1 -19 10 1 1 1 -1 + -1 -19 25 16 16 16 101 + 1 19 1 1 -16 -1 -1 + 1 19 16 16 -16 -1 184 + 13 19 16 + Block + 7 + 13 13 -19 -1 16 1 -1 + 1 1 -1 -19 1 16 40 + 13 1 19 1 16 16 2 + 13 1 19 19 -16 -1 -1 + 13 1 1 1 -16 -1 129 + -13 -1 19 1 1 1 -1 + 19 1 16 16 -13 -1 170 + 13 7 1 1 -16 -1 -1 + -16 -1 7 1 16 16 162 + 1 1 19 1 -16 -1 -1 + 19 1 1 1 -16 -1 184 + 1 7 1 1 -16 -1 -1 + 1 7 7 7 -16 -1 135 + 13 7 16 + Block + 6 + 13 13 -7 -1 16 1 -1 + 1 1 -1 -7 1 16 41 + 13 1 7 1 1 1 2 + 13 1 7 7 -1 -16 -1 + 13 1 1 1 -1 -16 130 + -13 -1 7 1 16 16 -1 + 67 61 1 1 -61 -49 93 + 13 1 1 1 -1 -16 -1 + 13 1 28 28 -1 -16 136 + 1 1 7 1 -1 -16 -1 + 7 1 25 25 -16 -1 134 + 7 25 16 + Block + 9 + 7 1 25 1 16 16 2 + 7 7 -25 -16 16 1 -1 + 1 1 -10 -1 16 1 131 + 7 1 25 25 -16 -1 -1 + 1 1 7 1 -1 -16 133 + -7 -1 25 1 1 1 -1 + -7 -1 25 1 16 16 105 + 1 1 -25 -16 16 1 -1 + 28 28 -10 -1 16 1 137 + 1 1 -16 -10 16 1 -1 + -7 -1 16 1 16 16 175 + 7 7 -1 -16 16 1 -1 + 1 1 -1 -16 16 1 184 + -7 -1 1 1 16 1 -1 + 1 1 -7 -1 16 1 135 + 1 1 -1 -10 16 1 -1 + 28 28 -1 -10 16 1 139 + 7 7 16 + Block + 6 + 7 1 7 1 16 16 2 + 7 7 -7 -1 16 1 -1 + -7 -1 16 1 1 1 161 + 1 1 -7 -1 16 1 -1 + -7 -1 1 1 16 1 134 + 1 7 7 7 -16 -1 -1 + 1 7 1 1 -16 -1 132 + -1 -7 7 1 1 1 -1 + 46 40 16 16 -1 -7 107 + 1 7 1 1 -16 -1 -1 + 1 7 28 28 -16 -1 138 + 13 28 16 + Block + 6 + 13 13 -28 -1 16 1 -1 + 1 1 -1 -28 1 16 44 + 13 1 28 1 1 1 2 + 13 1 28 28 -1 -16 -1 + 13 1 1 1 -1 -16 133 + -13 -1 28 1 16 16 -1 + 61 34 1 1 -61 -49 93 + 13 1 1 1 -1 -16 -1 + 13 1 13 13 -1 -16 140 + 1 1 28 1 -1 -16 -1 + 28 1 10 10 -16 -1 137 + 28 10 16 + Block + 6 + 28 1 10 1 16 16 2 + 28 28 -10 -1 16 1 -1 + 1 1 -25 -16 16 1 134 + 28 1 10 10 -16 -1 -1 + 1 1 28 1 -1 -16 136 + -28 -1 10 1 1 1 -1 + -28 -1 10 1 16 16 108 + 1 1 -10 -1 16 1 -1 + 13 13 -25 -16 16 1 141 + 28 1 1 1 -16 -1 -1 + -16 -1 28 1 16 16 177 + 7 28 16 + Block + 6 + 7 1 28 1 16 16 2 + 7 7 -28 -1 16 1 -1 + -28 -1 16 1 1 1 166 + 1 1 28 1 -16 -1 -1 + 28 1 1 1 -16 -1 139 + 1 7 28 28 -16 -1 -1 + 1 7 1 1 -16 -1 135 + -1 -7 28 1 1 1 -1 + 40 13 16 16 -1 -7 107 + 1 7 1 1 -16 -1 -1 + 1 7 13 13 -16 -1 142 + 28 10 16 + Block + 6 + 28 1 10 1 16 16 2 + 28 1 10 10 -16 -1 -1 + -16 -1 28 1 1 1 178 + 28 28 -1 -10 16 1 -1 + 1 1 -1 -10 16 1 134 + 28 1 1 1 -16 -1 -1 + 1 1 28 1 -16 -1 138 + -28 -1 1 10 1 1 -1 + -28 -1 1 10 16 16 116 + 1 1 -1 -10 16 1 -1 + 13 13 -1 -10 16 1 141 + 13 13 16 + Block + 6 + 13 13 -13 -1 16 1 -1 + 1 1 -1 -13 1 16 48 + 13 1 13 1 1 1 2 + 13 1 13 13 -1 -16 -1 + 13 1 1 1 -1 -16 136 + -13 -1 13 1 16 16 -1 + 34 22 1 1 -61 -49 93 + 13 1 1 1 -1 -16 -1 + 13 1 10 10 -1 -16 144 + 1 1 13 1 -1 -16 -1 + 13 1 25 25 -16 -1 141 + 13 25 16 + Block + 8 + 13 1 25 1 16 16 2 + 13 13 -25 -16 16 1 -1 + 1 1 -10 -1 16 1 137 + 13 1 25 25 -16 -1 -1 + 1 1 13 1 -1 -16 140 + -13 -1 25 1 1 1 -1 + -13 -1 25 1 16 16 109 + 1 1 -25 -1 16 1 -1 + 10 10 -25 -1 16 1 145 + 13 13 -16 -10 16 1 -1 + -7 -1 16 1 1 1 176 + 13 13 -1 -10 16 1 -1 + 1 1 -1 -10 16 1 139 + -13 -1 1 1 16 1 -1 + 1 1 -13 -1 16 1 142 + 7 13 16 + Block + 6 + 7 1 13 1 16 16 2 + 7 7 -13 -1 16 1 -1 + -13 -1 16 1 1 1 168 + 1 1 -13 -1 16 1 -1 + -13 -1 1 1 16 1 141 + 1 7 13 13 -16 -1 -1 + 1 7 1 1 -16 -1 138 + -1 -7 13 1 1 1 -1 + 13 1 16 16 -1 -7 107 + 1 7 1 1 -16 -1 -1 + 1 7 10 10 -16 -1 147 + 25 13 16 + Block + 7 + -25 -1 13 13 16 1 -1 + -1 -25 1 1 1 16 51 + 25 1 13 1 16 16 2 + 25 25 13 1 -16 -1 -1 + 13 1 1 1 -1 -16 144 + -25 -1 13 1 1 1 -1 + 13 13 -40 -16 49 37 96 + 1 1 13 7 -16 -1 -1 + 7 1 1 1 -16 -1 146 + -25 -1 1 1 16 1 -1 + 1 1 -25 -1 16 1 145 + 1 1 1 7 -16 -1 -1 + 1 7 1 1 -16 -1 147 + 13 10 16 + Block + 6 + 13 13 -10 -1 16 1 -1 + 1 1 -1 -10 1 16 52 + 13 1 10 1 1 1 2 + 13 1 10 10 -1 -16 -1 + 13 1 1 1 -1 -16 140 + -13 -1 10 1 16 16 -1 + 22 13 1 1 -61 -49 93 + 13 1 1 1 -1 -16 -1 + 25 25 13 1 -16 -1 143 + 1 1 1 10 -1 -16 -1 + 1 10 25 25 -16 -1 145 + 10 25 16 + Block + 6 + 10 1 25 1 16 16 2 + 10 10 -25 -1 16 1 -1 + 1 1 -25 -1 16 1 141 + -10 -1 25 1 1 1 -1 + -10 -1 25 1 16 16 112 + 1 1 -25 -1 16 1 -1 + -25 -1 1 1 16 1 143 + 1 10 25 25 -16 -1 -1 + 1 1 1 10 -1 -16 144 + -1 -10 1 1 16 1 -1 + 1 1 -1 -10 16 1 147 + 7 10 16 + Block + 6 + 7 7 -10 -1 16 1 -1 + 1 1 -1 -10 1 16 54 + 7 1 10 1 16 16 2 + 7 1 10 10 -16 -1 -1 + -16 -1 7 1 1 1 169 + 7 1 1 1 -16 -1 -1 + 1 1 13 7 -16 -1 143 + -7 -1 1 10 1 1 -1 + 1 10 16 16 -7 -1 110 + 1 1 -1 -10 16 1 -1 + 7 7 -1 -10 16 1 147 + 7 10 16 + Block + 6 + 7 1 10 1 16 16 2 + 7 7 -1 -10 16 1 -1 + 1 1 -1 -10 16 1 146 + 1 7 10 10 -16 -1 -1 + 1 7 1 1 -16 -1 142 + -1 -7 10 1 1 1 -1 + 10 1 16 16 -1 -7 111 + 1 1 -1 -10 16 1 -1 + -1 -10 1 1 16 1 145 + 1 7 1 1 -16 -1 -1 + 1 1 1 7 -16 -1 143 + 10 16 16 + Block + 6 + 10 1 16 16 16 1 2 + 10 1 16 1 1 1 2 + 10 10 16 1 -1 -16 -1 + 16 1 31 31 -1 -16 150 + 10 1 1 1 -1 -16 -1 + 10 1 16 16 -1 -16 152 + -10 -1 16 1 16 16 -1 + 1 1 -25 -16 16 1 125 + 1 1 16 1 -1 -16 -1 + 16 1 31 31 -16 -1 151 + 10 16 16 + Block + 6 + 10 1 16 16 16 1 2 + 10 1 16 1 16 16 2 + 10 10 16 1 -16 -1 -1 + 16 1 1 1 -1 -16 150 + 10 1 1 1 -16 -1 -1 + 10 1 16 16 -16 -1 153 + -10 -1 16 1 1 1 -1 + 19 19 -10 -1 16 1 131 + 1 1 16 1 -16 -1 -1 + 16 1 1 1 -16 -1 151 + 16 31 16 + Block + 6 + 16 16 31 1 16 1 2 + 16 1 31 1 1 1 2 + 16 1 31 31 -1 -16 -1 + 10 10 16 1 -1 -16 148 + 1 1 -31 -1 1 16 -1 + 16 16 -31 -1 1 16 154 + -16 -1 31 1 16 16 -1 + 1 1 31 1 -1 -16 127 + 16 1 1 1 -1 -16 -1 + 10 10 16 1 -16 -1 149 + 16 31 16 + Block + 6 + 16 16 31 1 16 1 2 + 16 1 31 1 16 16 2 + 16 1 31 31 -16 -1 -1 + 1 1 16 1 -1 -16 148 + 1 1 -31 -1 16 1 -1 + 16 16 -31 -1 16 1 155 + -16 -1 31 1 1 1 -1 + 31 1 16 16 -16 -1 128 + 16 1 1 1 -16 -1 -1 + 1 1 16 1 -16 -1 149 + 10 16 16 + Block + 6 + 10 1 16 1 1 1 2 + 10 1 16 16 -1 -16 -1 + 10 1 1 1 -1 -16 148 + -10 -1 16 1 16 16 -1 + 1 1 -25 -16 16 1 98 + 10 1 1 1 -1 -16 -1 + 10 1 22 22 -1 -16 156 + 10 10 1 16 -1 -16 -1 + 1 16 31 31 -1 -16 154 + 1 1 1 16 -1 -16 -1 + 1 16 31 31 -16 -1 155 + 10 16 16 + Block + 6 + 10 1 16 1 16 16 2 + 10 1 16 16 -16 -1 -1 + 10 1 1 1 -16 -1 149 + -10 -1 16 1 1 1 -1 + 19 19 -25 -16 16 1 101 + 10 1 1 1 -16 -1 -1 + 10 1 22 22 -16 -1 157 + 10 10 1 16 -16 -1 -1 + 1 16 1 1 -1 -16 154 + 1 1 1 16 -16 -1 -1 + 1 16 1 1 -16 -1 155 + 16 31 16 + Block + 6 + 16 1 31 1 1 1 2 + 16 16 -31 -1 1 16 -1 + 1 1 -31 -1 1 16 150 + -16 -1 31 1 16 16 -1 + 115 85 1 1 -49 -34 93 + 1 1 -31 -1 1 16 -1 + 22 22 -31 -1 1 16 158 + 1 16 31 31 -1 -16 -1 + 10 10 1 16 -1 -16 152 + 1 16 1 1 -1 -16 -1 + 10 10 1 16 -16 -1 153 + 16 31 16 + Block + 6 + 16 1 31 1 16 16 2 + 16 16 -31 -1 16 1 -1 + 1 1 -31 -1 16 1 151 + -16 -1 31 1 1 1 -1 + 31 1 16 16 -16 -1 114 + 1 1 -31 -1 16 1 -1 + 22 22 -31 -1 16 1 159 + 1 16 31 31 -16 -1 -1 + 1 1 1 16 -1 -16 152 + 1 16 1 1 -16 -1 -1 + 1 1 1 16 -16 -1 153 + 10 22 16 + Block + 6 + 10 1 22 1 1 1 2 + 10 1 22 22 -1 -16 -1 + 10 1 1 1 -1 -16 152 + -10 -1 22 1 16 16 -1 + 1 1 -25 -16 22 1 102 + 1 1 22 1 -1 -16 -1 + 22 1 31 31 -16 -1 159 + -10 -1 1 1 1 16 -1 + 31 31 -10 -1 16 1 160 + 10 10 1 22 -1 -16 -1 + 1 22 31 31 -1 -16 158 + 10 22 16 + Block + 6 + 10 1 22 1 16 16 2 + 10 1 22 22 -16 -1 -1 + 10 1 1 1 -16 -1 153 + -10 -1 22 1 1 1 -1 + 73 73 -25 -16 22 1 103 + 1 1 22 1 -16 -1 -1 + 22 1 1 1 -16 -1 159 + -10 -1 1 1 16 1 -1 + 1 1 -10 -1 16 1 160 + 10 10 1 22 -16 -1 -1 + 1 22 1 1 -1 -16 158 + 22 31 16 + Block + 6 + 22 1 31 1 1 1 2 + 22 22 -31 -1 1 16 -1 + 1 1 -31 -1 1 16 154 + -22 -1 31 1 16 16 -1 + 115 85 1 1 -34 -13 93 + 1 1 31 1 -1 -16 -1 + 31 1 10 10 -16 -1 160 + 1 22 31 31 -1 -16 -1 + 10 10 1 22 -1 -16 156 + 1 22 1 1 -1 -16 -1 + 10 10 1 22 -16 -1 157 + 22 31 16 + Block + 6 + 22 1 31 1 16 16 2 + 22 22 -31 -1 16 1 -1 + 1 1 -31 -1 16 1 155 + 22 1 31 31 -16 -1 -1 + 1 1 22 1 -1 -16 156 + -22 -1 31 1 1 1 -1 + 31 1 16 16 -22 -1 115 + 22 1 1 1 -16 -1 -1 + 1 1 22 1 -16 -1 157 + 1 1 31 1 -16 -1 -1 + 31 1 1 1 -16 -1 160 + 31 10 16 + Block + 6 + 31 1 10 1 16 16 2 + 31 31 -10 -1 16 1 -1 + -10 -1 1 1 1 16 156 + 31 1 10 10 -16 -1 -1 + 1 1 31 1 -1 -16 158 + -31 -1 10 1 1 1 -1 + -103 -73 40 31 13 13 97 + 1 1 -10 -1 16 1 -1 + -10 -1 1 1 16 1 157 + 31 1 1 1 -16 -1 -1 + 1 1 31 1 -16 -1 159 + 7 16 16 + Block + 6 + 7 1 16 16 16 1 2 + 7 1 16 1 16 16 2 + 7 7 16 1 -16 -1 -1 + 16 1 1 1 -1 -16 162 + 7 1 1 1 -16 -1 -1 + 46 40 16 16 -16 -1 165 + -7 -1 16 1 1 1 -1 + 7 7 -7 -1 16 1 135 + 1 1 -16 -1 16 1 -1 + 28 28 -16 -1 16 1 166 + 16 7 16 + Block + 6 + 16 16 7 1 16 1 2 + -16 -1 7 7 16 1 -1 + -1 -16 1 1 1 16 70 + 16 1 7 1 1 1 2 + 1 1 -7 -1 1 16 -1 + 16 16 -7 -1 1 16 163 + -16 -1 7 1 16 16 -1 + 13 7 1 1 -16 -1 132 + 16 1 1 1 -1 -16 -1 + 7 7 16 1 -16 -1 161 + 16 7 16 + Block + 6 + -16 -1 7 7 16 1 -1 + -1 -16 1 1 1 16 71 + 16 1 7 1 1 1 2 + 16 16 -7 -1 1 16 -1 + 1 1 -7 -1 1 16 162 + -16 -1 7 1 16 16 -1 + 1 1 -16 -1 13 7 170 + 1 1 7 1 -1 -16 -1 + 7 1 46 46 -16 -1 164 + -1 -16 1 1 1 16 -1 + 46 46 -1 -16 16 1 165 + 7 46 16 + Block + 6 + 7 7 -46 -1 16 1 -1 + 1 1 -1 -46 1 16 72 + 7 1 46 1 16 16 2 + 7 1 46 46 -16 -1 -1 + 1 1 7 1 -1 -16 163 + -7 -1 46 1 1 1 -1 + 67 22 13 13 -61 -55 95 + -7 -1 1 1 16 1 -1 + 1 1 -7 -1 16 1 167 + 1 1 46 1 -16 -1 -1 + 46 1 1 1 -16 -1 165 + 46 16 16 + Block + 8 + 46 1 16 1 16 16 2 + 46 40 16 16 -16 -1 -1 + 7 1 1 1 -16 -1 161 + -46 -1 16 1 1 1 -1 + -46 -1 16 1 7 7 107 + 40 13 16 16 -16 -1 -1 + 28 1 1 1 -16 -1 166 + 13 1 16 16 -16 -1 -1 + 13 1 1 1 -16 -1 168 + 46 46 -1 -16 16 1 -1 + -1 -16 1 1 1 16 163 + 46 1 1 1 -16 -1 -1 + 1 1 46 1 -16 -1 164 + 1 1 1 16 -16 -1 -1 + 1 16 1 1 -16 -1 167 + 28 16 16 + Block + 6 + 28 1 16 16 16 1 2 + 28 1 16 1 16 16 2 + 28 28 -16 -1 16 1 -1 + 1 1 -16 -1 16 1 161 + 28 1 1 1 -16 -1 -1 + 40 13 16 16 -16 -1 165 + -28 -1 16 1 1 1 -1 + 7 7 -28 -1 16 1 138 + 1 1 -16 -1 16 1 -1 + 13 13 -16 -1 16 1 168 + 16 7 16 + Block + 6 + -16 -1 7 7 16 1 -1 + -1 -16 1 1 1 16 75 + 16 1 7 1 16 16 2 + 16 16 -7 -1 16 1 -1 + 1 1 -7 -1 16 1 169 + -16 -1 7 1 1 1 -1 + 10 10 -16 -1 7 1 110 + 1 1 -7 -1 16 1 -1 + -7 -1 1 1 16 1 164 + 1 16 1 1 -16 -1 -1 + 1 1 1 16 -16 -1 165 + 13 16 16 + Block + 6 + 13 1 16 16 16 1 2 + 13 1 16 1 16 16 2 + 13 13 -16 -1 16 1 -1 + 1 1 -16 -1 16 1 166 + 13 1 1 1 -16 -1 -1 + 13 1 16 16 -16 -1 165 + -13 -1 16 1 1 1 -1 + 7 7 -13 -1 16 1 142 + 1 1 16 1 -16 -1 -1 + 16 1 1 1 -16 -1 169 + 16 7 16 + Block + 6 + 16 16 7 1 16 1 2 + -16 -1 7 7 16 1 -1 + -1 -16 1 1 1 16 77 + 16 1 7 1 16 16 2 + 1 1 -7 -1 16 1 -1 + 16 16 -7 -1 16 1 167 + -16 -1 7 1 1 1 -1 + 7 1 10 10 -16 -1 146 + 16 1 1 1 -16 -1 -1 + 1 1 16 1 -16 -1 168 + 19 16 13 + Block + 7 + -19 -1 16 1 13 13 -1 + -1 -19 1 16 1 1 78 + 19 1 16 16 -13 -1 -1 + -13 -1 19 1 1 1 132 + 1 1 -16 -1 13 7 -1 + -16 -1 7 1 16 16 163 + 19 19 -1 -16 13 1 -1 + 1 1 -1 -16 13 1 99 + 19 1 1 1 -13 -1 -1 + 85 67 13 13 -61 -49 95 + -19 -1 1 16 1 1 -1 + -19 -1 1 16 16 16 171 + 1 1 -1 -16 1 7 -1 + 46 46 -1 -16 1 7 107 + 19 16 16 + Block + 6 + 19 19 -1 -16 16 1 -1 + 1 1 -1 -16 16 1 100 + 19 1 1 1 -16 -1 -1 + 85 67 13 13 -49 -34 95 + -19 -1 1 16 16 16 -1 + -19 -1 1 16 1 1 170 + 1 1 -1 -16 16 1 -1 + 46 46 -1 -16 16 1 106 + -19 -1 16 1 1 1 -1 + -73 -55 16 1 22 22 172 + 19 1 16 16 -1 -16 -1 + 19 1 1 1 -1 -16 101 + 73 16 22 + Block + 8 + -73 -55 16 1 22 22 -1 + -19 -1 16 1 1 1 171 + -55 -10 16 1 22 22 -1 + -46 -1 16 1 1 1 106 + -1 -10 16 1 22 22 -1 + -1 -10 16 1 1 1 113 + 73 73 -16 -1 1 22 -1 + 1 1 -16 -1 1 22 104 + 1 73 16 16 -1 -22 -1 + 1 73 1 1 -1 -22 103 + 1 1 -1 -16 1 22 -1 + 13 13 -1 -16 1 22 96 + 1 73 1 1 -1 -22 -1 + 13 85 13 13 -13 -34 95 + -1 -73 1 16 1 1 -1 + -1 -73 1 16 13 13 97 + 13 40 13 + Block + 6 + 13 13 40 1 13 1 4 + 13 1 40 1 1 1 4 + -13 -1 40 1 13 13 -1 + -13 -1 40 1 1 1 94 + 13 1 40 40 -1 -13 -1 + 157 145 1 1 -1 -13 93 + 1 1 -40 -1 1 13 -1 + 133 133 -40 -1 1 13 97 + 13 1 1 1 -1 -13 -1 + 157 145 13 13 -1 -13 95 + 13 40 13 + Block + 6 + 1 1 40 1 13 1 4 + 13 1 40 1 1 1 4 + -13 -1 40 1 13 13 -1 + -13 -1 40 1 1 1 96 + 13 13 -40 -1 1 13 -1 + 1 1 -40 -1 1 13 97 + 1 13 40 40 -1 -13 -1 + 1 13 1 1 -1 -13 93 + 1 13 1 1 -1 -13 -1 + 1 13 13 13 -1 -13 95 + 7 16 16 + Block + 6 + 7 1 16 16 16 1 2 + 7 1 16 1 1 1 2 + 7 7 16 1 -16 -1 -1 + 16 1 28 28 -16 -1 177 + -7 -1 16 1 16 16 -1 + 1 1 -16 -10 16 1 134 + 7 1 1 1 -16 -1 -1 + 7 1 16 16 -16 -1 179 + 1 1 16 1 -16 -1 -1 + 16 1 28 28 -1 -16 178 + 7 16 16 + Block + 6 + 7 1 16 16 16 1 2 + 7 1 16 1 16 16 2 + -7 -1 16 1 1 1 -1 + 13 13 -16 -10 16 1 141 + 7 7 16 1 -1 -16 -1 + 16 1 1 1 -16 -1 177 + 7 1 1 1 -1 -16 -1 + 7 1 16 16 -1 -16 180 + 1 1 16 1 -1 -16 -1 + 16 1 1 1 -1 -16 178 + 16 28 16 + Block + 6 + 16 16 28 1 16 1 2 + 16 1 28 1 1 1 2 + 16 1 28 28 -16 -1 -1 + 7 7 16 1 -16 -1 175 + -16 -1 28 1 16 16 -1 + 28 1 1 1 -16 -1 137 + 1 1 -28 -1 16 1 -1 + 16 16 -28 -1 16 1 181 + 16 1 1 1 -16 -1 -1 + 7 7 16 1 -1 -16 176 + 16 28 16 + Block + 6 + 16 16 28 1 16 1 2 + 16 1 28 1 16 16 2 + 16 1 28 28 -1 -16 -1 + 1 1 16 1 -16 -1 175 + -16 -1 28 1 1 1 -1 + 28 1 10 10 -16 -1 139 + 1 1 -28 -1 1 16 -1 + 16 16 -28 -1 1 16 182 + 16 1 1 1 -1 -16 -1 + 1 1 16 1 -1 -16 176 + 7 16 16 + Block + 6 + 7 1 16 1 1 1 2 + 7 1 16 16 -16 -1 -1 + 7 1 1 1 -16 -1 175 + 1 1 16 1 -16 -1 -1 + 16 1 28 28 -1 -16 182 + -7 -1 1 1 16 1 -1 + 28 28 -7 -1 1 16 183 + 7 7 1 16 -16 -1 -1 + 1 16 28 28 -16 -1 181 + -7 -1 1 16 16 16 -1 + 1 1 -16 -10 1 16 105 + 7 16 16 + Block + 6 + 7 1 16 1 16 16 2 + 7 1 16 16 -1 -16 -1 + 7 1 1 1 -1 -16 176 + 1 1 16 1 -1 -16 -1 + 16 1 1 1 -1 -16 182 + -7 -1 1 1 1 16 -1 + 1 1 -7 -1 1 16 183 + -7 -1 1 16 1 1 -1 + 13 13 -16 -10 1 16 109 + 7 7 1 16 -1 -16 -1 + 1 16 1 1 -16 -1 181 + 16 28 16 + Block + 6 + 16 1 28 1 1 1 2 + 16 16 -28 -1 16 1 -1 + 1 1 -28 -1 16 1 177 + 1 1 28 1 -16 -1 -1 + 28 1 7 7 -1 -16 183 + 1 16 28 28 -16 -1 -1 + 7 7 1 16 -16 -1 179 + -1 -16 28 1 16 16 -1 + 28 1 1 1 -1 -16 108 + 1 16 1 1 -16 -1 -1 + 7 7 1 16 -1 -16 180 + 16 28 16 + Block + 6 + 16 1 28 1 16 16 2 + 16 16 -28 -1 1 16 -1 + 1 1 -28 -1 1 16 178 + 16 1 28 28 -1 -16 -1 + 1 1 16 1 -16 -1 179 + -16 -1 28 1 1 1 -1 + 28 1 10 10 -16 -1 116 + 16 1 1 1 -1 -16 -1 + 1 1 16 1 -1 -16 180 + 1 1 28 1 -1 -16 -1 + 28 1 1 1 -1 -16 183 + 28 7 16 + Block + 6 + 28 1 7 1 16 16 2 + 28 28 -7 -1 1 16 -1 + -7 -1 1 1 16 1 179 + 28 1 7 7 -1 -16 -1 + 1 1 28 1 -16 -1 181 + -28 -1 7 1 1 1 -1 + -49 -22 16 10 22 22 103 + 1 1 -7 -1 1 16 -1 + -7 -1 1 1 1 16 180 + 28 1 1 1 -1 -16 -1 + 1 1 28 1 -1 -16 182 + 19 16 16 + Block + 6 + 19 1 16 1 16 16 2 + 1 19 16 16 -16 -1 -1 + 1 19 1 1 -16 -1 131 + 19 19 -1 -16 16 1 -1 + 1 1 -1 -16 16 1 128 + 19 1 1 1 -16 -1 -1 + 1 1 19 1 -16 -1 132 + -19 -1 1 16 1 1 -1 + -19 -1 1 16 16 16 101 + 1 1 -1 -16 16 1 -1 + 7 7 -1 -16 16 1 134 diff --git a/ThreeD_CHNT_SST_Struct_16CPU/grid/网格说明.txt b/ThreeD_CHNT_SST_Struct_16CPU/grid/网格说明.txt new file mode 100644 index 00000000..256b2755 --- /dev/null +++ b/ThreeD_CHNT_SST_Struct_16CPU/grid/网格说明.txt @@ -0,0 +1,2 @@ +һ1400ֻ8ʾ⣬Լ׼ȷԲ֤ +binļû⡣ \ No newline at end of file diff --git a/ThreeD_Cylinder_LES_Re3900_Struct/bin/cfd_para.hypara b/ThreeD_Cylinder_LES_Re3900_Struct/bin/cfd_para.hypara new file mode 100644 index 00000000..bd3b5a4e --- /dev/null +++ b/ThreeD_Cylinder_LES_Re3900_Struct/bin/cfd_para.hypara @@ -0,0 +1,838 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// 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, 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 = 0; +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 -- 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. +// 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. +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 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// .skl meaning skeleton. +string original_grid_info_file = "./grid/FLUENT_test.skl"; + +// 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. +// mixgrid_str_bc: path of structure grid boundary condition file 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. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Adaptive Mesh Refine ------------------------------- +// In this file, the original_grid_file is used of the partition part. +// If use it dependently, abstract it here. +string adapt_grid_file = "./grid/sphere_mixed_adapt1.fts"; +string geometryFileName = "./grid/jsm.igs"; + +// 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 geometryUnit = 1; +int anisoRefine = 0; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; // 0: NON case; 1: JSM-C2-NPOFF case; 2: CHNT. +int projectOrgPoint = 0; // if project original wall points. + +// ----------------- RBF Parameters ------------------------------------- +// symmetryPlane: Which symmetry plane is used in the mesh. +// 0 -- without symmetry. +// 1 -- plane of x=0. +// 2 -- plane of y=0. +// 3 -- plane of z=0. +int numberOfReferenceCP = 10; +double influenceRadius = 20; +int symmetryPlane = 3; // 1: plane of x=0; 2: plane of y=0; 3: plane of z=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. +int pgridtype = 0; +int maxproc = 4; + +// 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]; + +//----------------------------------------------------------------------- +# 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. +// 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: 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. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual 'res.dat' saved. +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) + +int maxSimuStep = 3000; + +int intervalStepFlow = 100; +int intervalStepPlot = 100; +int intervalStepForce = 1; +int intervalStepRes = 1; +int ifLowSpeedPrecon = 0; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 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. +// 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. +// 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. +// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter. +// forceRefenenceLength, forceRefenenceLengthSpanWise, forceRefenenceArea: 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. + +double refMachNumber = 0.20; +double attackd = 0.00; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 3900; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 10000.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)). + +//int inflowParaType = 3; +//int nsubsonicInlet = 1; +//int nsubsonicOutlet = 1; +//string inLetFileName = "./bin/subsonicInlet.hypara"; +//string outLetFileName = "./bin/subsonicOutlet.hypara"; +//double refDimensionalTemperature = 288.144; +//double refDimensionalPressure = 1.01313E05; + +double wallTemperature = -1.0; +int dump_Q = 0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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. + +// directionMethod: The method of determining direction. +// 1 -- using direciton. +// 2 -- using face normal. +// subsonicInletTotalPressure: The total pressure of subsonic inlet. +// subsonicInletTotalTemperature: The total temperature of subsonic inlet. +// direction_inlet: The direction of inlet. +// subsonicOutletTotalPressure: The total pressure of subsonic outlet. +// subsonicOutletTotalTemperature: The total temperature of subsonic outlet. +// direction_outlet: The direction of outlet. +int directionMethod = 2; +double subsonicInletTotalPressure = 1.2e6; +double subsonicInletTotalTemperature = 1300; +double direction_inlet[] = 1, 0, 0; + +double subsonicOutletTotalPressure = 17.8571428; +double subsonicOutletTotalTemperature = 1.0; +double direction_outlet[] = 1, 0, 0; + +//----------------------------------------------------------------------- +# 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". +// 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 inviscidSchemeName = "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. +// 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", "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. +// venkatCoeff: Cofficient of vencat, when using vencat limter. +// limitVariables: Limit model. +// 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. + +//int iviscous = 0; +//string viscousName = "Euler"; + +int viscousType = 1; +string viscousName = "laminar"; + +//int iviscous = 3; +//string viscousName = "1eq-sa"; + +//int iviscous = 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 limit_angle = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 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 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. +// 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. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// iale: 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 = 1; +double physicalTimeStep = 0.005; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int startStatisticStep = 0; + +int min_sub_iter = 20; +int max_sub_iter = 20; +double tol_sub_iter = 0.01; + +int tscheme = 4; +int iSimplifyViscousTerm = 1; +int ifLocalTimeStep = 0; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; + +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 timemax = 1.0e10; +double dtsave = -1.0; +int iale = 0; +int ialetype = 2; +int maxale = 10; +double dtau = 0.001; +double dtau_max = 1E-01; + +int wallFunctionType = 1; + +int RKStage = 2; +double [] = 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! +// isPlotVolumeField: 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. +int numberOfGridGroups = 1; +string gridfile = "./grid/cylinder_Re3900_270w_split120.fts"; + +int walldistMethod = 1; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "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 isPlotVolumeField = 1; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. + +int visualfileType = 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 lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [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) ,vibration temperature(33), electron temperature(34) +// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!!. +// Arriables order must from small to larger. +int nVisualVariables = 10; +int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 11, 12, 15];; + +//----------------------------------------------------------------------- +# Turbulence Parameter # +//----------------------------------------------------------------------- +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// 1 -- Edwards. +// 2 -- new. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. + +int turbInterval = 1; +int turb_vis_kind = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double turb_relax = 1.0; +double turb_min_coef = 1.0e-1; +double freeStreamViscosity = 1.0e-3; +double muoo = 1.0e-1; +double kwoo = 1.0; + +# maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e5; +double sdilim = 1.0e20; +double coef_kvist = 1.0; +int monitor_vistmax = 0; + +//----------------------------------------------------------------------- +# LES Parameter # +//----------------------------------------------------------------------- +// iLES : Create LESSolver or not. +// >= 1 - Create LESSolver; +// < 1 - not; +// sgsmodel : subgrid scale model +// = "smagorinsky" ; +// = "dsm" ; +// = "wale" ; +// 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 = 1; +string sgsmodel = "smagorinsky"; +int deltaFunctionType = 2; +int wallDampingFunctionType = 1; +int turbViscousCutType = 2; +double smagConstant = 0.135; +double isotropicConstant = 0.0; +double waleConstant = 0.6; +int filterDirection[] = [1, 1, 0]; +int averageDirection[] = [1, 1, 0]; +double testFilterScale = 2.0; +int averageWidth = 1; + +//----------------------------------------------------------------------- +# Other Parameter # +//----------------------------------------------------------------------- +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- NS. +// 1 -- MHD. +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int dg_high_order = 0; +int iapplication = 0; +int nm = 5; + +// MHD +double bxoo = 0.0; +double byoo = 0.0; +double bzoo = 0.0; + +double refGama = 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 = 1; +int nchemrad = 1; +int ntmodel = 1; +int nChemicalFlowStep = 0; +double catalyticCoef = 0.0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.77"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.77, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.77, 0.0"; + +int ifStartFromPerfectGasResults = 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 # +######################################################################### +// ifvfd: +// 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 ifvfd = 0; +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"; + +// ----------------- 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 = 0.8; +double MUSCLCoefXb = 1.0; +int allReduceStep = 1; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 2.329418E08; +//@double refDimensionalTemperature = 288.144; +//@double refDimensionalPressure = 1.01313E05; +//@double height = -0.001; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; diff --git a/ThreeD_Cylinder_LES_Re3900_Struct/bin/grid_para.hypara b/ThreeD_Cylinder_LES_Re3900_Struct/bin/grid_para.hypara new file mode 100644 index 00000000..65429d47 --- /dev/null +++ b/ThreeD_Cylinder_LES_Re3900_Struct/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, nMGLevel.in. +// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. +// 8 -- GMSH, *.msh. +int gridtype = 1; +int axisup = 2; +int from_gtype = 3; + +######################################################################### +# 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/cylinder_Re3900_270w_split120.grd"; +string out_gfile = "./grid/cylinder_Re3900_270w_split120.fts"; diff --git a/ThreeD_Cylinder_LES_Re3900_Struct/bin/key.hypara b/ThreeD_Cylinder_LES_Re3900_Struct/bin/key.hypara new file mode 100644 index 00000000..7e91c8f7 --- /dev/null +++ b/ThreeD_Cylinder_LES_Re3900_Struct/bin/key.hypara @@ -0,0 +1,41 @@ +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.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 = "./bin/cfd_para.hypara" +string parafilename2 = "./bin/cfd_para.hypara"; diff --git a/ThreeD_Cylinder_LES_Re3900_Struct/bin/partition.hypara b/ThreeD_Cylinder_LES_Re3900_Struct/bin/partition.hypara new file mode 100644 index 00000000..f194d473 --- /dev/null +++ b/ThreeD_Cylinder_LES_Re3900_Struct/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 = 1; +int maxproc = 128; + +string original_grid_file = "./grid/cylinder_Re3900_270w.fts"; +string partition_grid_file = "./grid/cylinder_Re3900_270w_128.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; \ No newline at end of file diff --git a/ThreeD_Cylinder_LES_Re3900_Struct/grid/cylinder_Re3900_23w_split9.grd b/ThreeD_Cylinder_LES_Re3900_Struct/grid/cylinder_Re3900_23w_split9.grd new file mode 100644 index 00000000..7fed4cc1 Binary files /dev/null and b/ThreeD_Cylinder_LES_Re3900_Struct/grid/cylinder_Re3900_23w_split9.grd differ diff --git a/ThreeD_Cylinder_LES_Re3900_Struct/grid/cylinder_Re3900_23w_split9.inp b/ThreeD_Cylinder_LES_Re3900_Struct/grid/cylinder_Re3900_23w_split9.inp new file mode 100644 index 00000000..3c7169ff --- /dev/null +++ b/ThreeD_Cylinder_LES_Re3900_Struct/grid/cylinder_Re3900_23w_split9.inp @@ -0,0 +1,119 @@ + 1 + 9 + 81 5 93 +blk-4 + 6 + -1 -81 1 5 1 1 -1 + -1 -81 1 5 85 85 3 + 1 81 1 5 93 93 4 + 1 1 1 5 -1 -93 -1 + 35 35 1 5 -85 -177 9 + 81 81 1 5 -1 -93 -1 + 1 1 1 5 -85 -177 6 + 1 81 1 1 1 93 99 + 1 81 5 5 1 93 99 + 81 5 89 +blk-3-split-1 + 6 + 81 1 1 5 1 1 2 + -1 -81 1 5 89 89 -1 + -1 -81 1 5 1 1 3 + 1 1 1 5 -89 -1 -1 + 69 69 1 5 -89 -1 5 + 81 81 1 5 -89 -1 -1 + 1 1 1 5 -89 -1 4 + 81 1 1 1 1 89 99 + 81 1 5 5 1 89 99 + 81 5 85 +blk-3-split-2 + 6 + -1 -81 1 5 1 1 -1 + -1 -81 1 5 89 89 2 + -1 -81 1 5 85 85 -1 + -1 -81 1 5 1 1 1 + 1 1 1 5 -1 -85 -1 + 35 35 1 5 -1 -85 9 + 81 81 1 5 -1 -85 -1 + 1 1 1 5 -1 -85 6 + 81 1 1 1 1 85 99 + 81 1 5 5 1 85 99 + 69 5 89 +blk-2-split-1 + 7 + 1 69 1 5 1 1 2 + -1 -35 1 5 89 89 -1 + -1 -35 1 5 1 1 6 + -35 -69 1 5 89 89 -1 + -1 -35 1 5 1 1 7 + 1 1 1 5 -89 -1 -1 + 81 81 1 5 -89 -1 2 + 69 69 -1 -5 1 89 -1 + 1 1 -1 -5 1 89 5 + 1 69 1 1 89 1 99 + 1 69 5 5 89 1 99 + 69 5 89 +blk-2-split-2 + 7 + 1 69 1 5 1 1 2 + -1 -35 1 5 89 89 -1 + -1 -35 1 5 1 1 8 + -35 -69 1 5 89 89 -1 + -1 -35 1 5 1 1 9 + 1 1 -1 -5 1 89 -1 + 69 69 -1 -5 1 89 4 + 69 69 1 5 -89 -1 -1 + 1 1 1 5 -89 -1 2 + 1 69 1 1 89 1 99 + 1 69 5 5 89 1 99 + 35 5 177 +blk-1-split-1 + 7 + -1 -35 1 5 1 1 -1 + -1 -35 1 5 89 89 4 + 1 35 1 5 177 177 4 + 1 1 1 5 -1 -85 -1 + 81 81 1 5 -1 -85 3 + 1 1 1 5 -85 -177 -1 + 81 81 1 5 -1 -93 1 + 35 35 -1 -5 1 177 -1 + 1 1 -1 -5 1 177 7 + 1 35 1 1 1 177 99 + 1 35 5 5 1 177 99 + 35 5 177 +blk-1-split-2 + 6 + -1 -35 1 5 1 1 -1 + -35 -69 1 5 89 89 4 + 1 35 1 5 177 177 4 + 1 1 -1 -5 1 177 -1 + 35 35 -1 -5 1 177 6 + 35 35 -1 -5 1 177 -1 + 1 1 -1 -5 1 177 8 + 1 35 1 1 1 177 99 + 1 35 5 5 1 177 99 + 35 5 177 +blk-1-split-3 + 6 + -1 -35 1 5 1 1 -1 + -1 -35 1 5 89 89 5 + 1 35 1 5 177 177 4 + 1 1 -1 -5 1 177 -1 + 35 35 -1 -5 1 177 7 + 35 35 -1 -5 1 177 -1 + 1 1 -1 -5 1 177 9 + 1 35 1 1 1 177 99 + 1 35 5 5 1 177 99 + 35 5 177 +blk-1-split-4 + 7 + -1 -35 1 5 1 1 -1 + -35 -69 1 5 89 89 5 + 1 35 1 5 177 177 4 + 1 1 -1 -5 1 177 -1 + 35 35 -1 -5 1 177 8 + 35 35 1 5 -1 -85 -1 + 1 1 1 5 -1 -85 3 + 35 35 1 5 -85 -177 -1 + 1 1 1 5 -1 -93 1 + 1 35 1 1 1 177 99 + 1 35 5 5 1 177 99 diff --git a/ThreeD_Cylinder_LES_Re3900_Struct/grid/cylinder_Re3900_270w_split120.grd b/ThreeD_Cylinder_LES_Re3900_Struct/grid/cylinder_Re3900_270w_split120.grd new file mode 100644 index 00000000..c91aa6fa Binary files /dev/null and b/ThreeD_Cylinder_LES_Re3900_Struct/grid/cylinder_Re3900_270w_split120.grd differ diff --git a/ThreeD_Cylinder_LES_Re3900_Struct/grid/cylinder_Re3900_270w_split120.inp b/ThreeD_Cylinder_LES_Re3900_Struct/grid/cylinder_Re3900_270w_split120.inp new file mode 100644 index 00000000..a0eecb64 --- /dev/null +++ b/ThreeD_Cylinder_LES_Re3900_Struct/grid/cylinder_Re3900_270w_split120.inp @@ -0,0 +1,1542 @@ + 1 + 120 + 21 49 23 +blk-3-split-1-s + 6 + 21 1 1 49 1 1 2 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 2 + 1 1 1 49 -23 -1 -1 + 21 21 1 49 -23 -1 61 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 9 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 23 +blk-3-split-1-2 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 1 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 3 + 1 1 1 49 -23 -1 -1 + 21 21 1 49 -23 -1 62 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 10 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 23 +blk-3-split-1-3 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 2 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 4 + 1 1 1 49 -23 -1 -1 + 21 21 1 49 -23 -1 71 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 11 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 23 +blk-3-split-1-4 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 3 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 5 + 1 1 1 49 -23 -1 -1 + 21 21 1 49 -23 -1 72 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 12 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 23 +blk-3-split-1-5 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 4 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 6 + 1 1 1 49 -1 -23 -1 + 21 21 1 49 -1 -23 73 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 13 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 21 +blk-3-split-1-6 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 5 + -1 -21 1 49 21 21 -1 + -1 -21 1 49 1 1 7 + 1 1 1 49 -1 -21 -1 + 21 21 1 49 -1 -21 74 + 21 21 -1 -49 1 21 -1 + 1 1 -1 -49 1 21 14 + 21 1 1 1 1 21 99 + 21 1 49 49 1 21 99 + 21 49 23 +blk-3-split-1-7 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 21 21 6 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 8 + 1 1 1 49 -1 -23 -1 + 21 21 1 49 -1 -23 75 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 15 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 21 +blk-3-split-1-8 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 7 + -1 -21 1 49 21 21 -1 + -1 -21 1 49 1 1 37 + 1 1 1 49 -1 -21 -1 + 21 21 1 49 -1 -21 76 + 21 21 -1 -49 1 21 -1 + 1 1 -1 -49 1 21 16 + 21 1 1 1 1 21 99 + 21 1 49 49 1 21 99 + 21 49 23 +blk-3-split-2-s + 6 + 21 1 1 49 1 1 2 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 10 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 1 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 17 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 23 +blk-3-split-2-2 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 9 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 11 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 2 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 18 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 23 +blk-3-split-2-3 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 10 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 12 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 3 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 19 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 23 +blk-3-split-2-4 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 11 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 13 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 4 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 20 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 23 +blk-3-split-2-5 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 12 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 14 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 5 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 21 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 21 +blk-3-split-2-6 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 13 + -1 -21 1 49 21 21 -1 + -1 -21 1 49 1 1 15 + 1 1 -1 -49 1 21 -1 + 21 21 -1 -49 1 21 6 + 21 21 -1 -49 1 21 -1 + 1 1 -1 -49 1 21 22 + 21 1 1 1 1 21 99 + 21 1 49 49 1 21 99 + 21 49 23 +blk-3-split-2-7 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 21 21 14 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 16 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 7 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 23 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 21 +blk-3-split-2-8 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 15 + -1 -21 1 49 21 21 -1 + -1 -21 1 49 1 1 41 + 1 1 -1 -49 1 21 -1 + 21 21 -1 -49 1 21 8 + 21 21 -1 -49 1 21 -1 + 1 1 -1 -49 1 21 24 + 21 1 1 1 1 21 99 + 21 1 49 49 1 21 99 + 21 49 23 +blk-3-split-3-s + 6 + 21 1 1 49 1 1 2 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 18 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 9 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 25 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 23 +blk-3-split-3-2 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 17 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 19 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 10 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 26 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 23 +blk-3-split-3-3 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 18 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 20 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 11 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 27 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 23 +blk-3-split-3-4 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 19 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 21 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 12 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 28 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 23 +blk-3-split-3-5 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 20 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 22 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 13 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 29 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 21 +blk-3-split-3-6 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 21 + -1 -21 1 49 21 21 -1 + -1 -21 1 49 1 1 23 + 1 1 -1 -49 1 21 -1 + 21 21 -1 -49 1 21 14 + 21 21 -1 -49 1 21 -1 + 1 1 -1 -49 1 21 30 + 21 1 1 1 1 21 99 + 21 1 49 49 1 21 99 + 21 49 23 +blk-3-split-3-7 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 21 21 22 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 24 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 15 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 31 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 21 +blk-3-split-3-8 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 23 + -1 -21 1 49 21 21 -1 + -1 -21 1 49 1 1 45 + 1 1 -1 -49 1 21 -1 + 21 21 -1 -49 1 21 16 + 21 21 -1 -49 1 21 -1 + 1 1 -1 -49 1 21 32 + 21 1 1 1 1 21 99 + 21 1 49 49 1 21 99 + 21 49 23 +blk-3-split-4-s + 6 + 21 1 1 49 1 1 2 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 26 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 17 + 21 21 1 49 -23 -1 -1 + 1 1 1 49 -23 -1 33 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 23 +blk-3-split-4-2 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 25 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 27 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 18 + 21 21 1 49 -23 -1 -1 + 1 1 1 49 -23 -1 34 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 23 +blk-3-split-4-3 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 26 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 28 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 19 + 21 21 1 49 -23 -1 -1 + 1 1 1 49 -23 -1 35 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 23 +blk-3-split-4-4 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 27 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 29 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 20 + 21 21 1 49 -23 -1 -1 + 1 1 1 49 -23 -1 36 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 23 +blk-3-split-4-5 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 28 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 30 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 21 + 21 21 1 49 -1 -23 -1 + 1 1 1 49 -1 -23 81 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 21 +blk-3-split-4-6 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 29 + -1 -21 1 49 21 21 -1 + -1 -21 1 49 1 1 31 + 1 1 -1 -49 1 21 -1 + 21 21 -1 -49 1 21 22 + 21 21 1 49 -1 -21 -1 + 1 1 1 49 -1 -21 82 + 21 1 1 1 1 21 99 + 21 1 49 49 1 21 99 + 21 49 23 +blk-3-split-4-7 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 21 21 30 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 32 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 23 + 21 21 1 49 -1 -23 -1 + 1 1 1 49 -1 -23 83 + 21 1 1 1 1 23 99 + 21 1 49 49 1 23 99 + 21 49 21 +blk-3-split-4-8 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 31 + -1 -21 1 49 21 21 -1 + -1 -21 1 49 1 1 49 + 1 1 -1 -49 1 21 -1 + 21 21 -1 -49 1 21 24 + 21 21 1 49 -1 -21 -1 + 1 1 1 49 -1 -21 84 + 21 1 1 1 1 21 99 + 21 1 49 49 1 21 99 + 21 49 23 +blk-2-split-1-s + 6 + 1 21 1 49 1 1 2 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 34 + 1 1 1 49 -23 -1 -1 + 21 21 1 49 -23 -1 25 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 53 + 1 21 1 1 23 1 99 + 1 21 49 49 23 1 99 + 21 49 23 +blk-2-split-1-2 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 33 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 35 + 1 1 1 49 -23 -1 -1 + 21 21 1 49 -23 -1 26 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 54 + 1 21 1 1 23 1 99 + 1 21 49 49 23 1 99 + 21 49 23 +blk-2-split-2-s + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 34 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 36 + 1 1 1 49 -23 -1 -1 + 21 21 1 49 -23 -1 27 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 63 + 1 21 1 1 23 1 99 + 1 21 49 49 23 1 99 + 21 49 23 +blk-2-split-2-2 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 35 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 81 + 1 1 1 49 -23 -1 -1 + 21 21 1 49 -23 -1 28 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 64 + 1 21 1 1 23 1 99 + 1 21 49 49 23 1 99 + 21 49 23 +blk-4-split-1-s + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 21 21 8 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 38 + 1 1 1 49 -1 -23 -1 + 21 21 1 49 -1 -23 77 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 41 + 1 21 1 1 1 23 99 + 1 21 49 49 1 23 99 + 21 49 23 +blk-4-split-1-2 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 37 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 39 + 1 1 1 49 -1 -23 -1 + 21 21 1 49 -1 -23 78 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 42 + 1 21 1 1 1 23 99 + 1 21 49 49 1 23 99 + 21 49 25 +blk-4-split-1-3 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 38 + -1 -21 1 49 25 25 -1 + -1 -21 1 49 1 1 40 + 1 1 1 49 -1 -25 -1 + 21 21 1 49 -1 -25 79 + 21 21 -1 -49 1 25 -1 + 1 1 -1 -49 1 25 43 + 1 21 1 1 1 25 99 + 1 21 49 49 1 25 99 + 21 49 25 +blk-4-split-1-4 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 25 25 39 + 1 21 1 49 25 25 4 + 1 1 1 49 -1 -25 -1 + 21 21 1 49 -1 -25 80 + 21 21 -1 -49 1 25 -1 + 1 1 -1 -49 1 25 44 + 1 21 1 1 1 25 99 + 1 21 49 49 1 25 99 + 21 49 23 +blk-4-split-2-s + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 21 21 16 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 42 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 37 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 45 + 1 21 1 1 1 23 99 + 1 21 49 49 1 23 99 + 21 49 23 +blk-4-split-2-2 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 41 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 43 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 38 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 46 + 1 21 1 1 1 23 99 + 1 21 49 49 1 23 99 + 21 49 25 +blk-4-split-2-3 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 42 + -1 -21 1 49 25 25 -1 + -1 -21 1 49 1 1 44 + 1 1 -1 -49 1 25 -1 + 21 21 -1 -49 1 25 39 + 21 21 -1 -49 1 25 -1 + 1 1 -1 -49 1 25 47 + 1 21 1 1 1 25 99 + 1 21 49 49 1 25 99 + 21 49 25 +blk-4-split-2-4 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 25 25 43 + 1 21 1 49 25 25 4 + 1 1 -1 -49 1 25 -1 + 21 21 -1 -49 1 25 40 + 21 21 -1 -49 1 25 -1 + 1 1 -1 -49 1 25 48 + 1 21 1 1 1 25 99 + 1 21 49 49 1 25 99 + 21 49 23 +blk-4-split-3-s + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 21 21 24 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 46 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 41 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 49 + 1 21 1 1 1 23 99 + 1 21 49 49 1 23 99 + 21 49 23 +blk-4-split-3-2 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 45 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 47 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 42 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 50 + 1 21 1 1 1 23 99 + 1 21 49 49 1 23 99 + 21 49 25 +blk-4-split-3-3 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 46 + -1 -21 1 49 25 25 -1 + -1 -21 1 49 1 1 48 + 1 1 -1 -49 1 25 -1 + 21 21 -1 -49 1 25 43 + 21 21 -1 -49 1 25 -1 + 1 1 -1 -49 1 25 51 + 1 21 1 1 1 25 99 + 1 21 49 49 1 25 99 + 21 49 25 +blk-4-split-3-4 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 25 25 47 + 1 21 1 49 25 25 4 + 1 1 -1 -49 1 25 -1 + 21 21 -1 -49 1 25 44 + 21 21 -1 -49 1 25 -1 + 1 1 -1 -49 1 25 52 + 1 21 1 1 1 25 99 + 1 21 49 49 1 25 99 + 21 49 23 +blk-4-split-4-s + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 21 21 32 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 50 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 45 + 21 21 1 49 -1 -23 -1 + 1 1 1 49 -1 -23 85 + 1 21 1 1 1 23 99 + 1 21 49 49 1 23 99 + 21 49 23 +blk-4-split-4-2 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 49 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 51 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 46 + 21 21 1 49 -1 -23 -1 + 1 1 1 49 -1 -23 86 + 1 21 1 1 1 23 99 + 1 21 49 49 1 23 99 + 21 49 25 +blk-4-split-4-3 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 50 + -1 -21 1 49 25 25 -1 + -1 -21 1 49 1 1 52 + 1 1 -1 -49 1 25 -1 + 21 21 -1 -49 1 25 47 + 21 21 1 49 -1 -25 -1 + 1 1 1 49 -1 -25 87 + 1 21 1 1 1 25 99 + 1 21 49 49 1 25 99 + 21 49 25 +blk-4-split-4-4 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 25 25 51 + 1 21 1 49 25 25 4 + 1 1 -1 -49 1 25 -1 + 21 21 -1 -49 1 25 48 + 21 21 1 49 -1 -25 -1 + 1 1 1 49 -1 -25 88 + 1 21 1 1 1 25 99 + 1 21 49 49 1 25 99 + 25 49 23 +blk-2-split-1-3 + 6 + 1 25 1 49 1 1 2 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 54 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 33 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 55 + 1 25 1 1 23 1 99 + 1 25 49 49 23 1 99 + 25 49 23 +blk-2-split-1-4 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 53 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 63 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 34 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 56 + 1 25 1 1 23 1 99 + 1 25 49 49 23 1 99 + 25 49 23 +blk-2-split-1-5 + 6 + 1 25 1 49 1 1 2 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 56 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 53 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 57 + 1 25 1 1 23 1 99 + 1 25 49 49 23 1 99 + 25 49 23 +blk-2-split-1-6 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 55 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 65 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 54 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 58 + 1 25 1 1 23 1 99 + 1 25 49 49 23 1 99 + 25 49 23 +blk-2-split-1-7 + 6 + 1 25 1 49 1 1 2 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 58 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 55 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 59 + 1 25 1 1 23 1 99 + 1 25 49 49 23 1 99 + 25 49 23 +blk-2-split-1-8 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 57 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 67 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 56 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 60 + 1 25 1 1 23 1 99 + 1 25 49 49 23 1 99 + 25 49 23 +blk-2-split-1-9 + 6 + 1 25 1 49 1 1 2 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 60 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 57 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 61 + 1 25 1 1 23 1 99 + 1 25 49 49 23 1 99 + 25 49 23 +blk-2-split-110 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 59 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 69 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 58 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 62 + 1 25 1 1 23 1 99 + 1 25 49 49 23 1 99 + 21 49 23 +blk-2-split-111 + 6 + 1 21 1 49 1 1 2 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 62 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 59 + 21 21 1 49 -23 -1 -1 + 1 1 1 49 -23 -1 1 + 1 21 1 1 23 1 99 + 1 21 49 49 23 1 99 + 21 49 23 +blk-2-split-112 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 61 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 71 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 60 + 21 21 1 49 -23 -1 -1 + 1 1 1 49 -23 -1 2 + 1 21 1 1 23 1 99 + 1 21 49 49 23 1 99 + 25 49 23 +blk-2-split-2-3 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 54 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 64 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 35 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 65 + 1 25 1 1 23 1 99 + 1 25 49 49 23 1 99 + 25 49 23 +blk-2-split-2-4 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 63 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 89 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 36 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 66 + 1 25 1 1 23 1 99 + 1 25 49 49 23 1 99 + 25 49 23 +blk-2-split-2-5 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 56 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 66 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 63 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 67 + 1 25 1 1 23 1 99 + 1 25 49 49 23 1 99 + 25 49 23 +blk-2-split-2-6 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 65 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 97 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 64 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 68 + 1 25 1 1 23 1 99 + 1 25 49 49 23 1 99 + 25 49 23 +blk-2-split-2-7 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 58 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 68 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 65 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 69 + 1 25 1 1 23 1 99 + 1 25 49 49 23 1 99 + 25 49 23 +blk-2-split-2-8 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 67 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 105 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 66 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 70 + 1 25 1 1 23 1 99 + 1 25 49 49 23 1 99 + 25 49 23 +blk-2-split-2-9 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 60 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 70 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 67 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 71 + 1 25 1 1 23 1 99 + 1 25 49 49 23 1 99 + 25 49 23 +blk-2-split-210 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 69 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 113 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 68 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 72 + 1 25 1 1 23 1 99 + 1 25 49 49 23 1 99 + 21 49 23 +blk-2-split-211 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 62 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 72 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 69 + 21 21 1 49 -23 -1 -1 + 1 1 1 49 -23 -1 3 + 1 21 1 1 23 1 99 + 1 21 49 49 23 1 99 + 21 49 23 +blk-2-split-212 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 71 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 73 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 70 + 21 21 1 49 -23 -1 -1 + 1 1 1 49 -23 -1 4 + 1 21 1 1 23 1 99 + 1 21 49 49 23 1 99 + 21 49 23 +blk-1-split-6-s + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 72 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 74 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 113 + 21 21 1 49 -1 -23 -1 + 1 1 1 49 -1 -23 5 + 1 21 1 1 1 23 99 + 1 21 49 49 1 23 99 + 21 49 21 +blk-1-split-6-2 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 73 + -1 -21 1 49 21 21 -1 + -1 -21 1 49 1 1 75 + 1 1 -1 -49 1 21 -1 + 25 25 -1 -49 1 21 114 + 21 21 1 49 -1 -21 -1 + 1 1 1 49 -1 -21 6 + 1 21 1 1 1 21 99 + 1 21 49 49 1 21 99 + 21 49 23 +blk-1-split-6-3 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 21 21 74 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 76 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 115 + 21 21 1 49 -1 -23 -1 + 1 1 1 49 -1 -23 7 + 1 21 1 1 1 23 99 + 1 21 49 49 1 23 99 + 21 49 21 +blk-1-split-6-4 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 75 + -1 -21 1 49 21 21 -1 + -1 -21 1 49 1 1 77 + 1 1 -1 -49 1 21 -1 + 25 25 -1 -49 1 21 116 + 21 21 1 49 -1 -21 -1 + 1 1 1 49 -1 -21 8 + 1 21 1 1 1 21 99 + 1 21 49 49 1 21 99 + 21 49 23 +blk-1-split-6-5 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 21 21 76 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 78 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 117 + 21 21 1 49 -1 -23 -1 + 1 1 1 49 -1 -23 37 + 1 21 1 1 1 23 99 + 1 21 49 49 1 23 99 + 21 49 23 +blk-1-split-6-6 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 77 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 79 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 118 + 21 21 1 49 -1 -23 -1 + 1 1 1 49 -1 -23 38 + 1 21 1 1 1 23 99 + 1 21 49 49 1 23 99 + 21 49 25 +blk-1-split-6-7 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 78 + -1 -21 1 49 25 25 -1 + -1 -21 1 49 1 1 80 + 1 1 -1 -49 1 25 -1 + 25 25 -1 -49 1 25 119 + 21 21 1 49 -1 -25 -1 + 1 1 1 49 -1 -25 39 + 1 21 1 1 1 25 99 + 1 21 49 49 1 25 99 + 21 49 25 +blk-1-split-6-8 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 25 25 79 + 1 21 1 49 25 25 4 + 1 1 -1 -49 1 25 -1 + 25 25 -1 -49 1 25 120 + 21 21 1 49 -1 -25 -1 + 1 1 1 49 -1 -25 40 + 1 21 1 1 1 25 99 + 1 21 49 49 1 25 99 + 21 49 23 +blk-1-split-1-s + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 36 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 82 + 1 1 1 49 -1 -23 -1 + 21 21 1 49 -1 -23 29 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 89 + 1 21 1 1 1 23 99 + 1 21 49 49 1 23 99 + 21 49 21 +blk-1-split-1-2 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 81 + -1 -21 1 49 21 21 -1 + -1 -21 1 49 1 1 83 + 1 1 1 49 -1 -21 -1 + 21 21 1 49 -1 -21 30 + 21 21 -1 -49 1 21 -1 + 1 1 -1 -49 1 21 90 + 1 21 1 1 1 21 99 + 1 21 49 49 1 21 99 + 21 49 23 +blk-1-split-1-3 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 21 21 82 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 84 + 1 1 1 49 -1 -23 -1 + 21 21 1 49 -1 -23 31 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 91 + 1 21 1 1 1 23 99 + 1 21 49 49 1 23 99 + 21 49 21 +blk-1-split-1-4 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 83 + -1 -21 1 49 21 21 -1 + -1 -21 1 49 1 1 85 + 1 1 1 49 -1 -21 -1 + 21 21 1 49 -1 -21 32 + 21 21 -1 -49 1 21 -1 + 1 1 -1 -49 1 21 92 + 1 21 1 1 1 21 99 + 1 21 49 49 1 21 99 + 21 49 23 +blk-1-split-1-5 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 21 21 84 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 86 + 1 1 1 49 -1 -23 -1 + 21 21 1 49 -1 -23 49 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 93 + 1 21 1 1 1 23 99 + 1 21 49 49 1 23 99 + 21 49 23 +blk-1-split-1-6 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 85 + -1 -21 1 49 23 23 -1 + -1 -21 1 49 1 1 87 + 1 1 1 49 -1 -23 -1 + 21 21 1 49 -1 -23 50 + 21 21 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 94 + 1 21 1 1 1 23 99 + 1 21 49 49 1 23 99 + 21 49 25 +blk-1-split-1-7 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 23 23 86 + -1 -21 1 49 25 25 -1 + -1 -21 1 49 1 1 88 + 1 1 1 49 -1 -25 -1 + 21 21 1 49 -1 -25 51 + 21 21 -1 -49 1 25 -1 + 1 1 -1 -49 1 25 95 + 1 21 1 1 1 25 99 + 1 21 49 49 1 25 99 + 21 49 25 +blk-1-split-1-8 + 6 + -1 -21 1 49 1 1 -1 + -1 -21 1 49 25 25 87 + 1 21 1 49 25 25 4 + 1 1 1 49 -1 -25 -1 + 21 21 1 49 -1 -25 52 + 21 21 -1 -49 1 25 -1 + 1 1 -1 -49 1 25 96 + 1 21 1 1 1 25 99 + 1 21 49 49 1 25 99 + 25 49 23 +blk-1-split-2-s + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 64 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 90 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 81 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 97 + 1 25 1 1 1 23 99 + 1 25 49 49 1 23 99 + 25 49 21 +blk-1-split-2-2 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 89 + -1 -25 1 49 21 21 -1 + -1 -25 1 49 1 1 91 + 1 1 -1 -49 1 21 -1 + 21 21 -1 -49 1 21 82 + 25 25 -1 -49 1 21 -1 + 1 1 -1 -49 1 21 98 + 1 25 1 1 1 21 99 + 1 25 49 49 1 21 99 + 25 49 23 +blk-1-split-2-3 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 21 21 90 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 92 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 83 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 99 + 1 25 1 1 1 23 99 + 1 25 49 49 1 23 99 + 25 49 21 +blk-1-split-2-4 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 91 + -1 -25 1 49 21 21 -1 + -1 -25 1 49 1 1 93 + 1 1 -1 -49 1 21 -1 + 21 21 -1 -49 1 21 84 + 25 25 -1 -49 1 21 -1 + 1 1 -1 -49 1 21 100 + 1 25 1 1 1 21 99 + 1 25 49 49 1 21 99 + 25 49 23 +blk-1-split-2-5 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 21 21 92 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 94 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 85 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 101 + 1 25 1 1 1 23 99 + 1 25 49 49 1 23 99 + 25 49 23 +blk-1-split-2-6 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 93 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 95 + 1 1 -1 -49 1 23 -1 + 21 21 -1 -49 1 23 86 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 102 + 1 25 1 1 1 23 99 + 1 25 49 49 1 23 99 + 25 49 25 +blk-1-split-2-7 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 94 + -1 -25 1 49 25 25 -1 + -1 -25 1 49 1 1 96 + 1 1 -1 -49 1 25 -1 + 21 21 -1 -49 1 25 87 + 25 25 -1 -49 1 25 -1 + 1 1 -1 -49 1 25 103 + 1 25 1 1 1 25 99 + 1 25 49 49 1 25 99 + 25 49 25 +blk-1-split-2-8 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 25 25 95 + 1 25 1 49 25 25 4 + 1 1 -1 -49 1 25 -1 + 21 21 -1 -49 1 25 88 + 25 25 -1 -49 1 25 -1 + 1 1 -1 -49 1 25 104 + 1 25 1 1 1 25 99 + 1 25 49 49 1 25 99 + 25 49 23 +blk-1-split-3-s + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 66 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 98 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 89 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 105 + 1 25 1 1 1 23 99 + 1 25 49 49 1 23 99 + 25 49 21 +blk-1-split-3-2 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 97 + -1 -25 1 49 21 21 -1 + -1 -25 1 49 1 1 99 + 1 1 -1 -49 1 21 -1 + 25 25 -1 -49 1 21 90 + 25 25 -1 -49 1 21 -1 + 1 1 -1 -49 1 21 106 + 1 25 1 1 1 21 99 + 1 25 49 49 1 21 99 + 25 49 23 +blk-1-split-3-3 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 21 21 98 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 100 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 91 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 107 + 1 25 1 1 1 23 99 + 1 25 49 49 1 23 99 + 25 49 21 +blk-1-split-3-4 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 99 + -1 -25 1 49 21 21 -1 + -1 -25 1 49 1 1 101 + 1 1 -1 -49 1 21 -1 + 25 25 -1 -49 1 21 92 + 25 25 -1 -49 1 21 -1 + 1 1 -1 -49 1 21 108 + 1 25 1 1 1 21 99 + 1 25 49 49 1 21 99 + 25 49 23 +blk-1-split-3-5 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 21 21 100 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 102 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 93 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 109 + 1 25 1 1 1 23 99 + 1 25 49 49 1 23 99 + 25 49 23 +blk-1-split-3-6 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 101 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 103 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 94 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 110 + 1 25 1 1 1 23 99 + 1 25 49 49 1 23 99 + 25 49 25 +blk-1-split-3-7 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 102 + -1 -25 1 49 25 25 -1 + -1 -25 1 49 1 1 104 + 1 1 -1 -49 1 25 -1 + 25 25 -1 -49 1 25 95 + 25 25 -1 -49 1 25 -1 + 1 1 -1 -49 1 25 111 + 1 25 1 1 1 25 99 + 1 25 49 49 1 25 99 + 25 49 25 +blk-1-split-3-8 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 25 25 103 + 1 25 1 49 25 25 4 + 1 1 -1 -49 1 25 -1 + 25 25 -1 -49 1 25 96 + 25 25 -1 -49 1 25 -1 + 1 1 -1 -49 1 25 112 + 1 25 1 1 1 25 99 + 1 25 49 49 1 25 99 + 25 49 23 +blk-1-split-4-s + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 68 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 106 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 97 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 113 + 1 25 1 1 1 23 99 + 1 25 49 49 1 23 99 + 25 49 21 +blk-1-split-4-2 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 105 + -1 -25 1 49 21 21 -1 + -1 -25 1 49 1 1 107 + 1 1 -1 -49 1 21 -1 + 25 25 -1 -49 1 21 98 + 25 25 -1 -49 1 21 -1 + 1 1 -1 -49 1 21 114 + 1 25 1 1 1 21 99 + 1 25 49 49 1 21 99 + 25 49 23 +blk-1-split-4-3 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 21 21 106 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 108 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 99 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 115 + 1 25 1 1 1 23 99 + 1 25 49 49 1 23 99 + 25 49 21 +blk-1-split-4-4 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 107 + -1 -25 1 49 21 21 -1 + -1 -25 1 49 1 1 109 + 1 1 -1 -49 1 21 -1 + 25 25 -1 -49 1 21 100 + 25 25 -1 -49 1 21 -1 + 1 1 -1 -49 1 21 116 + 1 25 1 1 1 21 99 + 1 25 49 49 1 21 99 + 25 49 23 +blk-1-split-4-5 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 21 21 108 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 110 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 101 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 117 + 1 25 1 1 1 23 99 + 1 25 49 49 1 23 99 + 25 49 23 +blk-1-split-4-6 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 109 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 111 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 102 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 118 + 1 25 1 1 1 23 99 + 1 25 49 49 1 23 99 + 25 49 25 +blk-1-split-4-7 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 110 + -1 -25 1 49 25 25 -1 + -1 -25 1 49 1 1 112 + 1 1 -1 -49 1 25 -1 + 25 25 -1 -49 1 25 103 + 25 25 -1 -49 1 25 -1 + 1 1 -1 -49 1 25 119 + 1 25 1 1 1 25 99 + 1 25 49 49 1 25 99 + 25 49 25 +blk-1-split-4-8 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 25 25 111 + 1 25 1 49 25 25 4 + 1 1 -1 -49 1 25 -1 + 25 25 -1 -49 1 25 104 + 25 25 -1 -49 1 25 -1 + 1 1 -1 -49 1 25 120 + 1 25 1 1 1 25 99 + 1 25 49 49 1 25 99 + 25 49 23 +blk-1-split-5-s + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 70 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 114 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 105 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 73 + 1 25 1 1 1 23 99 + 1 25 49 49 1 23 99 + 25 49 21 +blk-1-split-5-2 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 113 + -1 -25 1 49 21 21 -1 + -1 -25 1 49 1 1 115 + 1 1 -1 -49 1 21 -1 + 25 25 -1 -49 1 21 106 + 25 25 -1 -49 1 21 -1 + 1 1 -1 -49 1 21 74 + 1 25 1 1 1 21 99 + 1 25 49 49 1 21 99 + 25 49 23 +blk-1-split-5-3 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 21 21 114 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 116 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 107 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 75 + 1 25 1 1 1 23 99 + 1 25 49 49 1 23 99 + 25 49 21 +blk-1-split-5-4 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 115 + -1 -25 1 49 21 21 -1 + -1 -25 1 49 1 1 117 + 1 1 -1 -49 1 21 -1 + 25 25 -1 -49 1 21 108 + 25 25 -1 -49 1 21 -1 + 1 1 -1 -49 1 21 76 + 1 25 1 1 1 21 99 + 1 25 49 49 1 21 99 + 25 49 23 +blk-1-split-5-5 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 21 21 116 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 118 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 109 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 77 + 1 25 1 1 1 23 99 + 1 25 49 49 1 23 99 + 25 49 23 +blk-1-split-5-6 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 117 + -1 -25 1 49 23 23 -1 + -1 -25 1 49 1 1 119 + 1 1 -1 -49 1 23 -1 + 25 25 -1 -49 1 23 110 + 25 25 -1 -49 1 23 -1 + 1 1 -1 -49 1 23 78 + 1 25 1 1 1 23 99 + 1 25 49 49 1 23 99 + 25 49 25 +blk-1-split-5-7 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 23 23 118 + -1 -25 1 49 25 25 -1 + -1 -25 1 49 1 1 120 + 1 1 -1 -49 1 25 -1 + 25 25 -1 -49 1 25 111 + 25 25 -1 -49 1 25 -1 + 1 1 -1 -49 1 25 79 + 1 25 1 1 1 25 99 + 1 25 49 49 1 25 99 + 25 49 25 +blk-1-split-5-8 + 6 + -1 -25 1 49 1 1 -1 + -1 -25 1 49 25 25 119 + 1 25 1 49 25 25 4 + 1 1 -1 -49 1 25 -1 + 25 25 -1 -49 1 25 112 + 25 25 -1 -49 1 25 -1 + 1 1 -1 -49 1 25 80 + 1 25 1 1 1 25 99 + 1 25 49 49 1 25 99 diff --git a/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/bin/cfd_para.hypara b/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/bin/cfd_para.hypara new file mode 100644 index 00000000..449929dc --- /dev/null +++ b/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/bin/cfd_para.hypara @@ -0,0 +1,809 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// 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, 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 = 0; +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 -- 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. +// 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. +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 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// .skl meaning skeleton. +string original_grid_info_file = "./grid/FLUENT_test.skl"; + +// 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. +// mixgrid_str_bc: path of structure grid boundary condition file 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. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Adaptive Mesh Refine ------------------------------- +// In this file, the original_grid_file is used of the partition part. +// If use it dependently, abstract it here. +string adapt_grid_file = "./grid/sphere_mixed_adapt1.fts"; +string geometryFileName = "./grid/jsm.igs"; + +// 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 geometryUnit = 1; +int anisoRefine = 0; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; // 0: NON case; 1: JSM-C2-NPOFF case; 2: CHNT. +int projectOrgPoint = 0; // if project original wall points. + +// ----------------- RBF Parameters ------------------------------------- +// symmetryPlane: Which symmetry plane is used in the mesh. +// 0 -- without symmetry. +// 1 -- plane of x=0. +// 2 -- plane of y=0. +// 3 -- plane of z=0. +int numberOfReferenceCP = 10; +double influenceRadius = 20; +int symmetryPlane = 3; // 1: plane of x=0; 2: plane of y=0; 3: plane of z=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. +int pgridtype = 0; +int maxproc = 4; + +// 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]; + +//----------------------------------------------------------------------- +# 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. +// 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: 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. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) + +int maxSimuStep = 20000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; +int ifLowSpeedPrecon = 0; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 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. +// 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. +// 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. +// 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. +// 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. + +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 10000.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)). + +//int inflowParaType = 3; +//int nsubsonicInlet = 1; +//int nsubsonicOutlet = 1; +//string inLetFileName = "./bin/subsonicInlet.hypara"; +//string outLetFileName = "./bin/subsonicOutlet.hypara"; +//double refDimensionalTemperature = 288.144; +//double refDimensionalPressure = 1.01313E05; + +double wallTemperature = -1.0; +int dump_Q = 0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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. + +// directionMethod: The method of determining direction. +// 1 -- using direciton. +// 2 -- using face normal. +// subsonicInletTotalPressure: The dimensional total pressure of subsonic inlet if height > 0, else non-dimensional. +// subsonicInletTotalTemperature: The dimensional total temperature of subsonic inlet if height > 0, else non-dimensional. +// direction_inlet: The direction of inlet. +// subsonicOutletTotalPressure: The dimensional total pressure of subsonic outlet if height > 0, else non-dimensional. +// subsonicOutletTotalTemperature: The dimensional total temperature of subsonic outlet if height > 0, else non-dimensional. +// direction_outlet: The direction of outlet. +int directionMethod = 2; +double subsonicInletTotalPressure = 1.2e6; +double subsonicInletTotalTemperature = 1300; +double direction_inlet[] = 1, 0, 0; + +double subsonicOutletTotalPressure = 17.8571428; +double subsonicOutletTotalTemperature = 1.0; +double direction_outlet[] = 1, 0, 0; + +//----------------------------------------------------------------------- +# 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". +// 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 inviscidSchemeName = "roe"; +string str_limiter_name = "vanalbada"; + +#******************************************************************* +# UnStruct Solver or Common * +#******************************************************************* +// viscousType : Viscous model. +// 0 -- Euler. +// 1 -- Lamilar. +// 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", "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. +// 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. + +//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 limit_angle = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 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 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. +// 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. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// iale: 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; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int startStatisticStep = 800000; + +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; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; + +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 timemax = 1.0e10; +double dtsave = -1.0; +int iale = 0; +int ialetype = 2; +int maxale = 10; +double dtau = 0.001; +double dtau_max = 1E-01; + +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! +// isPlotVolumeField: 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. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; + +int walldistMethod = 1; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "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 isPlotVolumeField = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. + +int visualfileType = 1; + +// 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 lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [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), vibration temperature(33), electron temperature(34), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44). +// 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]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +//----------------------------------------------------------------------- +# Turbulence Parameter # +//----------------------------------------------------------------------- +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// 1 -- Edwards. +// 2 -- new. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. + +int turbInterval = 1; +int turb_vis_kind = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double turb_relax = 1.0; +double turb_min_coef = 1.0e-1; +double freeStreamViscosity = 1.0e-3; +double muoo = 1.0e-1; +double kwoo = 1.0; + +# maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +double sdilim = 1.0e20; +double coef_kvist = 1.0; +int monitor_vistmax = 0; + +//----------------------------------------------------------------------- +# Other Parameter # +//----------------------------------------------------------------------- +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- NS. +// 1 -- MHD. +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int dg_high_order = 0; +int iapplication = 0; +int nm = 5; + +// MHD +double bxoo = 0.0; +double byoo = 0.0; +double bzoo = 0.0; + +double refGama = 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 = 1; +int nchemrad = 1; +int ntmodel = 1; +int nChemicalFlowStep = 0; +double catalyticCoef = 0.0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.77"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.77, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.77, 0.0"; + +int ifStartFromPerfectGasResults = 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 # +######################################################################### +// ifvfd: +// 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 ifvfd = 0; +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"; + +// ----------------- 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; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 2.329418E08; +//@double refDimensionalTemperature = 288.144; +//@double refDimensionalPressure = 1.01313E05; +//@double height = -0.001; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; diff --git a/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/bin/cfd_para_hypersonic.hypara b/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/bin/cfd_para_hypersonic.hypara new file mode 100644 index 00000000..12e384f9 --- /dev/null +++ b/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/bin/cfd_para_hypersonic.hypara @@ -0,0 +1,267 @@ +######################################################################### +# 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 = 50000; + +int intervalStepFlow = 500; +int intervalStepPlot = 500; +int intervalStepForce = 100; +int intervalStepRes = 10; + +######################################################################### +# Inflow Parameter # +######################################################################### +// refMachNumber: Mach number. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// wallTemperature: 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. +// 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. +// 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. +// 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 = 8.15; +double attackd = 0.00; +double angleSlide = 0.00; + +double wallTemperature = 288.0; +int dump_Q = 1; + +int inflowParaType = 0; +double refReNumber = 1.67e7; +double refDimensionalTemperature = 56.0; +double freestream_vibration_temperature = 10000.0; + +//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)). + +double gridScaleFactor = 0.01; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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. +// -- "vanleer", "steger", "ausmpw". +// str_limiter_name: Limiter of struct grid. +// -- "minmod", "3rd_minmod_smooth". + +string inviscidSchemeName = "steger"; +string str_limiter_name = "minmod"; + +#******************************************************************* +# 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 = "vanleer"; +string uns_limiter_name = "vencat"; +double venkatCoeff = 0.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. +// ktmax: The lower the value, the more robustness, 1.0e5 - 1.0e10. + +int iunsteady = 0; + +double CFLEnd = 2.0; +int CFLVaryStep = 100; + +int nLUSGSSweeps = 4; +double LUSGSTolerance = 1.0e-20; + +double ktmax = 1.0e10; + +######################################################################### +# 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! +// isPlotVolumeField: If dump out the whole field results to tecplot or not, 0 / 1. + +string gridfile = "./grid/dbl_yzg__48.fts"; +int isPlotVolumeField = 1; + +// ----------------- 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 = 0; +int limitVariables = 0; +int limitVector = 1; + +######################################################################### +# High Order Struct Solver # +######################################################################### +// ifvfd: +// 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 ifvfd = 1; +int SolverStructOrder = 0; +double str_highorder_interpolation_epsilon = 1.0e-4; +string str_highorder_interpolation_type = "test"; +string str_highorder_flux_name = "steger"; +string structhighordergradient = "conservation"; + +######################################################################### +# Non-equilibrium gas # +######################################################################### +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int nchem = 0; +int ntmodel = 1; +int nchemsrc = 1; +int nchemrad = 1; +double catalyticCoef = 1.0; +string gasfile = "DK5"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.07955, 0.134, 0.0509, 1.0e-9, 0.73555"; +int ifStartFromPerfectGasResults = 0; diff --git a/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/bin/grid_para.hypara b/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/bin/grid_para.hypara new file mode 100644 index 00000000..42405672 --- /dev/null +++ b/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/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 -- 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 = 1; +int axisup = 1; +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/dbl_yzg.cgns"; +string out_gfile = "./grid/dbl_yzg.fts"; diff --git a/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/bin/key.hypara b/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/bin/key.hypara new file mode 100644 index 00000000..e90f5012 --- /dev/null +++ b/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/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 parameter files. +// nsimutask: simulation task type. +// 0 -- CFD Solver of NS or Turbulation. +// 1 -- Grid generation: for special typical cases, such as cylinder, flat plate, etc. +// Grid conversion: from other format to PHengLEI format (.fts). +// Grid reconstruction: such as grid adaptation. +// Grid merging: merge two blocks into one block. +// Grid repairing: repair the original grid in order to remove the negative volume cells. +// 2 -- Wall distance computation for turb-solver. +// 3 -- Grid partition. +// 4 -- Knowledge repository / examples of PHengLEI-API. +int ndim = 3; +int nparafile = 1; + +int nsimutask = 0; +//string parafilename = "./bin/cfd_para_subsonic.hypara"; +//string parafilename = "./bin/cfd_para_transonic.hypara"; +//string parafilename = "./bin/cfd_para_supersonic.hypara"; +string parafilename = "./bin/cfd_para_hypersonic.hypara"; +//string parafilename = "./bin/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/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/bin/partition.hypara b/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/bin/partition.hypara new file mode 100644 index 00000000..fa9f2944 --- /dev/null +++ b/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/bin/partition.hypara @@ -0,0 +1,21 @@ +// pgridtype: The grid type. +// 0 -- unstruct grid. +// 1 -- struct grid. +// maxproc: The number of partition zones that want to be divided into, +// which is equal to the number of CPU processors you want. +// Usually, 50~100 thousands structured cells per CPU-Core is suggested. +// 30~70 thousands unstructured cells per CPU-Core is suggested. +// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts). +// partition_grid_file: Target partition grid file(PHengLEI type, *.fts). + +int pgridtype = 1; +int maxproc = 48; + +string original_grid_file = "./grid/dbl_yzg.fts"; +string partition_grid_file = "./grid/dbl_yzg__48.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/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/grid/dbl_yzg.cgns b/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/grid/dbl_yzg.cgns new file mode 100644 index 00000000..4f07b6b6 Binary files /dev/null and b/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/grid/dbl_yzg.cgns differ diff --git a/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/grid/网格说明.txt b/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/grid/网格说明.txt new file mode 100644 index 00000000..cbbba708 --- /dev/null +++ b/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/ThreeD_DoubleEllipse_Laminar_HighOrder_Struct/grid/网格说明.txt @@ -0,0 +1 @@ +ṩ diff --git a/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/bin/cfd_para.hypara b/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/bin/cfd_para.hypara new file mode 100644 index 00000000..2191709c --- /dev/null +++ b/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/bin/cfd_para.hypara @@ -0,0 +1,809 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// 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, 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 = 0; +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 -- 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. +// 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. +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 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// .skl meaning skeleton. +string original_grid_info_file = "./grid/FLUENT_test.skl"; + +// 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. +// mixgrid_str_bc: path of structure grid boundary condition file 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. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Adaptive Mesh Refine ------------------------------- +// In this file, the original_grid_file is used of the partition part. +// If use it dependently, abstract it here. +string adapt_grid_file = "./grid/sphere_mixed_adapt1.fts"; +string geometryFileName = "./grid/jsm.igs"; + +// 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 geometryUnit = 1; +int anisoRefine = 0; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; // 0: NON case; 1: JSM-C2-NPOFF case; 2: CHNT. +int projectOrgPoint = 0; // if project original wall points. + +// ----------------- RBF Parameters ------------------------------------- +// symmetryPlane: Which symmetry plane is used in the mesh. +// 0 -- without symmetry. +// 1 -- plane of x=0. +// 2 -- plane of y=0. +// 3 -- plane of z=0. +int numberOfReferenceCP = 10; +double influenceRadius = 20; +int symmetryPlane = 3; // 1: plane of x=0; 2: plane of y=0; 3: plane of z=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. +int pgridtype = 0; +int maxproc = 4; + +// 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]; + +//----------------------------------------------------------------------- +# 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. +// 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: 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. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) + +int maxSimuStep = 20000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; +int ifLowSpeedPrecon = 0; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 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. +// 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. +// 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. +// 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. +// 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. + +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 10000.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)). + +//int inflowParaType = 3; +//int nsubsonicInlet = 1; +//int nsubsonicOutlet = 1; +//string inLetFileName = "./bin/subsonicInlet.hypara"; +//string outLetFileName = "./bin/subsonicOutlet.hypara"; +//double refDimensionalTemperature = 288.144; +//double refDimensionalPressure = 1.01313E05; + +double wallTemperature = -1.0; +int dump_Q = 0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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. + +// directionMethod: The method of determining direction. +// 1 -- using direciton. +// 2 -- using face normal. +// subsonicInletTotalPressure: The dimensional total pressure of subsonic inlet if height > 0, else non-dimensional. +// subsonicInletTotalTemperature: The dimensional total temperature of subsonic inlet if height > 0, else non-dimensional. +// direction_inlet: The direction of inlet. +// subsonicOutletTotalPressure: The dimensional total pressure of subsonic outlet if height > 0, else non-dimensional. +// subsonicOutletTotalTemperature: The dimensional total temperature of subsonic outlet if height > 0, else non-dimensional. +// direction_outlet: The direction of outlet. +int directionMethod = 2; +double subsonicInletTotalPressure = 1.2e6; +double subsonicInletTotalTemperature = 1300; +double direction_inlet[] = 1, 0, 0; + +double subsonicOutletTotalPressure = 17.8571428; +double subsonicOutletTotalTemperature = 1.0; +double direction_outlet[] = 1, 0, 0; + +//----------------------------------------------------------------------- +# 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". +// 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 inviscidSchemeName = "roe"; +string str_limiter_name = "vanalbada"; + +#******************************************************************* +# UnStruct Solver or Common * +#******************************************************************* +// viscousType: Viscous model. +// 0 -- Euler. +// 1 -- Lamilar. +// 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", "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. +// 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. + +//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 limit_angle = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 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 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. +// 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. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// iale: 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; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int startStatisticStep = 800000; + +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; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; + +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 timemax = 1.0e10; +double dtsave = -1.0; +int iale = 0; +int ialetype = 2; +int maxale = 10; +double dtau = 0.001; +double dtau_max = 1E-01; + +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! +// isPlotVolumeField: 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. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; + +int walldistMethod = 1; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "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 isPlotVolumeField = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. + +int visualfileType = 1; + +// 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 lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [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), vibration temperature(33), electron temperature(34), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44). +// 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]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +//----------------------------------------------------------------------- +# Turbulence Parameter # +//----------------------------------------------------------------------- +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// 1 -- Edwards. +// 2 -- new. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. + +int turbInterval = 1; +int turb_vis_kind = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double turb_relax = 1.0; +double turb_min_coef = 1.0e-1; +double freeStreamViscosity = 1.0e-3; +double muoo = 1.0e-1; +double kwoo = 1.0; + +# maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +double sdilim = 1.0e20; +double coef_kvist = 1.0; +int monitor_vistmax = 0; + +//----------------------------------------------------------------------- +# Other Parameter # +//----------------------------------------------------------------------- +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- NS. +// 1 -- MHD. +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int dg_high_order = 0; +int iapplication = 0; +int nm = 5; + +// MHD +double bxoo = 0.0; +double byoo = 0.0; +double bzoo = 0.0; + +double refGama = 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 = 1; +int nchemrad = 1; +int ntmodel = 1; +int nChemicalFlowStep = 0; +double catalyticCoef = 0.0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.77"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.77, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.77, 0.0"; + +int ifStartFromPerfectGasResults = 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 # +######################################################################### +// ifvfd: +// 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 ifvfd = 0; +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"; + +// ----------------- 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; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 2.329418E08; +//@double refDimensionalTemperature = 288.144; +//@double refDimensionalPressure = 1.01313E05; +//@double height = -0.001; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; diff --git a/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/bin/cfd_para_hypersonic.hypara b/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/bin/cfd_para_hypersonic.hypara new file mode 100644 index 00000000..96e7bc1f --- /dev/null +++ b/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/bin/cfd_para_hypersonic.hypara @@ -0,0 +1,240 @@ +######################################################################### +# 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 = 30000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 100; +int intervalStepForce = 100; +int intervalStepRes = 10; + +######################################################################### +# Inflow Parameter # +######################################################################### +// refMachNumber: Mach number. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// wallTemperature: 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. +// 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. +// 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. +// 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 = 12.935; +double attackd = 0.00; +double angleSlide = 0.00; + +double wallTemperature = 343.0; +int dump_Q = 0; + +int inflowParaType = 0; +double refReNumber = 1.628325e5; +double refDimensionalTemperature = 265.0; +double freestream_vibration_temperature = 265.0; + +//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)). + +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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 = 2; +double roeEntropyScale = 1.0; +######################################################################### +# Spatial Discretisation # +######################################################################### +#******************************************************************* +# Struct Solver * +#******************************************************************* +// inviscidSchemeName: Spatial discretisation scheme of struct grid. +// Using this when solve structered grid or hybrid. +// -- "vanleer", "steger", "ausmpw","ausmdv". +// str_limiter_name: Limiter of struct grid. +// -- "minmod", "3rd_minmod_smooth". + +string inviscidSchemeName = "ausmdv"; +string str_limiter_name = "minmod"; + +#******************************************************************* +# 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 = "vanleer"; +string uns_limiter_name = "vencat"; +double venkatCoeff = 0.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. +// ktmax: The lower the value, the more robustness, 1.0e5 - 1.0e10. + +int iunsteady = 0; + +double CFLStart = 0.1; +double CFLEnd = 10.0; +int CFLVaryStep = 1000; + +double ktmax = 1.0e10; + +######################################################################### +# 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! +// isPlotVolumeField: If dump out the whole field results to tecplot or not, 0 / 1. + +string gridfile = "./grid/3D_Electre_Half_Model_dy1D-5__6.fts"; +int isPlotVolumeField = 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 = 0; +int limitVariables = 0; +int limitVector = 1; + +######################################################################### +# Non-equilibrium gas # +######################################################################### +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int nchem = 1; +int ntmodel = 1; +int nchemsrc = 1; +int nchemrad = 1; +double catalyticCoef = 0.0; +string gasfile = "DK5"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.767"; +int ifStartFromPerfectGasResults = 0; diff --git a/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/bin/grid_para.hypara b/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/bin/grid_para.hypara new file mode 100644 index 00000000..ebb256e9 --- /dev/null +++ b/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/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 -- 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 = 1; +int axisup = 1; +int from_gtype = 3; + +######################################################################### +# 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/3D_Electre_Half_Model_dy1D-5.grd"; +string out_gfile = "./grid/3D_Electre_Half_Model_dy1D-5.fts"; diff --git a/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/bin/key.hypara b/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/bin/key.hypara new file mode 100644 index 00000000..43cfd72c --- /dev/null +++ b/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/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 parameter files. +// nsimutask: simulation task type. +// 0 -- CFD Solver of NS or Turbulation. +// 1 -- Grid generation: for special typical cases, such as cylinder, flat plate, etc. +// Grid conversion: from other format to PHengLEI format (.fts). +// Grid reconstruction: such as grid adaptation. +// Grid merging: merge two blocks into one block. +// Grid repairing: repair the original grid in order to remove the negative volume cells. +// 2 -- Wall distance computation for turb-solver. +// 3 -- Grid partition. +// 4 -- Knowledge repository / examples of PHengLEI-API. +int ndim = 3; +int nparafile = 1; + +int nsimutask = 0; +//string parafilename = "./bin/cfd_para_subsonic.hypara"; +//string parafilename = "./bin/cfd_para_transonic.hypara"; +//string parafilename = "./bin/cfd_para_supersonic.hypara"; +string parafilename = "./bin/cfd_para_hypersonic.hypara"; +//string parafilename = "./bin/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/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/bin/partition.hypara b/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/bin/partition.hypara new file mode 100644 index 00000000..5b9e09f8 --- /dev/null +++ b/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/bin/partition.hypara @@ -0,0 +1,21 @@ +// pgridtype: The grid type. +// 0 -- unstruct grid. +// 1 -- struct grid. +// maxproc: The number of partition zones that want to be divided into, +// which is equal to the number of CPU processors you want. +// Usually, 50~100 thousands structured cells per CPU-Core is suggested. +// 30~70 thousands unstructured cells per CPU-Core is suggested. +// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts). +// partition_grid_file: Target partition grid file(PHengLEI type, *.fts). + +int pgridtype = 1; +int maxproc = 6; + +string original_grid_file = "./grid/3D_Electre_Half_Model_dy1D-5.fts"; +string partition_grid_file = "./grid/3D_Electre_Half_Model_dy1D-5__6.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/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/grid/3D_Electre_Half_Model_dy1D-5.grd b/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/grid/3D_Electre_Half_Model_dy1D-5.grd new file mode 100644 index 00000000..695ded0f Binary files /dev/null and b/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/grid/3D_Electre_Half_Model_dy1D-5.grd differ diff --git a/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/grid/3D_Electre_Half_Model_dy1D-5.inp b/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/grid/3D_Electre_Half_Model_dy1D-5.inp new file mode 100644 index 00000000..947b1c2f --- /dev/null +++ b/ThreeD_Electre_Laminar_OneTemperMode_NCW_Struct/grid/3D_Electre_Half_Model_dy1D-5.inp @@ -0,0 +1,76 @@ + 1 + 6 + 25 97 71 +A + 7 + 1 25 1 31 1 1 2 + 1 25 31 97 1 1 2 + 1 25 1 97 71 71 4 + 1 1 1 97 1 71 3 + 25 25 -1 -97 1 71 -1 + 1 1 -1 -97 1 71 2 + 1 25 1 1 -1 -71 -1 + 1 25 25 25 -1 -71 6 + 1 25 97 97 1 71 6 + 25 97 71 +B + 7 + 1 25 1 31 1 1 2 + 1 25 31 97 1 1 2 + 1 25 1 97 71 71 4 + 1 1 -1 -97 1 71 -1 + 25 25 -1 -97 1 71 1 + 25 25 -1 -97 1 71 -1 + 1 1 -1 -97 1 71 3 + 1 25 1 1 -1 -71 -1 + 25 25 25 1 -1 -71 6 + 1 25 97 97 1 71 6 + 25 97 71 +C + 7 + 1 25 1 31 1 1 2 + 1 25 31 97 1 1 2 + 1 25 1 97 71 71 4 + 1 1 -1 -97 1 71 -1 + 25 25 -1 -97 1 71 2 + 25 25 -1 -97 1 71 -1 + 1 1 -1 -97 1 71 4 + 1 25 1 1 -1 -71 -1 + 25 25 25 1 -1 -71 5 + 1 25 97 97 1 71 6 + 25 97 71 +D + 7 + 1 25 1 31 1 1 2 + 1 25 31 97 1 1 2 + 1 25 1 97 71 71 4 + 1 1 -1 -97 1 71 -1 + 25 25 -1 -97 1 71 3 + 25 25 1 97 1 71 3 + 1 25 1 1 -1 -71 -1 + 25 1 1 1 -1 -71 5 + 1 25 97 97 1 71 6 + 25 25 71 +S + 6 + 1 25 1 25 1 1 2 + 1 25 1 25 71 71 4 + 1 1 1 25 1 71 3 + 25 25 25 1 -1 -71 -1 + 1 25 1 1 -1 -71 3 + 25 1 1 1 -1 -71 -1 + 1 25 1 1 -1 -71 4 + 1 25 25 25 -1 -71 -1 + 1 25 1 1 -1 -71 6 + 25 25 71 +T + 6 + 1 25 1 25 1 1 2 + 1 25 1 25 71 71 4 + 1 1 1 25 1 71 3 + 25 25 25 1 -1 -71 -1 + 1 25 1 1 -1 -71 2 + 1 25 1 1 -1 -71 -1 + 1 25 25 25 -1 -71 5 + 1 25 25 25 -1 -71 -1 + 1 25 1 1 -1 -71 1 diff --git a/ThreeD_M6_SST_Struct_MG2_4CPU/bin/cfd_para.hypara b/ThreeD_M6_SST_Struct_MG2_4CPU/bin/cfd_para.hypara new file mode 100644 index 00000000..449929dc --- /dev/null +++ b/ThreeD_M6_SST_Struct_MG2_4CPU/bin/cfd_para.hypara @@ -0,0 +1,809 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// 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, 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 = 0; +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 -- 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. +// 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. +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 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// .skl meaning skeleton. +string original_grid_info_file = "./grid/FLUENT_test.skl"; + +// 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. +// mixgrid_str_bc: path of structure grid boundary condition file 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. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Adaptive Mesh Refine ------------------------------- +// In this file, the original_grid_file is used of the partition part. +// If use it dependently, abstract it here. +string adapt_grid_file = "./grid/sphere_mixed_adapt1.fts"; +string geometryFileName = "./grid/jsm.igs"; + +// 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 geometryUnit = 1; +int anisoRefine = 0; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; // 0: NON case; 1: JSM-C2-NPOFF case; 2: CHNT. +int projectOrgPoint = 0; // if project original wall points. + +// ----------------- RBF Parameters ------------------------------------- +// symmetryPlane: Which symmetry plane is used in the mesh. +// 0 -- without symmetry. +// 1 -- plane of x=0. +// 2 -- plane of y=0. +// 3 -- plane of z=0. +int numberOfReferenceCP = 10; +double influenceRadius = 20; +int symmetryPlane = 3; // 1: plane of x=0; 2: plane of y=0; 3: plane of z=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. +int pgridtype = 0; +int maxproc = 4; + +// 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]; + +//----------------------------------------------------------------------- +# 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. +// 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: 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. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) + +int maxSimuStep = 20000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; +int ifLowSpeedPrecon = 0; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 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. +// 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. +// 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. +// 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. +// 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. + +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 10000.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)). + +//int inflowParaType = 3; +//int nsubsonicInlet = 1; +//int nsubsonicOutlet = 1; +//string inLetFileName = "./bin/subsonicInlet.hypara"; +//string outLetFileName = "./bin/subsonicOutlet.hypara"; +//double refDimensionalTemperature = 288.144; +//double refDimensionalPressure = 1.01313E05; + +double wallTemperature = -1.0; +int dump_Q = 0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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. + +// directionMethod: The method of determining direction. +// 1 -- using direciton. +// 2 -- using face normal. +// subsonicInletTotalPressure: The dimensional total pressure of subsonic inlet if height > 0, else non-dimensional. +// subsonicInletTotalTemperature: The dimensional total temperature of subsonic inlet if height > 0, else non-dimensional. +// direction_inlet: The direction of inlet. +// subsonicOutletTotalPressure: The dimensional total pressure of subsonic outlet if height > 0, else non-dimensional. +// subsonicOutletTotalTemperature: The dimensional total temperature of subsonic outlet if height > 0, else non-dimensional. +// direction_outlet: The direction of outlet. +int directionMethod = 2; +double subsonicInletTotalPressure = 1.2e6; +double subsonicInletTotalTemperature = 1300; +double direction_inlet[] = 1, 0, 0; + +double subsonicOutletTotalPressure = 17.8571428; +double subsonicOutletTotalTemperature = 1.0; +double direction_outlet[] = 1, 0, 0; + +//----------------------------------------------------------------------- +# 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". +// 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 inviscidSchemeName = "roe"; +string str_limiter_name = "vanalbada"; + +#******************************************************************* +# UnStruct Solver or Common * +#******************************************************************* +// viscousType : Viscous model. +// 0 -- Euler. +// 1 -- Lamilar. +// 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", "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. +// 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. + +//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 limit_angle = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 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 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. +// 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. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// iale: 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; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int startStatisticStep = 800000; + +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; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; + +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 timemax = 1.0e10; +double dtsave = -1.0; +int iale = 0; +int ialetype = 2; +int maxale = 10; +double dtau = 0.001; +double dtau_max = 1E-01; + +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! +// isPlotVolumeField: 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. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; + +int walldistMethod = 1; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "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 isPlotVolumeField = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. + +int visualfileType = 1; + +// 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 lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [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), vibration temperature(33), electron temperature(34), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44). +// 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]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +//----------------------------------------------------------------------- +# Turbulence Parameter # +//----------------------------------------------------------------------- +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// 1 -- Edwards. +// 2 -- new. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. + +int turbInterval = 1; +int turb_vis_kind = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double turb_relax = 1.0; +double turb_min_coef = 1.0e-1; +double freeStreamViscosity = 1.0e-3; +double muoo = 1.0e-1; +double kwoo = 1.0; + +# maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +double sdilim = 1.0e20; +double coef_kvist = 1.0; +int monitor_vistmax = 0; + +//----------------------------------------------------------------------- +# Other Parameter # +//----------------------------------------------------------------------- +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- NS. +// 1 -- MHD. +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int dg_high_order = 0; +int iapplication = 0; +int nm = 5; + +// MHD +double bxoo = 0.0; +double byoo = 0.0; +double bzoo = 0.0; + +double refGama = 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 = 1; +int nchemrad = 1; +int ntmodel = 1; +int nChemicalFlowStep = 0; +double catalyticCoef = 0.0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.77"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.77, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.77, 0.0"; + +int ifStartFromPerfectGasResults = 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 # +######################################################################### +// ifvfd: +// 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 ifvfd = 0; +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"; + +// ----------------- 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; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 2.329418E08; +//@double refDimensionalTemperature = 288.144; +//@double refDimensionalPressure = 1.01313E05; +//@double height = -0.001; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; diff --git a/ThreeD_M6_SST_Struct_MG2_4CPU/bin/cfd_para_transonic.hypara b/ThreeD_M6_SST_Struct_MG2_4CPU/bin/cfd_para_transonic.hypara new file mode 100644 index 00000000..49572a6b --- /dev/null +++ b/ThreeD_M6_SST_Struct_MG2_4CPU/bin/cfd_para_transonic.hypara @@ -0,0 +1,205 @@ +######################################################################### +# General Control Parameter # +######################################################################### +// maxSimuStep: The max simulation step, don't care simulation is restart or not. +// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved. +// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual 'res.dat' saved. + +int maxSimuStep = 10000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; + +######################################################################### +# 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.8395; +double attackd = 3.06; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 1.171e7; +double refDimensionalTemperature = 288; + +//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)). + +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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 = 2; +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.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 iunsteady = 0; + +double CFLEnd = 10.0; + +int nLUSGSSweeps = 1; + +######################################################################### +# 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 = 2; +int flowInitStep = 100; + +######################################################################### +# File In or Out # +######################################################################### +// gridfile: The partitioned Grid file path, using relative path, +// which is relative to the working directory. +// IMPORTANT WARNING: The file index should be ignored, +// e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts, +// Please use 'rae2822_hybrid2d__4.fts' here! +// isPlotVolumeField: If dump out the whole field results to tecplot or not, 0 / 1. + +string gridfile = "./grid/m6_str__4.fts"; +int isPlotVolumeField = 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; + +double MUSCLCoefXk = 0.333333; diff --git a/ThreeD_M6_SST_Struct_MG2_4CPU/bin/grid_para.hypara b/ThreeD_M6_SST_Struct_MG2_4CPU/bin/grid_para.hypara new file mode 100644 index 00000000..ec679505 --- /dev/null +++ b/ThreeD_M6_SST_Struct_MG2_4CPU/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 -- 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 = 1; +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_str.cgns"; +string out_gfile = "./grid/m6_str.fts"; diff --git a/ThreeD_M6_SST_Struct_MG2_4CPU/bin/key.hypara b/ThreeD_M6_SST_Struct_MG2_4CPU/bin/key.hypara new file mode 100644 index 00000000..65b2042c --- /dev/null +++ b/ThreeD_M6_SST_Struct_MG2_4CPU/bin/key.hypara @@ -0,0 +1,45 @@ +string title = "PHengLEI Main Parameter Control File"; + +// IMPORTANT NOTICE: DON NOT MODIFY THE FOWLLOWING LINE. +string defaultParaFile = "./bin/cfd_para.hypara"; + +// ndim: Dimensional of the grid, 2 or 3. +// nparafile: the number of parameter files. +// nsimutask: simulation task type. +// 0 -- CFD Solver of NS or Turbulation. +// 1 -- Grid generation: for special typical cases, such as cylinder, flat plate, etc. +// Grid conversion: from other format to PHengLEI format (.fts). +// Grid reconstruction: such as grid adaptation. +// Grid merging: merge two blocks into one block. +// Grid repairing: repair the original grid in order to remove the negative volume cells. +// 2 -- Wall distance computation for turb-solver. +// 3 -- Grid partition. +// 4 -- Knowledge repository / examples of PHengLEI-API. +int ndim = 3; +int nparafile = 1; + +int nsimutask = 0; +string parafilename = "./bin/cfd_para_transonic.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/ThreeD_M6_SST_Struct_MG2_4CPU/bin/partition.hypara b/ThreeD_M6_SST_Struct_MG2_4CPU/bin/partition.hypara new file mode 100644 index 00000000..daef16f9 --- /dev/null +++ b/ThreeD_M6_SST_Struct_MG2_4CPU/bin/partition.hypara @@ -0,0 +1,21 @@ +// pgridtype: The grid type. +// 0 -- unstruct grid. +// 1 -- struct grid. +// maxproc: The number of partition zones that want to be divided into, +// which is equal to the number of CPU processors you want. +// Usually, 50~100 thousands structured cells per CPU-Core is suggested. +// 30~70 thousands unstructured cells per CPU-Core is suggested. +// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts). +// partition_grid_file: Target partition grid file(PHengLEI type, *.fts). + +int pgridtype = 1; +int maxproc = 4; + +string original_grid_file = "./grid/m6_str.fts"; +string partition_grid_file = "./grid/m6_str__4.fts"; + +// numberOfMultigrid: Number of multi-grid levels, ONLY used for structured grid. +// 1 -- single level. +// 2 -- 2 level. +// N -- N level,..., et al. +int numberOfMultigrid = 2; \ No newline at end of file diff --git a/ThreeD_M6_SST_Struct_MG2_4CPU/grid/m6_str.cgns b/ThreeD_M6_SST_Struct_MG2_4CPU/grid/m6_str.cgns new file mode 100644 index 00000000..d541ea0b Binary files /dev/null and b/ThreeD_M6_SST_Struct_MG2_4CPU/grid/m6_str.cgns differ diff --git a/ThreeD_NACA0012_SA_Struct/bin/cfd_para.hypara b/ThreeD_NACA0012_SA_Struct/bin/cfd_para.hypara new file mode 100644 index 00000000..232e075f --- /dev/null +++ b/ThreeD_NACA0012_SA_Struct/bin/cfd_para.hypara @@ -0,0 +1,809 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// 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, 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 = 0; +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 -- 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. +// 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. +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 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// .skl meaning skeleton. +string original_grid_info_file = "./grid/FLUENT_test.skl"; + +// 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. +// mixgrid_str_bc: path of structure grid boundary condition file 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. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Adaptive Mesh Refine ------------------------------- +// In this file, the original_grid_file is used of the partition part. +// If use it dependently, abstract it here. +string adapt_grid_file = "./grid/sphere_mixed_adapt1.fts"; +string geometryFileName = "./grid/jsm.igs"; + +// 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 geometryUnit = 1; +int anisoRefine = 0; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; // 0: NON case; 1: JSM-C2-NPOFF case; 2: CHNT. +int projectOrgPoint = 0; // if project original wall points. + +// ----------------- RBF Parameters ------------------------------------- +// symmetryPlane: Which symmetry plane is used in the mesh. +// 0 -- without symmetry. +// 1 -- plane of x=0. +// 2 -- plane of y=0. +// 3 -- plane of z=0. +int numberOfReferenceCP = 10; +double influenceRadius = 20; +int symmetryPlane = 3; // 1: plane of x=0; 2: plane of y=0; 3: plane of z=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. +int pgridtype = 0; +int maxproc = 4; + +// 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]; + +//----------------------------------------------------------------------- +# 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. +// 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: 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. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) + +int maxSimuStep = 20000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; +int ifLowSpeedPrecon = 0; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 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. +// 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. +// 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. +// 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. +// 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. + +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 10000.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)). + +//int inflowParaType = 3; +//int nsubsonicInlet = 1; +//int nsubsonicOutlet = 1; +//string inLetFileName = "./bin/subsonicInlet.hypara"; +//string outLetFileName = "./bin/subsonicOutlet.hypara"; +//double refDimensionalTemperature = 288.144; +//double refDimensionalPressure = 1.01313E05; + +double wallTemperature = -1.0; +int dump_Q = 0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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. + +// directionMethod: The method of determining direction. +// 1 -- using direciton. +// 2 -- using face normal. +// subsonicInletTotalPressure: The dimensional total pressure of subsonic inlet if height > 0, else non-dimensional. +// subsonicInletTotalTemperature: The dimensional total temperature of subsonic inlet if height > 0, else non-dimensional. +// direction_inlet: The direction of inlet. +// subsonicOutletTotalPressure: The dimensional total pressure of subsonic outlet if height > 0, else non-dimensional. +// subsonicOutletTotalTemperature: The dimensional total temperature of subsonic outlet if height > 0, else non-dimensional. +// direction_outlet: The direction of outlet. +int directionMethod = 2; +double subsonicInletTotalPressure = 1.2e6; +double subsonicInletTotalTemperature = 1300; +double direction_inlet[] = 1, 0, 0; + +double subsonicOutletTotalPressure = 17.8571428; +double subsonicOutletTotalTemperature = 1.0; +double direction_outlet[] = 1, 0, 0; + +//----------------------------------------------------------------------- +# 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". +// 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 inviscidSchemeName = "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. +// 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", "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. +// 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. + +//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 limit_angle = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 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 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. +// 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. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// iale: 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; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int startStatisticStep = 800000; + +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; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; + +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 timemax = 1.0e10; +double dtsave = -1.0; +int iale = 0; +int ialetype = 2; +int maxale = 10; +double dtau = 0.001; +double dtau_max = 1E-01; + +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! +// isPlotVolumeField: 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. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; + +int walldistMethod = 1; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "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 isPlotVolumeField = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. + +int visualfileType = 1; + +// 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 lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [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), vibration temperature(33), electron temperature(34), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44). +// 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]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +//----------------------------------------------------------------------- +# Turbulence Parameter # +//----------------------------------------------------------------------- +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// 1 -- Edwards. +// 2 -- new. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. + +int turbInterval = 1; +int turb_vis_kind = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double turb_relax = 1.0; +double turb_min_coef = 1.0e-1; +double freeStreamViscosity = 1.0e-3; +double muoo = 1.0e-1; +double kwoo = 1.0; + +# maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +double sdilim = 1.0e20; +double coef_kvist = 1.0; +int monitor_vistmax = 0; + +//----------------------------------------------------------------------- +# Other Parameter # +//----------------------------------------------------------------------- +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- NS. +// 1 -- MHD. +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int dg_high_order = 0; +int iapplication = 0; +int nm = 5; + +// MHD +double bxoo = 0.0; +double byoo = 0.0; +double bzoo = 0.0; + +double refGama = 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 = 1; +int nchemrad = 1; +int ntmodel = 1; +int nChemicalFlowStep = 0; +double catalyticCoef = 0.0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.77"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.77, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.77, 0.0"; + +int ifStartFromPerfectGasResults = 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 # +######################################################################### +// ifvfd: +// 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 ifvfd = 0; +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"; + +// ----------------- 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; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 2.329418E08; +//@double refDimensionalTemperature = 288.144; +//@double refDimensionalPressure = 1.01313E05; +//@double height = -0.001; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; diff --git a/ThreeD_NACA0012_SA_Struct/bin/cfd_para_transonic.hypara b/ThreeD_NACA0012_SA_Struct/bin/cfd_para_transonic.hypara new file mode 100644 index 00000000..9991be54 --- /dev/null +++ b/ThreeD_NACA0012_SA_Struct/bin/cfd_para_transonic.hypara @@ -0,0 +1,197 @@ +######################################################################### +# 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 = 50000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; + +######################################################################### +# Inflow Parameter # +######################################################################### +// refMachNumber: Mach number per meter. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// 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. +// inflowParaType: the type of inflow parameters. +// 0 - the nondimensional conditions. +// 1 - the flight conditions. +// 2 - the experiment conditions. +// height: Fly height, unit of km. +// gridScaleFactor: The customizable unit of the grid, default value 1.0 metre. +// forceRefenenceLength, forceRefenenceArea: Reference length and area, independent to grid scale. +// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent to grid scale. + +double refMachNumber = 0.799; +double attackd = 2.26; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 9.0e6; +double refDimensionalTemperature = 288.15; + +//int inflowParaType = 1; +//double height = 0.001; + +//int inflowParaType = 2; +//double refDimensionalTemperature = 6051.024; //the total temperature, T*(1+(gama0-1)*M*M/2). +//double refDimensionalPressure = 4.299696E09; //the total pressure, p*(T0/T)^(gama0/(gama0-1)). + +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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 iviscous = 0; +//string viscousName = "Euler"; + +//int iviscous = 1; +//string viscousName = "laminar"; + +int viscousType = 3; +string viscousName = "1eq-sa"; + +//int iviscous = 4; +//string viscousName = "2eq-kw-menter-sst"; + +int DESType = 0; + +int roeEntropyFixMethod = 2; +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.0; + +######################################################################### +# Temporal Discretisation # +######################################################################### +// iunsteady: Steady or unsteady. +// 0 - steady +// 1 - unsteay +// CFLEnd: The CFL number, [0.1, 100] +// The bigger the value, the convergence faster but lower robustness. +// nLUSGSSweeps: Number of Sub-iteration of LU-SGS. +// 1 : is recommended for structured solver. +// 1-3: is recommended for unstructured solver. + +int iunsteady = 0; + +double CFLEnd = 30.0; + +int nLUSGSSweeps = 1; + +######################################################################### +# Multi-Grid parameters # +######################################################################### +// nMGLevel: The number of Multi-Grid level +// = 1 : Single level. +// > 1 : multi-level. +// flowInitStep: Flow initialization step, 0~500 is suggested. +// Multi-Grid : Number of steps computing on coarse grid, during flow initialization. +// Single-Grid: Number of steps computing using first-order with vanleer, during flow initialization. + +int nMGLevel = 1; +int flowInitStep = 100; + + +######################################################################### +# File In or Out # +######################################################################### +// gridfile: The partitioned Grid file path, using relative path, +// which is relative to the working directory. +// IMPORTANT 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! +// isPlotVolumeField: If dump out the whole field results to tecplot or not, 0/1. + +string gridfile = "./grid/NACA0012__4.fts"; +int isPlotVolumeField = 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[] = [0, 1, 2, 3, 4, 5, 6, 15]; + +// limitVariables: limit model. +// 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/ThreeD_NACA0012_SA_Struct/bin/grid_para.hypara b/ThreeD_NACA0012_SA_Struct/bin/grid_para.hypara new file mode 100644 index 00000000..dbb5aa65 --- /dev/null +++ b/ThreeD_NACA0012_SA_Struct/bin/grid_para.hypara @@ -0,0 +1,34 @@ +######################################################################### +# 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 = 1; +int axisup = 1; +int from_gtype = 3; + +######################################################################### +# File path # +######################################################################### +// from_gfile: path of original data file for unstructure grid convert from. +// out_gfile: path of target file for grid convert to, *.fts type of file usually. +string from_gfile = "./grid/NACA0012.grd"; +string out_gfile = "./grid/NACA0012.fts"; + + + + diff --git a/ThreeD_NACA0012_SA_Struct/bin/key.hypara b/ThreeD_NACA0012_SA_Struct/bin/key.hypara new file mode 100644 index 00000000..5f649fdf --- /dev/null +++ b/ThreeD_NACA0012_SA_Struct/bin/key.hypara @@ -0,0 +1,51 @@ +string title = "PHengLEI Main Parameter Control File"; + +// IMPORTANT NOTICEDON NOT MODIFY THE FOWLLOWING LINE +string defaultParaFile = "./bin/cfd_para.hypara"; + +// ndim: Dimensional of the grid: 2 or 3. +// nparafile: the number of the parameter file. +// nsimutask: simulation task type. +// 0 -- CFD Solver of NS or Turbulation. +// 1 -- Grid generation: for special typical cases, such as cylinder, flat plate, etc. +// Grid conversion: from other format to HyperFLOW format (.fts). +// Grid reconstruction: such as grid adaptation. +// Grid merging: merge two blocks into one block. +// Grid repairing: repair the original grid in order to remove the negative volume cells. +// 2 -- Wall distance computation for turb-solver. +// 3 -- Grid partition. +// 4 -- Knowledge repository / examples of PHengLEI-API. +int ndim = 3; +int nparafile = 1; + +int nsimutask = 0; +string parafilename = "./bin/cfd_para_transonic.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/ThreeD_NACA0012_SA_Struct/bin/partition.hypara b/ThreeD_NACA0012_SA_Struct/bin/partition.hypara new file mode 100644 index 00000000..d8ca02d0 --- /dev/null +++ b/ThreeD_NACA0012_SA_Struct/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 = 1; +int maxproc = 4; + +string original_grid_file = "./grid/NACA0012.fts"; +string partition_grid_file = "./grid/NACA0012__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/ThreeD_NACA0012_SA_Struct/grid/NACA0012.grd b/ThreeD_NACA0012_SA_Struct/grid/NACA0012.grd new file mode 100644 index 00000000..4f29d935 Binary files /dev/null and b/ThreeD_NACA0012_SA_Struct/grid/NACA0012.grd differ diff --git a/ThreeD_NACA0012_SA_Struct/grid/NACA0012.inp b/ThreeD_NACA0012_SA_Struct/grid/NACA0012.inp new file mode 100644 index 00000000..4412d182 --- /dev/null +++ b/ThreeD_NACA0012_SA_Struct/grid/NACA0012.inp @@ -0,0 +1,15 @@ + 1 + 1 + 353 166 3 +A + 8 + 1 353 1 166 1 1 3 + 1 353 1 166 3 3 3 + 1 1 1 166 1 3 6 + 353 353 1 166 1 3 6 + 81 1 1 1 -1 -3 -1 + 273 353 1 1 -1 -3 1 + 81 273 1 1 1 3 2 + 273 353 1 1 -1 -3 -1 + 81 1 1 1 -1 -3 1 + 1 353 166 166 1 3 5 diff --git a/ThreeD_Sphere_Laminar_Ma10_Struct/bin/cfd_para.hypara b/ThreeD_Sphere_Laminar_Ma10_Struct/bin/cfd_para.hypara new file mode 100644 index 00000000..232e075f --- /dev/null +++ b/ThreeD_Sphere_Laminar_Ma10_Struct/bin/cfd_para.hypara @@ -0,0 +1,809 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// 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, 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 = 0; +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 -- 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. +// 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. +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 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// .skl meaning skeleton. +string original_grid_info_file = "./grid/FLUENT_test.skl"; + +// 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. +// mixgrid_str_bc: path of structure grid boundary condition file 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. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Adaptive Mesh Refine ------------------------------- +// In this file, the original_grid_file is used of the partition part. +// If use it dependently, abstract it here. +string adapt_grid_file = "./grid/sphere_mixed_adapt1.fts"; +string geometryFileName = "./grid/jsm.igs"; + +// 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 geometryUnit = 1; +int anisoRefine = 0; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; // 0: NON case; 1: JSM-C2-NPOFF case; 2: CHNT. +int projectOrgPoint = 0; // if project original wall points. + +// ----------------- RBF Parameters ------------------------------------- +// symmetryPlane: Which symmetry plane is used in the mesh. +// 0 -- without symmetry. +// 1 -- plane of x=0. +// 2 -- plane of y=0. +// 3 -- plane of z=0. +int numberOfReferenceCP = 10; +double influenceRadius = 20; +int symmetryPlane = 3; // 1: plane of x=0; 2: plane of y=0; 3: plane of z=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. +int pgridtype = 0; +int maxproc = 4; + +// 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]; + +//----------------------------------------------------------------------- +# 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. +// 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: 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. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) + +int maxSimuStep = 20000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; +int ifLowSpeedPrecon = 0; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 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. +// 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. +// 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. +// 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. +// 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. + +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 10000.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)). + +//int inflowParaType = 3; +//int nsubsonicInlet = 1; +//int nsubsonicOutlet = 1; +//string inLetFileName = "./bin/subsonicInlet.hypara"; +//string outLetFileName = "./bin/subsonicOutlet.hypara"; +//double refDimensionalTemperature = 288.144; +//double refDimensionalPressure = 1.01313E05; + +double wallTemperature = -1.0; +int dump_Q = 0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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. + +// directionMethod: The method of determining direction. +// 1 -- using direciton. +// 2 -- using face normal. +// subsonicInletTotalPressure: The dimensional total pressure of subsonic inlet if height > 0, else non-dimensional. +// subsonicInletTotalTemperature: The dimensional total temperature of subsonic inlet if height > 0, else non-dimensional. +// direction_inlet: The direction of inlet. +// subsonicOutletTotalPressure: The dimensional total pressure of subsonic outlet if height > 0, else non-dimensional. +// subsonicOutletTotalTemperature: The dimensional total temperature of subsonic outlet if height > 0, else non-dimensional. +// direction_outlet: The direction of outlet. +int directionMethod = 2; +double subsonicInletTotalPressure = 1.2e6; +double subsonicInletTotalTemperature = 1300; +double direction_inlet[] = 1, 0, 0; + +double subsonicOutletTotalPressure = 17.8571428; +double subsonicOutletTotalTemperature = 1.0; +double direction_outlet[] = 1, 0, 0; + +//----------------------------------------------------------------------- +# 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". +// 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 inviscidSchemeName = "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. +// 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", "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. +// 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. + +//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 limit_angle = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 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 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. +// 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. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// iale: 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; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int startStatisticStep = 800000; + +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; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; + +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 timemax = 1.0e10; +double dtsave = -1.0; +int iale = 0; +int ialetype = 2; +int maxale = 10; +double dtau = 0.001; +double dtau_max = 1E-01; + +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! +// isPlotVolumeField: 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. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; + +int walldistMethod = 1; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "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 isPlotVolumeField = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. + +int visualfileType = 1; + +// 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 lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [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), vibration temperature(33), electron temperature(34), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44). +// 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]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +//----------------------------------------------------------------------- +# Turbulence Parameter # +//----------------------------------------------------------------------- +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// 1 -- Edwards. +// 2 -- new. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. + +int turbInterval = 1; +int turb_vis_kind = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double turb_relax = 1.0; +double turb_min_coef = 1.0e-1; +double freeStreamViscosity = 1.0e-3; +double muoo = 1.0e-1; +double kwoo = 1.0; + +# maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +double sdilim = 1.0e20; +double coef_kvist = 1.0; +int monitor_vistmax = 0; + +//----------------------------------------------------------------------- +# Other Parameter # +//----------------------------------------------------------------------- +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- NS. +// 1 -- MHD. +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int dg_high_order = 0; +int iapplication = 0; +int nm = 5; + +// MHD +double bxoo = 0.0; +double byoo = 0.0; +double bzoo = 0.0; + +double refGama = 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 = 1; +int nchemrad = 1; +int ntmodel = 1; +int nChemicalFlowStep = 0; +double catalyticCoef = 0.0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.77"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.77, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.77, 0.0"; + +int ifStartFromPerfectGasResults = 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 # +######################################################################### +// ifvfd: +// 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 ifvfd = 0; +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"; + +// ----------------- 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; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 2.329418E08; +//@double refDimensionalTemperature = 288.144; +//@double refDimensionalPressure = 1.01313E05; +//@double height = -0.001; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; diff --git a/ThreeD_Sphere_Laminar_Ma10_Struct/bin/cfd_para_hypersonic.hypara b/ThreeD_Sphere_Laminar_Ma10_Struct/bin/cfd_para_hypersonic.hypara new file mode 100644 index 00000000..e768efbe --- /dev/null +++ b/ThreeD_Sphere_Laminar_Ma10_Struct/bin/cfd_para_hypersonic.hypara @@ -0,0 +1,191 @@ +######################################################################### +# 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 = 25000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; + +######################################################################### +# Inflow Parameter # +######################################################################### +// refMachNumber: Mach number per meter. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// 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. +// inflowParaType: the type of inflow parameters. +// 0 - the nondimensional conditions. +// 1 - the flight conditions. +// 2 - the experiment conditions. +// height: Fly height, unit of km. +// wallTemperature: 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. +// gridScaleFactor: The customizable unit of the grid, default value 1.0 metre. +// forceRefenenceLength, forceRefenenceArea: Reference length and area, independent to grid scale. +// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent to grid scale. + +double refMachNumber = 10.00; +double attackd = 0.00; +double angleSlide = 0.00; + +double wallTemperature = 294.0 ; +int dump_Q = 2; + +int inflowParaType = 0; +double refReNumber = 1.0e5; +double refDimensionalTemperature = 79.0; + +//int inflowParaType = 1; +//double height = 0.001; + +//int inflowParaType = 2; +//double refDimensionalTemperature = 6051.024; //the total temperature, T*(1+(gama0-1)*M*M/2). +//double refDimensionalPressure = 4.299696E09; //the total pressure, p*(T0/T)^(gama0/(gama0-1)). + +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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 iviscous = 0; +//string viscousName = "Euler"; + +int viscousType = 1; +string viscousName = "laminar"; + +//int iviscous = 3; +//string viscousName = "1eq-sa"; + +//int iviscous = 4; +//string viscousName = "2eq-kw-menter-sst"; + +int DESType = 0; + +int roeEntropyFixMethod = 2; +double roeEntropyScale = 0.0001; +######################################################################### +# Spatial Discretisation # +######################################################################### +#******************************************************************* +# Struct Solver * +#******************************************************************* +// inviscidSchemeName: Spatial discretisation scheme of struct grid +// Using this when solve structered grid or hybrid. +// - "vanleer", "steger", "ausmpw" +// str_limiter_name: Limiter of struct grid +// - "minmod", "3rd_minmod_smooth" + +string inviscidSchemeName = "steger"; +string str_limiter_name = "minmod"; + +#******************************************************************* +# 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 = "vanleer"; +string uns_limiter_name = "vencat"; +double venkatCoeff = 0.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. +// ktmax: The lower the value, the more robustness, 1.0e5 ~ 1.0e10. + +int iunsteady = 0; + +double CFLEnd = 10.0; +int CFLVaryStep = 100; +double ktmax = 1.0e10; + + +######################################################################### +# 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! +// isPlotVolumeField: If dump out the whole field results to tecplot or not, 0/1. + +string gridfile = "./grid/3dball.fts"; +int isPlotVolumeField = 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[] = [0, 1, 2, 3, 4, 5, 6, 15]; + +// limitVariables: limit model. +// 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 = 0; +int limitVariables = 0; +int limitVector = 1; diff --git a/ThreeD_Sphere_Laminar_Ma10_Struct/bin/grid_para.hypara b/ThreeD_Sphere_Laminar_Ma10_Struct/bin/grid_para.hypara new file mode 100644 index 00000000..447d0613 --- /dev/null +++ b/ThreeD_Sphere_Laminar_Ma10_Struct/bin/grid_para.hypara @@ -0,0 +1,34 @@ +######################################################################### +# 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 = 1; +int axisup = 1; +int from_gtype = 3; + +######################################################################### +# 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/3dball.grd"; +string out_gfile = "./grid/3dball.fts"; + + + + diff --git a/ThreeD_Sphere_Laminar_Ma10_Struct/bin/key.hypara b/ThreeD_Sphere_Laminar_Ma10_Struct/bin/key.hypara new file mode 100644 index 00000000..30494487 --- /dev/null +++ b/ThreeD_Sphere_Laminar_Ma10_Struct/bin/key.hypara @@ -0,0 +1,42 @@ +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_hypersonic.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/ThreeD_Sphere_Laminar_Ma10_Struct/bin/partition.hypara b/ThreeD_Sphere_Laminar_Ma10_Struct/bin/partition.hypara new file mode 100644 index 00000000..2b858c0d --- /dev/null +++ b/ThreeD_Sphere_Laminar_Ma10_Struct/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 = 1; +int maxproc = 1; + +string original_grid_file = "./grid/3dball.fts"; +string partition_grid_file = "./grid/3dball.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/ThreeD_Sphere_Laminar_Ma10_Struct/grid/3dball.grd b/ThreeD_Sphere_Laminar_Ma10_Struct/grid/3dball.grd new file mode 100644 index 00000000..7da0c531 Binary files /dev/null and b/ThreeD_Sphere_Laminar_Ma10_Struct/grid/3dball.grd differ diff --git a/ThreeD_Sphere_Laminar_Ma10_Struct/grid/3dball.inp b/ThreeD_Sphere_Laminar_Ma10_Struct/grid/3dball.inp new file mode 100644 index 00000000..4ebca514 --- /dev/null +++ b/ThreeD_Sphere_Laminar_Ma10_Struct/grid/3dball.inp @@ -0,0 +1,11 @@ + 1 + 1 + 61 81 19 +A + 6 + 1 61 1 81 1 1 3 + 1 61 1 81 19 19 3 + 1 1 1 81 19 1 73 + 61 61 1 81 19 1 6 + 1 61 1 1 19 1 2 + 1 61 81 81 19 1 5 diff --git a/TwoD_30p30n_SST_Struct/bin/cfd_para.hypara b/TwoD_30p30n_SST_Struct/bin/cfd_para.hypara new file mode 100644 index 00000000..232e075f --- /dev/null +++ b/TwoD_30p30n_SST_Struct/bin/cfd_para.hypara @@ -0,0 +1,809 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// 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, 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 = 0; +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 -- 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. +// 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. +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 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// .skl meaning skeleton. +string original_grid_info_file = "./grid/FLUENT_test.skl"; + +// 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. +// mixgrid_str_bc: path of structure grid boundary condition file 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. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Adaptive Mesh Refine ------------------------------- +// In this file, the original_grid_file is used of the partition part. +// If use it dependently, abstract it here. +string adapt_grid_file = "./grid/sphere_mixed_adapt1.fts"; +string geometryFileName = "./grid/jsm.igs"; + +// 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 geometryUnit = 1; +int anisoRefine = 0; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; // 0: NON case; 1: JSM-C2-NPOFF case; 2: CHNT. +int projectOrgPoint = 0; // if project original wall points. + +// ----------------- RBF Parameters ------------------------------------- +// symmetryPlane: Which symmetry plane is used in the mesh. +// 0 -- without symmetry. +// 1 -- plane of x=0. +// 2 -- plane of y=0. +// 3 -- plane of z=0. +int numberOfReferenceCP = 10; +double influenceRadius = 20; +int symmetryPlane = 3; // 1: plane of x=0; 2: plane of y=0; 3: plane of z=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. +int pgridtype = 0; +int maxproc = 4; + +// 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]; + +//----------------------------------------------------------------------- +# 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. +// 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: 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. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) + +int maxSimuStep = 20000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; +int ifLowSpeedPrecon = 0; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 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. +// 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. +// 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. +// 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. +// 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. + +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 10000.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)). + +//int inflowParaType = 3; +//int nsubsonicInlet = 1; +//int nsubsonicOutlet = 1; +//string inLetFileName = "./bin/subsonicInlet.hypara"; +//string outLetFileName = "./bin/subsonicOutlet.hypara"; +//double refDimensionalTemperature = 288.144; +//double refDimensionalPressure = 1.01313E05; + +double wallTemperature = -1.0; +int dump_Q = 0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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. + +// directionMethod: The method of determining direction. +// 1 -- using direciton. +// 2 -- using face normal. +// subsonicInletTotalPressure: The dimensional total pressure of subsonic inlet if height > 0, else non-dimensional. +// subsonicInletTotalTemperature: The dimensional total temperature of subsonic inlet if height > 0, else non-dimensional. +// direction_inlet: The direction of inlet. +// subsonicOutletTotalPressure: The dimensional total pressure of subsonic outlet if height > 0, else non-dimensional. +// subsonicOutletTotalTemperature: The dimensional total temperature of subsonic outlet if height > 0, else non-dimensional. +// direction_outlet: The direction of outlet. +int directionMethod = 2; +double subsonicInletTotalPressure = 1.2e6; +double subsonicInletTotalTemperature = 1300; +double direction_inlet[] = 1, 0, 0; + +double subsonicOutletTotalPressure = 17.8571428; +double subsonicOutletTotalTemperature = 1.0; +double direction_outlet[] = 1, 0, 0; + +//----------------------------------------------------------------------- +# 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". +// 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 inviscidSchemeName = "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. +// 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", "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. +// 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. + +//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 limit_angle = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 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 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. +// 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. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// iale: 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; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int startStatisticStep = 800000; + +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; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; + +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 timemax = 1.0e10; +double dtsave = -1.0; +int iale = 0; +int ialetype = 2; +int maxale = 10; +double dtau = 0.001; +double dtau_max = 1E-01; + +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! +// isPlotVolumeField: 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. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; + +int walldistMethod = 1; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "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 isPlotVolumeField = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. + +int visualfileType = 1; + +// 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 lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [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), vibration temperature(33), electron temperature(34), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44). +// 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]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +//----------------------------------------------------------------------- +# Turbulence Parameter # +//----------------------------------------------------------------------- +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// 1 -- Edwards. +// 2 -- new. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. + +int turbInterval = 1; +int turb_vis_kind = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double turb_relax = 1.0; +double turb_min_coef = 1.0e-1; +double freeStreamViscosity = 1.0e-3; +double muoo = 1.0e-1; +double kwoo = 1.0; + +# maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +double sdilim = 1.0e20; +double coef_kvist = 1.0; +int monitor_vistmax = 0; + +//----------------------------------------------------------------------- +# Other Parameter # +//----------------------------------------------------------------------- +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- NS. +// 1 -- MHD. +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int dg_high_order = 0; +int iapplication = 0; +int nm = 5; + +// MHD +double bxoo = 0.0; +double byoo = 0.0; +double bzoo = 0.0; + +double refGama = 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 = 1; +int nchemrad = 1; +int ntmodel = 1; +int nChemicalFlowStep = 0; +double catalyticCoef = 0.0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.77"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.77, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.77, 0.0"; + +int ifStartFromPerfectGasResults = 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 # +######################################################################### +// ifvfd: +// 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 ifvfd = 0; +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"; + +// ----------------- 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; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 2.329418E08; +//@double refDimensionalTemperature = 288.144; +//@double refDimensionalPressure = 1.01313E05; +//@double height = -0.001; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; diff --git a/TwoD_30p30n_SST_Struct/bin/cfd_para_subsonic.hypara b/TwoD_30p30n_SST_Struct/bin/cfd_para_subsonic.hypara new file mode 100644 index 00000000..ff71241d --- /dev/null +++ b/TwoD_30p30n_SST_Struct/bin/cfd_para_subsonic.hypara @@ -0,0 +1,189 @@ +######################################################################### +# 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 = 50000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; + + +// ifLowSpeedPrecon: precondition to accelerate convergence for low speed flow. +// ONLY available for unstructured solver! +// 0 -- no precondition process (default, mach > 0.2). +// 1 -- carry out precondition process ( mach number < 0.2 ). +int ifLowSpeedPrecon = 0; + +######################################################################### +# Inflow Parameter # +######################################################################### +// refMachNumber: Mach number per meter. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// 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. +// inflowParaType: the type of inflow parameters. +// 0 - the nondimensional conditions. +// 1 - the flight conditions. +// height: Fly height, unit of km. +// gridScaleFactor: The customizable unit of the grid, default value 1.0 metre. +// forceRefenenceLength, forceRefenenceArea: Reference length and area, independent to grid scale. +// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent to grid scale. + +double refMachNumber = 0.2; +double attackd = 19.0; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 9.0e6; +double refDimensionalTemperature = 288.0; + +//int inflowParaType = 1; +//double height = 0.001; + +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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 iviscous = 0; +//string viscousName = "Euler"; + +//int iviscous = 1; +//string viscousName = "laminar"; + +//int iviscous = 3; +//string viscousName = "1eq-sa"; + +int viscousType = 4; +string viscousName = "2eq-kw-menter-sst"; + +int DESType = 0; + +int roeEntropyFixMethod = 2; +double roeEntropyScale = 1.0; +######################################################################### +# Spatial Discretisation # +######################################################################### +#******************************************************************* +# Struct Solver * +#******************************************************************* +// str_limiter_name: Limiter of struct grid +// - "3rdsmooth", "smooth" +// - "nolim" - no limiter + +string str_limiter_name = "smooth"; + +#******************************************************************* +# UnStruct Solver * +#******************************************************************* +// uns_limiter_name: Limiter of Unstruct grid +// - "vencat" +// - "1st", meaning accuracy of first-order. +// - "nolim", no limiter. +// venkatCoeff: Coefficient of vencat limiter, when uns_limiter_name = 'vencat' +// The smaller the value, the more robust it is. + +string uns_limiter_name = "vencat"; +double venkatCoeff = 50.0; + +######################################################################### +# Temporal Discretisation # +######################################################################### +// iunsteady: Steady or unsteady. +// 0 - steady +// 1 - unsteay +// CFLEnd: The CFL number, [0.1, 100] +// The bigger the value, the convergence faster but lower robustness. +// nLUSGSSweeps: Number of Sub-iteration of LU-SGS. +// 1 : is recommended for structured solver. +// 1-3: is recommended for unstructured solver. + +int iunsteady = 0; + +double CFLEnd = 10.0; + +int nLUSGSSweeps = 1; + +######################################################################### +# Multi-Grid parameters # +######################################################################### +// nMGLevel: The number of Multi-Grid level +// = 1 : Single level. +// > 1 : multi-level. +// flowInitStep: Flow initialization step, 0~500 is suggested. +// Multi-Grid : Number of steps computing on coarse grid, during flow initialization. +// Single-Grid: Number of steps computing using first-order with vanleer, during flow initialization. + +int nMGLevel = 1; +int flowInitStep = 100; + + +######################################################################### +# File In or Out # +######################################################################### +// gridfile: The partitioned Grid file path, using relative path, +// which is relative to the working directory. +// IMPORTANT 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! +// isPlotVolumeField: If dump out the whole field results to tecplot or not, 0/1. + +string gridfile = "./grid/30p30n_str__4.fts"; +int isPlotVolumeField = 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[] = [0, 1, 2, 3, 4, 5, 6, 15]; + +// limitVariables: limit model. +// 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/TwoD_30p30n_SST_Struct/bin/grid_para.hypara b/TwoD_30p30n_SST_Struct/bin/grid_para.hypara new file mode 100644 index 00000000..22e54d07 --- /dev/null +++ b/TwoD_30p30n_SST_Struct/bin/grid_para.hypara @@ -0,0 +1,34 @@ +######################################################################### +# 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 = 1; +int axisup = 1; +int from_gtype = 3; + +######################################################################### +# 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/30p30n_str.grd"; +string out_gfile = "./grid/30p30n_str.fts"; + + + + diff --git a/TwoD_30p30n_SST_Struct/bin/key.hypara b/TwoD_30p30n_SST_Struct/bin/key.hypara new file mode 100644 index 00000000..08dcaa58 --- /dev/null +++ b/TwoD_30p30n_SST_Struct/bin/key.hypara @@ -0,0 +1,41 @@ +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/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 = "./bin/cfd_para.hypara" +string parafilename2 = "./bin/cfd_para.hypara"; diff --git a/TwoD_30p30n_SST_Struct/bin/partition.hypara b/TwoD_30p30n_SST_Struct/bin/partition.hypara new file mode 100644 index 00000000..18c8a7c3 --- /dev/null +++ b/TwoD_30p30n_SST_Struct/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 = 1; +int maxproc = 4; + +string original_grid_file = "./grid/30p30n_str.fts"; +string partition_grid_file = "./grid/30p30n_str__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/TwoD_30p30n_SST_Struct/grid/30p30n_str.grd b/TwoD_30p30n_SST_Struct/grid/30p30n_str.grd new file mode 100644 index 00000000..13f68835 Binary files /dev/null and b/TwoD_30p30n_SST_Struct/grid/30p30n_str.grd differ diff --git a/TwoD_30p30n_SST_Struct/grid/30p30n_str.inp b/TwoD_30p30n_SST_Struct/grid/30p30n_str.inp new file mode 100644 index 00000000..1a467e90 --- /dev/null +++ b/TwoD_30p30n_SST_Struct/grid/30p30n_str.inp @@ -0,0 +1,161 @@ + 1 + 8 + 81 617 +A + 21 + 1 41 1 1 4 + 1 1 65 1 -1 + 353 353 -65 -1 7 + 1 1 65 129 -1 + 281 281 -1 -65 6 + 1 1 189 129 -1 + 121 121 -61 -1 8 + 1 1 221 189 -1 + 121 121 -93 -61 8 + 1 1 221 245 -1 + 121 121 -93 -117 8 + 1 1 309 245 -1 + 41 41 65 1 2 + 1 1 309 341 -1 + 41 41 -65 -97 2 + 1 1 -481 -553 -1 + 41 41 -65 -137 5 + 1 1 -481 -449 -1 + 41 41 -65 -33 5 + 1 1 -373 -449 -1 + 121 121 -33 -109 4 + 1 1 -341 -373 -1 + 121 121 -1 -33 4 + 41 1 617 617 4 + 1 1 -553 -617 -1 + 1 1 -65 -1 7 + 81 81 553 617 4 + 81 41 617 617 4 + 81 81 341 553 4 + 81 81 245 341 4 + 81 81 65 245 4 + 81 81 65 1 4 + 41 81 1 1 4 + 41 97 +B + 6 + 41 41 65 1 -1 + 1 1 309 245 1 + -1 -41 1 1 -1 + 81 121 117 117 8 + 1 1 65 1 2 + 41 41 -65 -97 -1 + 1 1 309 341 1 + 1 1 97 65 2 + 1 41 97 97 -1 + 81 121 1 1 4 + 81 49 +C + 6 + 81 49 49 49 -1 + 81 49 1 1 4 + 81 81 1 49 2 + 81 49 1 1 -1 + 81 49 117 117 8 + -1 -49 49 49 -1 + 1 49 1 1 4 + 1 1 49 1 2 + -49 -1 1 1 -1 + 49 1 117 117 8 + 121 141 +D + 14 + 121 121 -1 -33 -1 + 1 1 -341 -373 1 + 81 121 1 1 -1 + 1 41 97 97 2 + 81 49 1 1 -1 + 81 49 49 49 3 + 1 1 33 1 2 + 1 49 1 1 -1 + -1 -49 49 49 3 + 121 121 -33 -109 -1 + 1 1 -373 -449 1 + 1 1 77 33 2 + 1 1 93 77 2 + 1 1 109 93 2 + 1 1 125 109 2 + 1 1 -125 -141 -1 + 1 1 -17 -1 8 + 49 1 141 141 -1 + 113 161 65 65 6 + -121 -49 141 141 -1 + 41 113 65 65 6 + 121 121 141 109 -1 + 41 41 -1 -33 5 + 41 137 +E + 8 + 41 41 -1 -33 -1 + 121 121 141 109 4 + 1 1 33 1 2 + 1 41 1 1 -1 + 1 41 65 65 6 + 41 41 -65 -33 -1 + 1 1 -481 -449 1 + 1 1 65 33 2 + 41 41 -65 -137 -1 + 1 1 -481 -553 1 + 1 1 137 65 2 + 41 1 137 137 -1 + 1 41 65 65 7 + 281 65 +F + 8 + 1 1 65 1 2 + 1 161 1 1 -1 + 73 233 65 65 7 + 113 161 65 65 -1 + 49 1 141 141 4 + 41 113 65 65 -1 + -121 -49 141 141 4 + 1 41 65 65 -1 + 1 41 1 1 5 + 161 281 65 65 -1 + 1 121 1 1 8 + 281 281 -1 -65 -1 + 1 1 65 129 1 + 161 281 1 1 -1 + 233 353 65 65 7 + 353 65 +G + 7 + 1 1 -65 -1 -1 + 1 1 -553 -617 1 + 1 41 65 65 -1 + 41 1 137 137 5 + 73 41 65 65 2 + 73 233 65 65 -1 + 1 161 1 1 6 + 233 353 65 65 -1 + 161 281 1 1 6 + 353 353 -65 -1 -1 + 1 1 65 1 1 + 1 353 1 1 4 + 121 117 +H + 11 + 1 1 61 17 2 + 1 1 -17 -1 -1 + 1 1 -125 -141 4 + 1 121 1 1 -1 + 161 281 65 65 6 + 121 121 -61 -1 -1 + 1 1 189 129 1 + 1 1 93 61 2 + 121 121 -93 -61 -1 + 1 1 221 189 1 + 1 1 117 93 2 + 81 49 117 117 -1 + 81 49 1 1 3 + 49 1 117 117 -1 + -49 -1 1 1 3 + 81 121 117 117 -1 + -1 -41 1 1 2 + 121 121 -93 -117 -1 + 1 1 221 245 1 diff --git a/TwoD_Cylinder_Laminar_HighOrder_Struct/TwoD_Cylinder_Laminar_HighOrder_Struct/bin/cfd_para.hypara b/TwoD_Cylinder_Laminar_HighOrder_Struct/TwoD_Cylinder_Laminar_HighOrder_Struct/bin/cfd_para.hypara new file mode 100644 index 00000000..449929dc --- /dev/null +++ b/TwoD_Cylinder_Laminar_HighOrder_Struct/TwoD_Cylinder_Laminar_HighOrder_Struct/bin/cfd_para.hypara @@ -0,0 +1,809 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// 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, 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 = 0; +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 -- 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. +// 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. +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 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// .skl meaning skeleton. +string original_grid_info_file = "./grid/FLUENT_test.skl"; + +// 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. +// mixgrid_str_bc: path of structure grid boundary condition file 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. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Adaptive Mesh Refine ------------------------------- +// In this file, the original_grid_file is used of the partition part. +// If use it dependently, abstract it here. +string adapt_grid_file = "./grid/sphere_mixed_adapt1.fts"; +string geometryFileName = "./grid/jsm.igs"; + +// 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 geometryUnit = 1; +int anisoRefine = 0; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; // 0: NON case; 1: JSM-C2-NPOFF case; 2: CHNT. +int projectOrgPoint = 0; // if project original wall points. + +// ----------------- RBF Parameters ------------------------------------- +// symmetryPlane: Which symmetry plane is used in the mesh. +// 0 -- without symmetry. +// 1 -- plane of x=0. +// 2 -- plane of y=0. +// 3 -- plane of z=0. +int numberOfReferenceCP = 10; +double influenceRadius = 20; +int symmetryPlane = 3; // 1: plane of x=0; 2: plane of y=0; 3: plane of z=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. +int pgridtype = 0; +int maxproc = 4; + +// 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]; + +//----------------------------------------------------------------------- +# 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. +// 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: 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. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) + +int maxSimuStep = 20000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; +int ifLowSpeedPrecon = 0; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 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. +// 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. +// 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. +// 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. +// 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. + +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 10000.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)). + +//int inflowParaType = 3; +//int nsubsonicInlet = 1; +//int nsubsonicOutlet = 1; +//string inLetFileName = "./bin/subsonicInlet.hypara"; +//string outLetFileName = "./bin/subsonicOutlet.hypara"; +//double refDimensionalTemperature = 288.144; +//double refDimensionalPressure = 1.01313E05; + +double wallTemperature = -1.0; +int dump_Q = 0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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. + +// directionMethod: The method of determining direction. +// 1 -- using direciton. +// 2 -- using face normal. +// subsonicInletTotalPressure: The dimensional total pressure of subsonic inlet if height > 0, else non-dimensional. +// subsonicInletTotalTemperature: The dimensional total temperature of subsonic inlet if height > 0, else non-dimensional. +// direction_inlet: The direction of inlet. +// subsonicOutletTotalPressure: The dimensional total pressure of subsonic outlet if height > 0, else non-dimensional. +// subsonicOutletTotalTemperature: The dimensional total temperature of subsonic outlet if height > 0, else non-dimensional. +// direction_outlet: The direction of outlet. +int directionMethod = 2; +double subsonicInletTotalPressure = 1.2e6; +double subsonicInletTotalTemperature = 1300; +double direction_inlet[] = 1, 0, 0; + +double subsonicOutletTotalPressure = 17.8571428; +double subsonicOutletTotalTemperature = 1.0; +double direction_outlet[] = 1, 0, 0; + +//----------------------------------------------------------------------- +# 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". +// 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 inviscidSchemeName = "roe"; +string str_limiter_name = "vanalbada"; + +#******************************************************************* +# UnStruct Solver or Common * +#******************************************************************* +// viscousType : Viscous model. +// 0 -- Euler. +// 1 -- Lamilar. +// 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", "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. +// 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. + +//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 limit_angle = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 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 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. +// 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. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// iale: 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; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int startStatisticStep = 800000; + +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; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; + +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 timemax = 1.0e10; +double dtsave = -1.0; +int iale = 0; +int ialetype = 2; +int maxale = 10; +double dtau = 0.001; +double dtau_max = 1E-01; + +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! +// isPlotVolumeField: 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. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; + +int walldistMethod = 1; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "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 isPlotVolumeField = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. + +int visualfileType = 1; + +// 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 lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [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), vibration temperature(33), electron temperature(34), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44). +// 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]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +//----------------------------------------------------------------------- +# Turbulence Parameter # +//----------------------------------------------------------------------- +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// 1 -- Edwards. +// 2 -- new. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. + +int turbInterval = 1; +int turb_vis_kind = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double turb_relax = 1.0; +double turb_min_coef = 1.0e-1; +double freeStreamViscosity = 1.0e-3; +double muoo = 1.0e-1; +double kwoo = 1.0; + +# maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +double sdilim = 1.0e20; +double coef_kvist = 1.0; +int monitor_vistmax = 0; + +//----------------------------------------------------------------------- +# Other Parameter # +//----------------------------------------------------------------------- +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- NS. +// 1 -- MHD. +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int dg_high_order = 0; +int iapplication = 0; +int nm = 5; + +// MHD +double bxoo = 0.0; +double byoo = 0.0; +double bzoo = 0.0; + +double refGama = 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 = 1; +int nchemrad = 1; +int ntmodel = 1; +int nChemicalFlowStep = 0; +double catalyticCoef = 0.0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.77"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.77, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.77, 0.0"; + +int ifStartFromPerfectGasResults = 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 # +######################################################################### +// ifvfd: +// 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 ifvfd = 0; +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"; + +// ----------------- 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; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 2.329418E08; +//@double refDimensionalTemperature = 288.144; +//@double refDimensionalPressure = 1.01313E05; +//@double height = -0.001; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; diff --git a/TwoD_Cylinder_Laminar_HighOrder_Struct/TwoD_Cylinder_Laminar_HighOrder_Struct/bin/cfd_para_hypersonic.hypara b/TwoD_Cylinder_Laminar_HighOrder_Struct/TwoD_Cylinder_Laminar_HighOrder_Struct/bin/cfd_para_hypersonic.hypara new file mode 100644 index 00000000..fcbd6baf --- /dev/null +++ b/TwoD_Cylinder_Laminar_HighOrder_Struct/TwoD_Cylinder_Laminar_HighOrder_Struct/bin/cfd_para_hypersonic.hypara @@ -0,0 +1,267 @@ +######################################################################### +# 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 = 20000; + +int intervalStepFlow = 500; +int intervalStepPlot = 200; +int intervalStepForce = 100; +int intervalStepRes = 10; + +######################################################################### +# Inflow Parameter # +######################################################################### +// refMachNumber: Mach number. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// wallTemperature: 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. +// 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. +// 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. +// 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 = 8.03; +double attackd = 0.00; +double angleSlide = 0.00; + +double wallTemperature = 294.44; +int dump_Q = 1; + +int inflowParaType = 0; +double refReNumber = 1.835e5; +double refDimensionalTemperature = 124.94; +double freestream_vibration_temperature = 10000.0; + +//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)). + +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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. +// -- "vanleer", "steger", "ausmpw". +// str_limiter_name: Limiter of struct grid. +// -- "minmod", "3rd_minmod_smooth". + +string inviscidSchemeName = "steger"; +string str_limiter_name = "minmod"; + +#******************************************************************* +# 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 = "vanleer"; +string uns_limiter_name = "vencat"; +double venkatCoeff = 0.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. +// ktmax: The lower the value, the more robustness, 1.0e5 - 1.0e10. + +int iunsteady = 0; + +double CFLEnd = 10.0; +int CFLVaryStep = 100; + +double ktmax = 1.0e10; + +int nLUSGSSweeps = 4; +double LUSGSTolerance = 1.0e-20; + +######################################################################### +# 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! +// isPlotVolumeField: If dump out the whole field results to tecplot or not, 0 / 1. + +string gridfile = "./grid/cylinder_str.fts"; +int isPlotVolumeField = 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 = 0; +int limitVariables = 0; +int limitVector = 1; + +######################################################################### +# High Order Struct Solver # +######################################################################### +// ifvfd: +// 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 ifvfd = 1; +int SolverStructOrder = 0; +double str_highorder_interpolation_epsilon = 1.0e-4; +string str_highorder_interpolation_type = "test"; +string str_highorder_flux_name = "steger"; +string structhighordergradient = "conservation"; + +######################################################################### +# Non-equilibrium gas # +######################################################################### +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int nchem = 0; +int ntmodel = 1; +int nchemsrc = 1; +int nchemrad = 1; +double catalyticCoef = 1.0; +string gasfile = "DK5"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.07955, 0.134, 0.0509, 1.0e-9, 0.73555"; +int ifStartFromPerfectGasResults = 0; diff --git a/TwoD_Cylinder_Laminar_HighOrder_Struct/TwoD_Cylinder_Laminar_HighOrder_Struct/bin/grid_para.hypara b/TwoD_Cylinder_Laminar_HighOrder_Struct/TwoD_Cylinder_Laminar_HighOrder_Struct/bin/grid_para.hypara new file mode 100644 index 00000000..0c37bf90 --- /dev/null +++ b/TwoD_Cylinder_Laminar_HighOrder_Struct/TwoD_Cylinder_Laminar_HighOrder_Struct/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 -- 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 = 1; +int axisup = 1; +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/cylinder_str.cgns"; +string out_gfile = "./grid/cylinder_str.fts"; diff --git a/TwoD_Cylinder_Laminar_HighOrder_Struct/TwoD_Cylinder_Laminar_HighOrder_Struct/bin/key.hypara b/TwoD_Cylinder_Laminar_HighOrder_Struct/TwoD_Cylinder_Laminar_HighOrder_Struct/bin/key.hypara new file mode 100644 index 00000000..83d50411 --- /dev/null +++ b/TwoD_Cylinder_Laminar_HighOrder_Struct/TwoD_Cylinder_Laminar_HighOrder_Struct/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 parameter files. +// nsimutask: simulation task type. +// 0 -- CFD Solver of NS or Turbulation. +// 1 -- Grid generation: for special typical cases, such as cylinder, flat plate, etc. +// Grid conversion: from other format to PHengLEI format (.fts). +// Grid reconstruction: such as grid adaptation. +// Grid merging: merge two blocks into one block. +// Grid repairing: repair the original grid in order to remove the negative volume cells. +// 2 -- Wall distance computation for turb-solver. +// 3 -- Grid partition. +// 4 -- Knowledge repository / examples of PHengLEI-API. +int ndim = 2; +int nparafile = 1; + +int nsimutask = 0; +//string parafilename = "./bin/cfd_para_subsonic.hypara"; +//string parafilename = "./bin/cfd_para_transonic.hypara"; +//string parafilename = "./bin/cfd_para_supersonic.hypara"; +string parafilename = "./bin/cfd_para_hypersonic.hypara"; +//string parafilename = "./bin/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/TwoD_Cylinder_Laminar_HighOrder_Struct/TwoD_Cylinder_Laminar_HighOrder_Struct/bin/partition.hypara b/TwoD_Cylinder_Laminar_HighOrder_Struct/TwoD_Cylinder_Laminar_HighOrder_Struct/bin/partition.hypara new file mode 100644 index 00000000..105fa4fa --- /dev/null +++ b/TwoD_Cylinder_Laminar_HighOrder_Struct/TwoD_Cylinder_Laminar_HighOrder_Struct/bin/partition.hypara @@ -0,0 +1,21 @@ +// pgridtype: The grid type. +// 0 -- unstruct grid. +// 1 -- struct grid. +// maxproc: The number of partition zones that want to be divided into, +// which is equal to the number of CPU processors you want. +// Usually, 50~100 thousands structured cells per CPU-Core is suggested. +// 30~70 thousands unstructured cells per CPU-Core is suggested. +// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts). +// partition_grid_file: Target partition grid file(PHengLEI type, *.fts). + +int pgridtype = 1; +int maxproc = 4; + +string original_grid_file = "./grid/cylinder_str.fts"; +string partition_grid_file = "./grid/cylinder_str__4.fts"; + +// numberOfMultigrid: Number of multi-grid levels, ONLY used for structured grid. +// 1 -- single level. +// 2 -- 2 level. +// N -- N level,..., et al. +int numberOfMultigrid = 1; diff --git a/TwoD_Cylinder_Laminar_HighOrder_Struct/TwoD_Cylinder_Laminar_HighOrder_Struct/grid/cylinder_str.cgns b/TwoD_Cylinder_Laminar_HighOrder_Struct/TwoD_Cylinder_Laminar_HighOrder_Struct/grid/cylinder_str.cgns new file mode 100644 index 00000000..90f60bd2 Binary files /dev/null and b/TwoD_Cylinder_Laminar_HighOrder_Struct/TwoD_Cylinder_Laminar_HighOrder_Struct/grid/cylinder_str.cgns differ diff --git a/TwoD_Cylinder_Laminar_Ma8d03_Struct/bin/cfd_para.hypara b/TwoD_Cylinder_Laminar_Ma8d03_Struct/bin/cfd_para.hypara new file mode 100644 index 00000000..232e075f --- /dev/null +++ b/TwoD_Cylinder_Laminar_Ma8d03_Struct/bin/cfd_para.hypara @@ -0,0 +1,809 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// 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, 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 = 0; +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 -- 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. +// 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. +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 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// .skl meaning skeleton. +string original_grid_info_file = "./grid/FLUENT_test.skl"; + +// 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. +// mixgrid_str_bc: path of structure grid boundary condition file 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. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Adaptive Mesh Refine ------------------------------- +// In this file, the original_grid_file is used of the partition part. +// If use it dependently, abstract it here. +string adapt_grid_file = "./grid/sphere_mixed_adapt1.fts"; +string geometryFileName = "./grid/jsm.igs"; + +// 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 geometryUnit = 1; +int anisoRefine = 0; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; // 0: NON case; 1: JSM-C2-NPOFF case; 2: CHNT. +int projectOrgPoint = 0; // if project original wall points. + +// ----------------- RBF Parameters ------------------------------------- +// symmetryPlane: Which symmetry plane is used in the mesh. +// 0 -- without symmetry. +// 1 -- plane of x=0. +// 2 -- plane of y=0. +// 3 -- plane of z=0. +int numberOfReferenceCP = 10; +double influenceRadius = 20; +int symmetryPlane = 3; // 1: plane of x=0; 2: plane of y=0; 3: plane of z=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. +int pgridtype = 0; +int maxproc = 4; + +// 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]; + +//----------------------------------------------------------------------- +# 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. +// 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: 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. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) + +int maxSimuStep = 20000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; +int ifLowSpeedPrecon = 0; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 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. +// 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. +// 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. +// 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. +// 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. + +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 10000.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)). + +//int inflowParaType = 3; +//int nsubsonicInlet = 1; +//int nsubsonicOutlet = 1; +//string inLetFileName = "./bin/subsonicInlet.hypara"; +//string outLetFileName = "./bin/subsonicOutlet.hypara"; +//double refDimensionalTemperature = 288.144; +//double refDimensionalPressure = 1.01313E05; + +double wallTemperature = -1.0; +int dump_Q = 0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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. + +// directionMethod: The method of determining direction. +// 1 -- using direciton. +// 2 -- using face normal. +// subsonicInletTotalPressure: The dimensional total pressure of subsonic inlet if height > 0, else non-dimensional. +// subsonicInletTotalTemperature: The dimensional total temperature of subsonic inlet if height > 0, else non-dimensional. +// direction_inlet: The direction of inlet. +// subsonicOutletTotalPressure: The dimensional total pressure of subsonic outlet if height > 0, else non-dimensional. +// subsonicOutletTotalTemperature: The dimensional total temperature of subsonic outlet if height > 0, else non-dimensional. +// direction_outlet: The direction of outlet. +int directionMethod = 2; +double subsonicInletTotalPressure = 1.2e6; +double subsonicInletTotalTemperature = 1300; +double direction_inlet[] = 1, 0, 0; + +double subsonicOutletTotalPressure = 17.8571428; +double subsonicOutletTotalTemperature = 1.0; +double direction_outlet[] = 1, 0, 0; + +//----------------------------------------------------------------------- +# 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". +// 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 inviscidSchemeName = "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. +// 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", "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. +// 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. + +//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 limit_angle = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 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 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. +// 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. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// iale: 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; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int startStatisticStep = 800000; + +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; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; + +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 timemax = 1.0e10; +double dtsave = -1.0; +int iale = 0; +int ialetype = 2; +int maxale = 10; +double dtau = 0.001; +double dtau_max = 1E-01; + +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! +// isPlotVolumeField: 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. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; + +int walldistMethod = 1; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "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 isPlotVolumeField = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. + +int visualfileType = 1; + +// 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 lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [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), vibration temperature(33), electron temperature(34), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44). +// 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]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +//----------------------------------------------------------------------- +# Turbulence Parameter # +//----------------------------------------------------------------------- +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// 1 -- Edwards. +// 2 -- new. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. + +int turbInterval = 1; +int turb_vis_kind = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double turb_relax = 1.0; +double turb_min_coef = 1.0e-1; +double freeStreamViscosity = 1.0e-3; +double muoo = 1.0e-1; +double kwoo = 1.0; + +# maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +double sdilim = 1.0e20; +double coef_kvist = 1.0; +int monitor_vistmax = 0; + +//----------------------------------------------------------------------- +# Other Parameter # +//----------------------------------------------------------------------- +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- NS. +// 1 -- MHD. +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int dg_high_order = 0; +int iapplication = 0; +int nm = 5; + +// MHD +double bxoo = 0.0; +double byoo = 0.0; +double bzoo = 0.0; + +double refGama = 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 = 1; +int nchemrad = 1; +int ntmodel = 1; +int nChemicalFlowStep = 0; +double catalyticCoef = 0.0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.77"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.77, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.77, 0.0"; + +int ifStartFromPerfectGasResults = 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 # +######################################################################### +// ifvfd: +// 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 ifvfd = 0; +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"; + +// ----------------- 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; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 2.329418E08; +//@double refDimensionalTemperature = 288.144; +//@double refDimensionalPressure = 1.01313E05; +//@double height = -0.001; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; diff --git a/TwoD_Cylinder_Laminar_Ma8d03_Struct/bin/cfd_para_hypersonic.hypara b/TwoD_Cylinder_Laminar_Ma8d03_Struct/bin/cfd_para_hypersonic.hypara new file mode 100644 index 00000000..bf9f239f --- /dev/null +++ b/TwoD_Cylinder_Laminar_Ma8d03_Struct/bin/cfd_para_hypersonic.hypara @@ -0,0 +1,193 @@ +######################################################################### +# 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 = 30000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; + +######################################################################### +# Inflow Parameter # +######################################################################### +// refMachNumber: Mach number per meter. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// refReNumbe: 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. +// inflowParaType: the type of inflow parameters. +// 0 - the nondimensional conditions. +// 1 - the flight conditions. +// 2 - the experiment conditions. +// height: Fly height, unit of km. +// wallTemperature: 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. +// gridScaleFactor: The customizable unit of the grid, default value 1.0 metre. +// forceRefenenceLength, forceRefenenceArea: Reference length and area, independent to grid scale. +// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent to grid scale. + +double refMachNumber = 8.03; +double attackd = 0.00; +double angleSlide = 0.00; + +double wallTemperature = 294.0 ; +int dump_Q = 0; + +int inflowParaType = 0; +double refReNumber = 3.67e5; +double refDimensionalTemperature = 125.0; + +//int inflowParaType = 1; +//double height = 0.001; + +//int inflowParaType = 2; +//double refDimensionalTemperature = 6051.024; //the total temperature, T*(1+(gama0-1)*M*M/2). +//double refDimensionalPressure = 4.299696E09; //the total pressure, p*(T0/T)^(gama0/(gama0-1)). + +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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 iviscous = 0; +//string viscousName = "Euler"; + +int viscousType = 1; +string viscousName = "laminar"; + +//int iviscous = 3; +//string viscousName = "1eq-sa"; + +//int iviscous = 4; +//string viscousName = "2eq-kw-menter-sst"; + +int DESType = 0; + +int roeEntropyFixMethod = 2; +double roeEntropyScale = 0.0001; +######################################################################### +# Spatial Discretisation # +######################################################################### +#******************************************************************* +# Struct Solver * +#******************************************************************* +// inviscidSchemeName: Spatial discretisation scheme of struct grid +// Using this when solve structered grid or hybrid. +// - "vanleer", "steger", "ausmpw" +// str_limiter_name: Limiter of struct grid +// - "minmod", "3rd_minmod_smooth" + +string inviscidSchemeName = "roe"; +string str_limiter_name = "vanleer"; + +#******************************************************************* +# 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 = "vanleer"; +string uns_limiter_name = "vencat"; +double venkatCoeff = 0.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. +// ktmax: The lower the value, the more robustness, 1.0e5 ~ 1.0e10. + +int iunsteady = 0; + +double CFLEnd = 3.0; + +double ktmax = 1.0e10; + + +######################################################################### +# 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! +// isPlotVolumeField: If dump out the whole field results to tecplot or not, 0/1. + +string gridfile = "./grid/input.fts"; +int isPlotVolumeField = 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[] = [0, 1, 2, 3, 4, 5, 6, 15]; + +// limitVariables: limit model. +// 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 = 0; +int limitVariables = 0; +int limitVector = 1; + +double MUSCLCoefXk = 0.333333; diff --git a/TwoD_Cylinder_Laminar_Ma8d03_Struct/bin/grid_para.hypara b/TwoD_Cylinder_Laminar_Ma8d03_Struct/bin/grid_para.hypara new file mode 100644 index 00000000..7305f174 --- /dev/null +++ b/TwoD_Cylinder_Laminar_Ma8d03_Struct/bin/grid_para.hypara @@ -0,0 +1,34 @@ +######################################################################### +# 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 = 1; +int axisup = 1; +int from_gtype = 3; + +######################################################################### +# 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/input.grd"; +string out_gfile = "./grid/input.fts"; + + + + diff --git a/TwoD_Cylinder_Laminar_Ma8d03_Struct/bin/key.hypara b/TwoD_Cylinder_Laminar_Ma8d03_Struct/bin/key.hypara new file mode 100644 index 00000000..8a53b662 --- /dev/null +++ b/TwoD_Cylinder_Laminar_Ma8d03_Struct/bin/key.hypara @@ -0,0 +1,42 @@ +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_hypersonic.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/TwoD_Cylinder_Laminar_Ma8d03_Struct/bin/partition.hypara b/TwoD_Cylinder_Laminar_Ma8d03_Struct/bin/partition.hypara new file mode 100644 index 00000000..82e511d4 --- /dev/null +++ b/TwoD_Cylinder_Laminar_Ma8d03_Struct/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 = 1; +int maxproc = 1; + +string original_grid_file = "./grid/input.fts"; +string partition_grid_file = "./grid/input.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/TwoD_Cylinder_Laminar_Ma8d03_Struct/grid/input.grd b/TwoD_Cylinder_Laminar_Ma8d03_Struct/grid/input.grd new file mode 100644 index 00000000..e1b80eaf Binary files /dev/null and b/TwoD_Cylinder_Laminar_Ma8d03_Struct/grid/input.grd differ diff --git a/TwoD_Cylinder_Laminar_Ma8d03_Struct/grid/input.inp b/TwoD_Cylinder_Laminar_Ma8d03_Struct/grid/input.inp new file mode 100644 index 00000000..6ed796fd --- /dev/null +++ b/TwoD_Cylinder_Laminar_Ma8d03_Struct/grid/input.inp @@ -0,0 +1,9 @@ + 1 + 1 + 101 81 +A + 4 + 1 1 1 81 6 + 1 101 81 81 5 + 101 101 1 81 6 + 1 101 1 1 2 diff --git a/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/bin/cfd_para.hypara b/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/bin/cfd_para.hypara new file mode 100644 index 00000000..449929dc --- /dev/null +++ b/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/bin/cfd_para.hypara @@ -0,0 +1,809 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// 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, 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 = 0; +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 -- 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. +// 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. +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 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// .skl meaning skeleton. +string original_grid_info_file = "./grid/FLUENT_test.skl"; + +// 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. +// mixgrid_str_bc: path of structure grid boundary condition file 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. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Adaptive Mesh Refine ------------------------------- +// In this file, the original_grid_file is used of the partition part. +// If use it dependently, abstract it here. +string adapt_grid_file = "./grid/sphere_mixed_adapt1.fts"; +string geometryFileName = "./grid/jsm.igs"; + +// 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 geometryUnit = 1; +int anisoRefine = 0; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; // 0: NON case; 1: JSM-C2-NPOFF case; 2: CHNT. +int projectOrgPoint = 0; // if project original wall points. + +// ----------------- RBF Parameters ------------------------------------- +// symmetryPlane: Which symmetry plane is used in the mesh. +// 0 -- without symmetry. +// 1 -- plane of x=0. +// 2 -- plane of y=0. +// 3 -- plane of z=0. +int numberOfReferenceCP = 10; +double influenceRadius = 20; +int symmetryPlane = 3; // 1: plane of x=0; 2: plane of y=0; 3: plane of z=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. +int pgridtype = 0; +int maxproc = 4; + +// 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]; + +//----------------------------------------------------------------------- +# 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. +// 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: 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. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) + +int maxSimuStep = 20000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; +int ifLowSpeedPrecon = 0; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 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. +// 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. +// 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. +// 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. +// 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. + +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 10000.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)). + +//int inflowParaType = 3; +//int nsubsonicInlet = 1; +//int nsubsonicOutlet = 1; +//string inLetFileName = "./bin/subsonicInlet.hypara"; +//string outLetFileName = "./bin/subsonicOutlet.hypara"; +//double refDimensionalTemperature = 288.144; +//double refDimensionalPressure = 1.01313E05; + +double wallTemperature = -1.0; +int dump_Q = 0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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. + +// directionMethod: The method of determining direction. +// 1 -- using direciton. +// 2 -- using face normal. +// subsonicInletTotalPressure: The dimensional total pressure of subsonic inlet if height > 0, else non-dimensional. +// subsonicInletTotalTemperature: The dimensional total temperature of subsonic inlet if height > 0, else non-dimensional. +// direction_inlet: The direction of inlet. +// subsonicOutletTotalPressure: The dimensional total pressure of subsonic outlet if height > 0, else non-dimensional. +// subsonicOutletTotalTemperature: The dimensional total temperature of subsonic outlet if height > 0, else non-dimensional. +// direction_outlet: The direction of outlet. +int directionMethod = 2; +double subsonicInletTotalPressure = 1.2e6; +double subsonicInletTotalTemperature = 1300; +double direction_inlet[] = 1, 0, 0; + +double subsonicOutletTotalPressure = 17.8571428; +double subsonicOutletTotalTemperature = 1.0; +double direction_outlet[] = 1, 0, 0; + +//----------------------------------------------------------------------- +# 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". +// 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 inviscidSchemeName = "roe"; +string str_limiter_name = "vanalbada"; + +#******************************************************************* +# UnStruct Solver or Common * +#******************************************************************* +// viscousType : Viscous model. +// 0 -- Euler. +// 1 -- Lamilar. +// 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", "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. +// 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. + +//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 limit_angle = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 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 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. +// 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. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// iale: 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; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int startStatisticStep = 800000; + +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; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; + +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 timemax = 1.0e10; +double dtsave = -1.0; +int iale = 0; +int ialetype = 2; +int maxale = 10; +double dtau = 0.001; +double dtau_max = 1E-01; + +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! +// isPlotVolumeField: 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. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; + +int walldistMethod = 1; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "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 isPlotVolumeField = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. + +int visualfileType = 1; + +// 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 lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [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), vibration temperature(33), electron temperature(34), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44). +// 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]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +//----------------------------------------------------------------------- +# Turbulence Parameter # +//----------------------------------------------------------------------- +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// 1 -- Edwards. +// 2 -- new. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. + +int turbInterval = 1; +int turb_vis_kind = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double turb_relax = 1.0; +double turb_min_coef = 1.0e-1; +double freeStreamViscosity = 1.0e-3; +double muoo = 1.0e-1; +double kwoo = 1.0; + +# maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +double sdilim = 1.0e20; +double coef_kvist = 1.0; +int monitor_vistmax = 0; + +//----------------------------------------------------------------------- +# Other Parameter # +//----------------------------------------------------------------------- +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- NS. +// 1 -- MHD. +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int dg_high_order = 0; +int iapplication = 0; +int nm = 5; + +// MHD +double bxoo = 0.0; +double byoo = 0.0; +double bzoo = 0.0; + +double refGama = 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 = 1; +int nchemrad = 1; +int ntmodel = 1; +int nChemicalFlowStep = 0; +double catalyticCoef = 0.0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.77"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.77, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.77, 0.0"; + +int ifStartFromPerfectGasResults = 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 # +######################################################################### +// ifvfd: +// 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 ifvfd = 0; +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"; + +// ----------------- 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; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 2.329418E08; +//@double refDimensionalTemperature = 288.144; +//@double refDimensionalPressure = 1.01313E05; +//@double height = -0.001; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; diff --git a/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/bin/cfd_para_hypersonic.hypara b/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/bin/cfd_para_hypersonic.hypara new file mode 100644 index 00000000..f2edbe08 --- /dev/null +++ b/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/bin/cfd_para_hypersonic.hypara @@ -0,0 +1,238 @@ +######################################################################### +# General Control Parameter # +######################################################################### +// maxSimuStep: The max simulation step, don't care simulation is restart or not. +// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved. +// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual 'res.dat' saved. + +int maxSimuStep = 10000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 100; +int intervalStepForce = 100; +int intervalStepRes = 10; + +######################################################################### +# Inflow Parameter # +######################################################################### +// refMachNumber: Mach number. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// wallTemperature: 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. +// 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. +// 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. +// 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 = 8.7569; +double attackd = 0.00; +double angleSlide = 0.00; + +double wallTemperature = 300.0; +int dump_Q = 0; + +int inflowParaType = 0; +double refReNumber = 4.7001e5; +double refDimensionalTemperature = 694.00; +double freestream_vibration_temperature = 694.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)). + +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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 = 2; +double roeEntropyScale = 1.0; +######################################################################### +# Spatial Discretisation # +######################################################################### +#******************************************************************* +# Struct Solver * +#******************************************************************* +// inviscidSchemeName: Spatial discretisation scheme of struct grid. +// Using this when solve structered grid or hybrid. +// -- "vanleer", "steger", "ausmpw". +// str_limiter_name: Limiter of struct grid. +// -- "minmod", "3rd_minmod_smooth". + +string inviscidSchemeName = "ausmdv"; +string str_limiter_name = "minmod"; + +#******************************************************************* +# 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 = "vanleer"; +string uns_limiter_name = "vencat"; +double venkatCoeff = 0.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. +// ktmax: The lower the value, the more robustness, 1.0e5 - 1.0e10. + +int iunsteady = 0; + +double CFLEnd = 10.0; +int CFLVaryStep = 1000; +double ktmax = 1.0e10; + +######################################################################### +# 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! +// isPlotVolumeField: If dump out the whole field results to tecplot or not, 0 / 1. + +string gridfile = "./grid/2D_HEG_CYLINDER_65X88_DY2D-7__4.fts"; +int isPlotVolumeField = 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 = 0; +int limitVariables = 0; +int limitVector = 1; + +######################################################################### +# Non-equilibrium gas # +######################################################################### +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int nchem = 1; +int ntmodel = 1; +int nchemsrc = 1; +int nchemrad = 1; +double catalyticCoef = 1.0; +string gasfile = "DK11"; +string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +string initMassFraction = "0.07955,0.134,0.0509,1.0e-9,0.0,0.0,0.0,0.0,0.0,0.73555,0.0"; +int ifStartFromPerfectGasResults = 0; diff --git a/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/bin/grid_para.hypara b/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/bin/grid_para.hypara new file mode 100644 index 00000000..9852ca0b --- /dev/null +++ b/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/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 -- 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 = 1; +int axisup = 1; +int from_gtype = 3; + +######################################################################### +# 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/2D_HEG_CYLINDER_65X88_DY2D-7.grd"; +string out_gfile = "./grid/2D_HEG_CYLINDER_65X88_DY2D-7.fts"; diff --git a/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/bin/key.hypara b/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/bin/key.hypara new file mode 100644 index 00000000..83d50411 --- /dev/null +++ b/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/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 parameter files. +// nsimutask: simulation task type. +// 0 -- CFD Solver of NS or Turbulation. +// 1 -- Grid generation: for special typical cases, such as cylinder, flat plate, etc. +// Grid conversion: from other format to PHengLEI format (.fts). +// Grid reconstruction: such as grid adaptation. +// Grid merging: merge two blocks into one block. +// Grid repairing: repair the original grid in order to remove the negative volume cells. +// 2 -- Wall distance computation for turb-solver. +// 3 -- Grid partition. +// 4 -- Knowledge repository / examples of PHengLEI-API. +int ndim = 2; +int nparafile = 1; + +int nsimutask = 0; +//string parafilename = "./bin/cfd_para_subsonic.hypara"; +//string parafilename = "./bin/cfd_para_transonic.hypara"; +//string parafilename = "./bin/cfd_para_supersonic.hypara"; +string parafilename = "./bin/cfd_para_hypersonic.hypara"; +//string parafilename = "./bin/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/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/bin/partition.hypara b/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/bin/partition.hypara new file mode 100644 index 00000000..e44a7266 --- /dev/null +++ b/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/bin/partition.hypara @@ -0,0 +1,21 @@ +// pgridtype: The grid type. +// 0 -- unstruct grid. +// 1 -- struct grid. +// maxproc: The number of partition zones that want to be divided into, +// which is equal to the number of CPU processors you want. +// Usually, 50~100 thousands structured cells per CPU-Core is suggested. +// 30~70 thousands unstructured cells per CPU-Core is suggested. +// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts). +// partition_grid_file: Target partition grid file(PHengLEI type, *.fts). + +int pgridtype = 1; +int maxproc = 4; + +string original_grid_file = "./grid/2D_HEG_CYLINDER_65X88_DY2D-7.fts"; +string partition_grid_file = "./grid/2D_HEG_CYLINDER_65X88_DY2D-7__4.fts"; + +// numberOfMultigrid: Number of multi-grid levels, ONLY used for structured grid. +// 1 -- single level. +// 2 -- 2 level. +// N -- N level,..., et al. +int numberOfMultigrid = 1; diff --git a/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/grid/2D_HEG_CYLINDER_65X88_DY2D-7.grd b/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/grid/2D_HEG_CYLINDER_65X88_DY2D-7.grd new file mode 100644 index 00000000..8012f085 Binary files /dev/null and b/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/grid/2D_HEG_CYLINDER_65X88_DY2D-7.grd differ diff --git a/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/grid/2D_HEG_CYLINDER_65X88_DY2D-7.inp b/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/grid/2D_HEG_CYLINDER_65X88_DY2D-7.inp new file mode 100644 index 00000000..b9bc4f59 --- /dev/null +++ b/TwoD_Cylinder_Laminar_OneTemperMode_FCW_Struct/grid/2D_HEG_CYLINDER_65X88_DY2D-7.inp @@ -0,0 +1,9 @@ + 1 + 1 + 65 88 +A + 4 + 65 1 1 1 2 + 65 65 1 88 6 + 1 65 88 88 4 + 1 1 1 88 3 diff --git a/TwoD_LowMach_plate_SST_Struct/bin/cfd_para.hypara b/TwoD_LowMach_plate_SST_Struct/bin/cfd_para.hypara new file mode 100644 index 00000000..232e075f --- /dev/null +++ b/TwoD_LowMach_plate_SST_Struct/bin/cfd_para.hypara @@ -0,0 +1,809 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// 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, 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 = 0; +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 -- 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. +// 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. +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 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// .skl meaning skeleton. +string original_grid_info_file = "./grid/FLUENT_test.skl"; + +// 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. +// mixgrid_str_bc: path of structure grid boundary condition file 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. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Adaptive Mesh Refine ------------------------------- +// In this file, the original_grid_file is used of the partition part. +// If use it dependently, abstract it here. +string adapt_grid_file = "./grid/sphere_mixed_adapt1.fts"; +string geometryFileName = "./grid/jsm.igs"; + +// 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 geometryUnit = 1; +int anisoRefine = 0; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; // 0: NON case; 1: JSM-C2-NPOFF case; 2: CHNT. +int projectOrgPoint = 0; // if project original wall points. + +// ----------------- RBF Parameters ------------------------------------- +// symmetryPlane: Which symmetry plane is used in the mesh. +// 0 -- without symmetry. +// 1 -- plane of x=0. +// 2 -- plane of y=0. +// 3 -- plane of z=0. +int numberOfReferenceCP = 10; +double influenceRadius = 20; +int symmetryPlane = 3; // 1: plane of x=0; 2: plane of y=0; 3: plane of z=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. +int pgridtype = 0; +int maxproc = 4; + +// 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]; + +//----------------------------------------------------------------------- +# 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. +// 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: 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. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) + +int maxSimuStep = 20000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; +int ifLowSpeedPrecon = 0; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 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. +// 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. +// 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. +// 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. +// 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. + +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 10000.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)). + +//int inflowParaType = 3; +//int nsubsonicInlet = 1; +//int nsubsonicOutlet = 1; +//string inLetFileName = "./bin/subsonicInlet.hypara"; +//string outLetFileName = "./bin/subsonicOutlet.hypara"; +//double refDimensionalTemperature = 288.144; +//double refDimensionalPressure = 1.01313E05; + +double wallTemperature = -1.0; +int dump_Q = 0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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. + +// directionMethod: The method of determining direction. +// 1 -- using direciton. +// 2 -- using face normal. +// subsonicInletTotalPressure: The dimensional total pressure of subsonic inlet if height > 0, else non-dimensional. +// subsonicInletTotalTemperature: The dimensional total temperature of subsonic inlet if height > 0, else non-dimensional. +// direction_inlet: The direction of inlet. +// subsonicOutletTotalPressure: The dimensional total pressure of subsonic outlet if height > 0, else non-dimensional. +// subsonicOutletTotalTemperature: The dimensional total temperature of subsonic outlet if height > 0, else non-dimensional. +// direction_outlet: The direction of outlet. +int directionMethod = 2; +double subsonicInletTotalPressure = 1.2e6; +double subsonicInletTotalTemperature = 1300; +double direction_inlet[] = 1, 0, 0; + +double subsonicOutletTotalPressure = 17.8571428; +double subsonicOutletTotalTemperature = 1.0; +double direction_outlet[] = 1, 0, 0; + +//----------------------------------------------------------------------- +# 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". +// 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 inviscidSchemeName = "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. +// 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", "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. +// 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. + +//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 limit_angle = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 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 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. +// 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. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// iale: 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; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int startStatisticStep = 800000; + +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; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; + +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 timemax = 1.0e10; +double dtsave = -1.0; +int iale = 0; +int ialetype = 2; +int maxale = 10; +double dtau = 0.001; +double dtau_max = 1E-01; + +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! +// isPlotVolumeField: 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. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; + +int walldistMethod = 1; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "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 isPlotVolumeField = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. + +int visualfileType = 1; + +// 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 lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [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), vibration temperature(33), electron temperature(34), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44). +// 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]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +//----------------------------------------------------------------------- +# Turbulence Parameter # +//----------------------------------------------------------------------- +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// 1 -- Edwards. +// 2 -- new. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. + +int turbInterval = 1; +int turb_vis_kind = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double turb_relax = 1.0; +double turb_min_coef = 1.0e-1; +double freeStreamViscosity = 1.0e-3; +double muoo = 1.0e-1; +double kwoo = 1.0; + +# maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +double sdilim = 1.0e20; +double coef_kvist = 1.0; +int monitor_vistmax = 0; + +//----------------------------------------------------------------------- +# Other Parameter # +//----------------------------------------------------------------------- +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- NS. +// 1 -- MHD. +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int dg_high_order = 0; +int iapplication = 0; +int nm = 5; + +// MHD +double bxoo = 0.0; +double byoo = 0.0; +double bzoo = 0.0; + +double refGama = 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 = 1; +int nchemrad = 1; +int ntmodel = 1; +int nChemicalFlowStep = 0; +double catalyticCoef = 0.0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.77"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.77, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.77, 0.0"; + +int ifStartFromPerfectGasResults = 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 # +######################################################################### +// ifvfd: +// 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 ifvfd = 0; +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"; + +// ----------------- 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; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 2.329418E08; +//@double refDimensionalTemperature = 288.144; +//@double refDimensionalPressure = 1.01313E05; +//@double height = -0.001; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; diff --git a/TwoD_LowMach_plate_SST_Struct/bin/cfd_para_subsonic.hypara b/TwoD_LowMach_plate_SST_Struct/bin/cfd_para_subsonic.hypara new file mode 100644 index 00000000..a541eaf4 --- /dev/null +++ b/TwoD_LowMach_plate_SST_Struct/bin/cfd_para_subsonic.hypara @@ -0,0 +1,191 @@ +######################################################################### +# 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 = 100000; + +int intervalStepFlow = 5000; +int intervalStepPlot = 5000; +int intervalStepForce = 100; +int intervalStepRes = 100; + + +// ifLowSpeedPrecon: precondition to accelerate convergence for low speed flow. +// ONLY available for unstructured solver! +// 0 -- no precondition process (default, mach > 0.2). +// 1 -- carry out precondition process ( mach number < 0.2 ). +int ifLowSpeedPrecon = 0; + +######################################################################### +# Inflow Parameter # +######################################################################### +// refMachNumber: Mach number per meter. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// 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. +// inflowParaType: the type of inflow parameters. +// 0 - the nondimensional conditions. +// 1 - the flight conditions. +// height: Fly height, unit of km. +// gridScaleFactor: The customizable unit of the grid, default value 1.0 metre. +// forceRefenenceLength, forceRefenenceArea: Reference length and area, independent to grid scale. +// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent to grid scale. + +double refMachNumber = 0.2; +double attackd = 0.00; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 5.0e6; +double refDimensionalTemperature = 288.15; + +//int inflowParaType = 1; +//double height = 0.001; + +double gridScaleFactor = 0.001; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 2.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 iviscous = 0; +//string viscousName = "Euler"; + +//int iviscous = 1; +//string viscousName = "laminar"; + +//int iviscous = 3; +//string viscousName = "1eq-sa"; + +int viscousType = 4; +string viscousName = "2eq-kw-menter-sst"; + +int DESType = 0; + +int roeEntropyFixMethod = 2; +double roeEntropyScale = 1.0; +######################################################################### +# Spatial Discretisation # +######################################################################### +#******************************************************************* +# Struct Solver * +#******************************************************************* +// str_limiter_name: Limiter of struct grid +// - "3rdsmooth", "smooth" +// - "nolim" - no limiter + +string str_limiter_name = "nolim"; + +#******************************************************************* +# UnStruct Solver * +#******************************************************************* +// uns_limiter_name: Limiter of Unstruct grid +// - "vencat" +// - "1st", meaning accuracy of first-order. +// - "nolim", no limiter. +// venkatCoeff: Coefficient of vencat limiter, when uns_limiter_name = 'vencat' +// The smaller the value, the more robust it is. + +string uns_limiter_name = "vencat"; +double venkatCoeff = 50.0; + +######################################################################### +# Temporal Discretisation # +######################################################################### +// iunsteady: Steady or unsteady. +// 0 - steady +// 1 - unsteay +// CFLEnd: The CFL number, [0.1, 100] +// The bigger the value, the convergence faster but lower robustness. +// nLUSGSSweeps: Number of Sub-iteration of LU-SGS. +// 1 : is recommended for structured solver. +// 1-3: is recommended for unstructured solver. + +int iunsteady = 0; + +double CFLEnd = 500.0; + +int nLUSGSSweeps = 1; + +######################################################################### +# Multi-Grid parameters # +######################################################################### +// nMGLevel: The number of Multi-Grid level +// = 1 : Single level. +// > 1 : multi-level. +// flowInitStep: Flow initialization step, 0~500 is suggested. +// Multi-Grid : Number of steps computing on coarse grid, during flow initialization. +// Single-Grid: Number of steps computing using first-order with vanleer, during flow initialization. + +int nMGLevel = 1; +int flowInitStep = 100; + + +######################################################################### +# File In or Out # +######################################################################### +// gridfile: The partitioned Grid file path, using relative path, +// which is relative to the working directory. +// IMPORTANT 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! +// isPlotVolumeField: If dump out the whole field results to tecplot or not, 0/1. + +string gridfile = "./grid/Mesh4_137_97.fts"; +int isPlotVolumeField = 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[] = [0, 1, 2, 3, 4, 5, 6, 15]; + +// limitVariables: limit model. +// 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; + +double MUSCLCoefXk =0.333333; diff --git a/TwoD_LowMach_plate_SST_Struct/bin/grid_para.hypara b/TwoD_LowMach_plate_SST_Struct/bin/grid_para.hypara new file mode 100644 index 00000000..2510da2e --- /dev/null +++ b/TwoD_LowMach_plate_SST_Struct/bin/grid_para.hypara @@ -0,0 +1,34 @@ +######################################################################### +# 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 = 1; +int axisup = 1; +int from_gtype = 3; + +######################################################################### +# 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/Mesh4_137_97.grd"; +string out_gfile = "./grid/Mesh4_137_97.fts"; + + + + diff --git a/TwoD_LowMach_plate_SST_Struct/bin/key.hypara b/TwoD_LowMach_plate_SST_Struct/bin/key.hypara new file mode 100644 index 00000000..094591e5 --- /dev/null +++ b/TwoD_LowMach_plate_SST_Struct/bin/key.hypara @@ -0,0 +1,42 @@ +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/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/TwoD_LowMach_plate_SST_Struct/bin/partition.hypara b/TwoD_LowMach_plate_SST_Struct/bin/partition.hypara new file mode 100644 index 00000000..e46087ca --- /dev/null +++ b/TwoD_LowMach_plate_SST_Struct/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 = 1; +int maxproc = 1; + +string original_grid_file = "./grid/Mesh4_137_97.fts"; +string partition_grid_file = "./grid/Mesh4_137_97.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/TwoD_LowMach_plate_SST_Struct/grid/Mesh4_137_97.grd b/TwoD_LowMach_plate_SST_Struct/grid/Mesh4_137_97.grd new file mode 100644 index 00000000..c69890c1 Binary files /dev/null and b/TwoD_LowMach_plate_SST_Struct/grid/Mesh4_137_97.grd differ diff --git a/TwoD_LowMach_plate_SST_Struct/grid/Mesh4_137_97.inp b/TwoD_LowMach_plate_SST_Struct/grid/Mesh4_137_97.inp new file mode 100644 index 00000000..a4eee46d --- /dev/null +++ b/TwoD_LowMach_plate_SST_Struct/grid/Mesh4_137_97.inp @@ -0,0 +1,10 @@ + 1 + 1 + 137 97 +A + 5 + 1 25 1 1 3 + 25 137 1 1 2 + 137 137 1 97 6 + 1 137 97 97 4 + 1 1 1 97 4 diff --git a/TwoD_Plate_Laminar_Ma5_Struct_1CPU/bin/cfd_para.hypara b/TwoD_Plate_Laminar_Ma5_Struct_1CPU/bin/cfd_para.hypara new file mode 100644 index 00000000..232e075f --- /dev/null +++ b/TwoD_Plate_Laminar_Ma5_Struct_1CPU/bin/cfd_para.hypara @@ -0,0 +1,809 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// 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, 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 = 0; +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 -- 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. +// 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. +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 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// .skl meaning skeleton. +string original_grid_info_file = "./grid/FLUENT_test.skl"; + +// 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. +// mixgrid_str_bc: path of structure grid boundary condition file 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. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Adaptive Mesh Refine ------------------------------- +// In this file, the original_grid_file is used of the partition part. +// If use it dependently, abstract it here. +string adapt_grid_file = "./grid/sphere_mixed_adapt1.fts"; +string geometryFileName = "./grid/jsm.igs"; + +// 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 geometryUnit = 1; +int anisoRefine = 0; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; // 0: NON case; 1: JSM-C2-NPOFF case; 2: CHNT. +int projectOrgPoint = 0; // if project original wall points. + +// ----------------- RBF Parameters ------------------------------------- +// symmetryPlane: Which symmetry plane is used in the mesh. +// 0 -- without symmetry. +// 1 -- plane of x=0. +// 2 -- plane of y=0. +// 3 -- plane of z=0. +int numberOfReferenceCP = 10; +double influenceRadius = 20; +int symmetryPlane = 3; // 1: plane of x=0; 2: plane of y=0; 3: plane of z=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. +int pgridtype = 0; +int maxproc = 4; + +// 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]; + +//----------------------------------------------------------------------- +# 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. +// 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: 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. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) + +int maxSimuStep = 20000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; +int ifLowSpeedPrecon = 0; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 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. +// 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. +// 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. +// 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. +// 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. + +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 10000.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)). + +//int inflowParaType = 3; +//int nsubsonicInlet = 1; +//int nsubsonicOutlet = 1; +//string inLetFileName = "./bin/subsonicInlet.hypara"; +//string outLetFileName = "./bin/subsonicOutlet.hypara"; +//double refDimensionalTemperature = 288.144; +//double refDimensionalPressure = 1.01313E05; + +double wallTemperature = -1.0; +int dump_Q = 0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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. + +// directionMethod: The method of determining direction. +// 1 -- using direciton. +// 2 -- using face normal. +// subsonicInletTotalPressure: The dimensional total pressure of subsonic inlet if height > 0, else non-dimensional. +// subsonicInletTotalTemperature: The dimensional total temperature of subsonic inlet if height > 0, else non-dimensional. +// direction_inlet: The direction of inlet. +// subsonicOutletTotalPressure: The dimensional total pressure of subsonic outlet if height > 0, else non-dimensional. +// subsonicOutletTotalTemperature: The dimensional total temperature of subsonic outlet if height > 0, else non-dimensional. +// direction_outlet: The direction of outlet. +int directionMethod = 2; +double subsonicInletTotalPressure = 1.2e6; +double subsonicInletTotalTemperature = 1300; +double direction_inlet[] = 1, 0, 0; + +double subsonicOutletTotalPressure = 17.8571428; +double subsonicOutletTotalTemperature = 1.0; +double direction_outlet[] = 1, 0, 0; + +//----------------------------------------------------------------------- +# 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". +// 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 inviscidSchemeName = "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. +// 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", "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. +// 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. + +//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 limit_angle = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 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 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. +// 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. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// iale: 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; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int startStatisticStep = 800000; + +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; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; + +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 timemax = 1.0e10; +double dtsave = -1.0; +int iale = 0; +int ialetype = 2; +int maxale = 10; +double dtau = 0.001; +double dtau_max = 1E-01; + +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! +// isPlotVolumeField: 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. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; + +int walldistMethod = 1; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "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 isPlotVolumeField = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. + +int visualfileType = 1; + +// 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 lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [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), vibration temperature(33), electron temperature(34), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44). +// 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]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +//----------------------------------------------------------------------- +# Turbulence Parameter # +//----------------------------------------------------------------------- +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// 1 -- Edwards. +// 2 -- new. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. + +int turbInterval = 1; +int turb_vis_kind = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double turb_relax = 1.0; +double turb_min_coef = 1.0e-1; +double freeStreamViscosity = 1.0e-3; +double muoo = 1.0e-1; +double kwoo = 1.0; + +# maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +double sdilim = 1.0e20; +double coef_kvist = 1.0; +int monitor_vistmax = 0; + +//----------------------------------------------------------------------- +# Other Parameter # +//----------------------------------------------------------------------- +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- NS. +// 1 -- MHD. +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int dg_high_order = 0; +int iapplication = 0; +int nm = 5; + +// MHD +double bxoo = 0.0; +double byoo = 0.0; +double bzoo = 0.0; + +double refGama = 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 = 1; +int nchemrad = 1; +int ntmodel = 1; +int nChemicalFlowStep = 0; +double catalyticCoef = 0.0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.77"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.77, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.77, 0.0"; + +int ifStartFromPerfectGasResults = 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 # +######################################################################### +// ifvfd: +// 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 ifvfd = 0; +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"; + +// ----------------- 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; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 2.329418E08; +//@double refDimensionalTemperature = 288.144; +//@double refDimensionalPressure = 1.01313E05; +//@double height = -0.001; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; diff --git a/TwoD_Plate_Laminar_Ma5_Struct_1CPU/bin/cfd_para_hypersonic.hypara b/TwoD_Plate_Laminar_Ma5_Struct_1CPU/bin/cfd_para_hypersonic.hypara new file mode 100644 index 00000000..b8cd2f43 --- /dev/null +++ b/TwoD_Plate_Laminar_Ma5_Struct_1CPU/bin/cfd_para_hypersonic.hypara @@ -0,0 +1,193 @@ +######################################################################### +# 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 = 50000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; + +######################################################################### +# Inflow Parameter # +######################################################################### +// refMachNumber: Mach number per meter. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// 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. +// inflowParaType: the type of inflow parameters. +// 0 - the nondimensional conditions. +// 1 - the flight conditions. +// 2 - the experiment conditions. +// height: Fly height, unit of km. +// wallTemperature: 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. +// gridScaleFactor: The customizable unit of the grid, default value 1.0 metre. +// forceRefenenceLength, forceRefenenceArea: Reference length and area, independent to grid scale. +// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent to grid scale. + +double refMachNumber = 5.00; +double attackd = 0.00; +double angleSlide = 0.00; + +double wallTemperature = 327.36; +int dump_Q = 0; + +int inflowParaType = 0; +double refReNumber = 1.5e7; +double refDimensionalTemperature = 300.33; + +//int inflowParaType = 1; +//double height = 0.001; + +//int inflowParaType = 2; +//double refDimensionalTemperature = 6051.024; //the total temperature, T*(1+(gama0-1)*M*M/2). +//double refDimensionalPressure = 4.299696E09; //the total pressure, p*(T0/T)^(gama0/(gama0-1)). + +double gridScaleFactor = 0.001; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 2.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 iviscous = 0; +//string viscousName = "Euler"; + +int viscousType = 1; +string viscousName = "laminar"; + +//int iviscous = 3; +//string viscousName = "1eq-sa"; + +//int iviscous = 4; +//string viscousName = "2eq-kw-menter-sst"; + +int DESType = 0; + +int roeEntropyFixMethod = 2; +double roeEntropyScale = 0.0002; +######################################################################### +# Spatial Discretisation # +######################################################################### +#******************************************************************* +# Struct Solver * +#******************************************************************* +// inviscidSchemeName: Spatial discretisation scheme of struct grid +// Using this when solve structered grid or hybrid. +// - "vanleer", "steger", "ausmpw" +// str_limiter_name: Limiter of struct grid +// - "minmod", "3rd_minmod_smooth" + +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 = "vanleer"; +string uns_limiter_name = "vencat"; +double venkatCoeff = 0.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. +// ktmax: The lower the value, the more robustness, 1.0e5 ~ 1.0e10. + +int iunsteady = 0; + +double CFLEnd = 100; +int CFLVaryStep = 500; +double ktmax = 1.0e10; + + +######################################################################### +# 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! +// isPlotVolumeField: If dump out the whole field results to tecplot or not, 0/1. + +string gridfile = "./grid/plate_137_97.fts"; +int isPlotVolumeField = 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[] = [0, 1, 2, 3, 4, 5, 6, 15]; + +// limitVariables: limit model. +// 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 = 0; +int limitVariables = 0; +int limitVector = 1; + +double MUSCLCoefXk = 0.333333; diff --git a/TwoD_Plate_Laminar_Ma5_Struct_1CPU/bin/grid_para.hypara b/TwoD_Plate_Laminar_Ma5_Struct_1CPU/bin/grid_para.hypara new file mode 100644 index 00000000..d17f48d5 --- /dev/null +++ b/TwoD_Plate_Laminar_Ma5_Struct_1CPU/bin/grid_para.hypara @@ -0,0 +1,34 @@ +######################################################################### +# 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 = 1; +int axisup = 1; +int from_gtype = 3; + +######################################################################### +# 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/plate_137_97.grd"; +string out_gfile = "./grid/plate_137_97.fts"; + + + + diff --git a/TwoD_Plate_Laminar_Ma5_Struct_1CPU/bin/key.hypara b/TwoD_Plate_Laminar_Ma5_Struct_1CPU/bin/key.hypara new file mode 100644 index 00000000..8a53b662 --- /dev/null +++ b/TwoD_Plate_Laminar_Ma5_Struct_1CPU/bin/key.hypara @@ -0,0 +1,42 @@ +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_hypersonic.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/TwoD_Plate_Laminar_Ma5_Struct_1CPU/bin/partition.hypara b/TwoD_Plate_Laminar_Ma5_Struct_1CPU/bin/partition.hypara new file mode 100644 index 00000000..36ee4525 --- /dev/null +++ b/TwoD_Plate_Laminar_Ma5_Struct_1CPU/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 = 1; +int maxproc = 1; + +string original_grid_file = "./grid/plate_137_97.fts"; +string partition_grid_file = "./grid/plate_137_97.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/TwoD_Plate_Laminar_Ma5_Struct_1CPU/grid/plate_137_97.grd b/TwoD_Plate_Laminar_Ma5_Struct_1CPU/grid/plate_137_97.grd new file mode 100644 index 00000000..c69890c1 Binary files /dev/null and b/TwoD_Plate_Laminar_Ma5_Struct_1CPU/grid/plate_137_97.grd differ diff --git a/TwoD_Plate_Laminar_Ma5_Struct_1CPU/grid/plate_137_97.inp b/TwoD_Plate_Laminar_Ma5_Struct_1CPU/grid/plate_137_97.inp new file mode 100644 index 00000000..a4eee46d --- /dev/null +++ b/TwoD_Plate_Laminar_Ma5_Struct_1CPU/grid/plate_137_97.inp @@ -0,0 +1,10 @@ + 1 + 1 + 137 97 +A + 5 + 1 25 1 1 3 + 25 137 1 1 2 + 137 137 1 97 6 + 1 137 97 97 4 + 1 1 1 97 4 diff --git a/TwoD_Plate_Laminar_Struct_1CPU/bin/cfd_para.hypara b/TwoD_Plate_Laminar_Struct_1CPU/bin/cfd_para.hypara new file mode 100644 index 00000000..232e075f --- /dev/null +++ b/TwoD_Plate_Laminar_Struct_1CPU/bin/cfd_para.hypara @@ -0,0 +1,809 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// 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, 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 = 0; +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 -- 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. +// 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. +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 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// .skl meaning skeleton. +string original_grid_info_file = "./grid/FLUENT_test.skl"; + +// 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. +// mixgrid_str_bc: path of structure grid boundary condition file 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. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Adaptive Mesh Refine ------------------------------- +// In this file, the original_grid_file is used of the partition part. +// If use it dependently, abstract it here. +string adapt_grid_file = "./grid/sphere_mixed_adapt1.fts"; +string geometryFileName = "./grid/jsm.igs"; + +// 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 geometryUnit = 1; +int anisoRefine = 0; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; // 0: NON case; 1: JSM-C2-NPOFF case; 2: CHNT. +int projectOrgPoint = 0; // if project original wall points. + +// ----------------- RBF Parameters ------------------------------------- +// symmetryPlane: Which symmetry plane is used in the mesh. +// 0 -- without symmetry. +// 1 -- plane of x=0. +// 2 -- plane of y=0. +// 3 -- plane of z=0. +int numberOfReferenceCP = 10; +double influenceRadius = 20; +int symmetryPlane = 3; // 1: plane of x=0; 2: plane of y=0; 3: plane of z=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. +int pgridtype = 0; +int maxproc = 4; + +// 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]; + +//----------------------------------------------------------------------- +# 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. +// 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: 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. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) + +int maxSimuStep = 20000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; +int ifLowSpeedPrecon = 0; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 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. +// 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. +// 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. +// 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. +// 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. + +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 10000.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)). + +//int inflowParaType = 3; +//int nsubsonicInlet = 1; +//int nsubsonicOutlet = 1; +//string inLetFileName = "./bin/subsonicInlet.hypara"; +//string outLetFileName = "./bin/subsonicOutlet.hypara"; +//double refDimensionalTemperature = 288.144; +//double refDimensionalPressure = 1.01313E05; + +double wallTemperature = -1.0; +int dump_Q = 0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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. + +// directionMethod: The method of determining direction. +// 1 -- using direciton. +// 2 -- using face normal. +// subsonicInletTotalPressure: The dimensional total pressure of subsonic inlet if height > 0, else non-dimensional. +// subsonicInletTotalTemperature: The dimensional total temperature of subsonic inlet if height > 0, else non-dimensional. +// direction_inlet: The direction of inlet. +// subsonicOutletTotalPressure: The dimensional total pressure of subsonic outlet if height > 0, else non-dimensional. +// subsonicOutletTotalTemperature: The dimensional total temperature of subsonic outlet if height > 0, else non-dimensional. +// direction_outlet: The direction of outlet. +int directionMethod = 2; +double subsonicInletTotalPressure = 1.2e6; +double subsonicInletTotalTemperature = 1300; +double direction_inlet[] = 1, 0, 0; + +double subsonicOutletTotalPressure = 17.8571428; +double subsonicOutletTotalTemperature = 1.0; +double direction_outlet[] = 1, 0, 0; + +//----------------------------------------------------------------------- +# 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". +// 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 inviscidSchemeName = "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. +// 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", "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. +// 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. + +//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 limit_angle = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 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 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. +// 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. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// iale: 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; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int startStatisticStep = 800000; + +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; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; + +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 timemax = 1.0e10; +double dtsave = -1.0; +int iale = 0; +int ialetype = 2; +int maxale = 10; +double dtau = 0.001; +double dtau_max = 1E-01; + +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! +// isPlotVolumeField: 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. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; + +int walldistMethod = 1; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "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 isPlotVolumeField = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. + +int visualfileType = 1; + +// 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 lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [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), vibration temperature(33), electron temperature(34), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44). +// 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]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +//----------------------------------------------------------------------- +# Turbulence Parameter # +//----------------------------------------------------------------------- +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// 1 -- Edwards. +// 2 -- new. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. + +int turbInterval = 1; +int turb_vis_kind = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double turb_relax = 1.0; +double turb_min_coef = 1.0e-1; +double freeStreamViscosity = 1.0e-3; +double muoo = 1.0e-1; +double kwoo = 1.0; + +# maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +double sdilim = 1.0e20; +double coef_kvist = 1.0; +int monitor_vistmax = 0; + +//----------------------------------------------------------------------- +# Other Parameter # +//----------------------------------------------------------------------- +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- NS. +// 1 -- MHD. +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int dg_high_order = 0; +int iapplication = 0; +int nm = 5; + +// MHD +double bxoo = 0.0; +double byoo = 0.0; +double bzoo = 0.0; + +double refGama = 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 = 1; +int nchemrad = 1; +int ntmodel = 1; +int nChemicalFlowStep = 0; +double catalyticCoef = 0.0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.77"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.77, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.77, 0.0"; + +int ifStartFromPerfectGasResults = 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 # +######################################################################### +// ifvfd: +// 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 ifvfd = 0; +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"; + +// ----------------- 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; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 2.329418E08; +//@double refDimensionalTemperature = 288.144; +//@double refDimensionalPressure = 1.01313E05; +//@double height = -0.001; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; diff --git a/TwoD_Plate_Laminar_Struct_1CPU/bin/cfd_para_subsonic.hypara b/TwoD_Plate_Laminar_Struct_1CPU/bin/cfd_para_subsonic.hypara new file mode 100644 index 00000000..4c3dc1bf --- /dev/null +++ b/TwoD_Plate_Laminar_Struct_1CPU/bin/cfd_para_subsonic.hypara @@ -0,0 +1,193 @@ +######################################################################### +# 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 = 150000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; + + +// ifLowSpeedPrecon: precondition to accelerate convergence for low speed flow. +// ONLY available for unstructured solver! +// 0 -- no precondition process (default, mach > 0.2). +// 1 -- carry out precondition process ( mach number < 0.2 ). +int ifLowSpeedPrecon = 0; + +######################################################################### +# Inflow Parameter # +######################################################################### +// refMachNumber: Mach number per meter. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// 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. +// inflowParaType: the type of inflow parameters. +// 0 - the nondimensional conditions. +// 1 - the flight conditions. +// height: Fly height, unit of km. +// gridScaleFactor: The customizable unit of the grid, default value 1.0 metre. +// forceRefenenceLength, forceRefenenceArea: Reference length and area, independent to grid scale. +// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent to grid scale. + +double refMachNumber = 0.1; +double attackd = 0.00; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 2.0e5; +double refDimensionalTemperature = 288.15; + +//int inflowParaType = 1; +//double height = 0.001; + +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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 iviscous = 0; +//string viscousName = "Euler"; + +int viscousType = 1; +string viscousName = "laminar"; + +//int iviscous = 3; +//string viscousName = "1eq-sa"; + +//int iviscous = 4; +//string viscousName = "2eq-kw-menter-sst"; + +int DESType = 0; + +int roeEntropyFixMethod = 2; +double roeEntropyScale = 1.0; +######################################################################### +# Spatial Discretisation # +######################################################################### +#******************************************************************* +# Struct Solver * +#******************************************************************* +// str_limiter_name: Limiter of struct grid +// - "3rdsmooth", "smooth" +// - "nolim" - no limiter + +string str_limiter_name = "nolim"; + +#******************************************************************* +# UnStruct Solver * +#******************************************************************* +// uns_limiter_name: Limiter of Unstruct grid +// - "vencat" +// - "1st", meaning accuracy of first-order. +// - "nolim", no limiter. +// venkatCoeff: Coefficient of vencat limiter, when uns_limiter_name = 'vencat' +// The smaller the value, the more robust it is. + +string uns_limiter_name = "vencat"; +double venkatCoeff = 50.0; + +######################################################################### +# Temporal Discretisation # +######################################################################### +// iunsteady: Steady or unsteady. +// 0 - steady +// 1 - unsteay +// CFLEnd: The CFL number, [0.1, 100] +// The bigger the value, the convergence faster but lower robustness. +// nLUSGSSweeps: Number of Sub-iteration of LU-SGS. +// 1 : is recommended for structured solver. +// 1-3: is recommended for unstructured solver. + +int iunsteady = 0; + +double CFLEnd = 100.0; + +int nLUSGSSweeps = 1; + +######################################################################### +# Multi-Grid parameters # +######################################################################### +// nMGLevel: The number of Multi-Grid level +// = 1 : Single level. +// > 1 : multi-level. +// flowInitStep: Flow initialization step, 0~500 is suggested. +// Multi-Grid : Number of steps computing on coarse grid, during flow initialization. +// Single-Grid: Number of steps computing using first-order with vanleer, during flow initialization. + +int nMGLevel = 1; +int flowInitStep = 100; + + +######################################################################### +# File In or Out # +######################################################################### +// gridfile: The partitioned Grid file path, using relative path, +// which is relative to the working directory. +// IMPORTANT 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! +// isPlotVolumeField: If dump out the whole field results to tecplot or not, 0/1. + +string gridfile = "./grid/flat_laminar_73_81.fts"; +int isPlotVolumeField = 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[] = [0, 1, 2, 3, 4, 5, 6, 15]; + +// limitVariables: limit model. +// 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; + +double MUSCLCoefXk = 0.333333; + + diff --git a/TwoD_Plate_Laminar_Struct_1CPU/bin/grid_para.hypara b/TwoD_Plate_Laminar_Struct_1CPU/bin/grid_para.hypara new file mode 100644 index 00000000..da1ffb3c --- /dev/null +++ b/TwoD_Plate_Laminar_Struct_1CPU/bin/grid_para.hypara @@ -0,0 +1,34 @@ +######################################################################### +# 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 = 1; +int axisup = 1; +int from_gtype = 3; + +######################################################################### +# 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/flat_laminar_73_81.grd"; +string out_gfile = "./grid/flat_laminar_73_81.fts"; + + + + diff --git a/TwoD_Plate_Laminar_Struct_1CPU/bin/key.hypara b/TwoD_Plate_Laminar_Struct_1CPU/bin/key.hypara new file mode 100644 index 00000000..08dcaa58 --- /dev/null +++ b/TwoD_Plate_Laminar_Struct_1CPU/bin/key.hypara @@ -0,0 +1,41 @@ +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/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 = "./bin/cfd_para.hypara" +string parafilename2 = "./bin/cfd_para.hypara"; diff --git a/TwoD_Plate_Laminar_Struct_1CPU/bin/partition.hypara b/TwoD_Plate_Laminar_Struct_1CPU/bin/partition.hypara new file mode 100644 index 00000000..e0d31b00 --- /dev/null +++ b/TwoD_Plate_Laminar_Struct_1CPU/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 = 1; +int maxproc = 1; + +string original_grid_file = "./grid/flat_laminar_73_81.fts"; +string partition_grid_file = "./grid/flat_laminar_73_81.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/TwoD_Plate_Laminar_Struct_1CPU/grid/flat_laminar_73_81.grd b/TwoD_Plate_Laminar_Struct_1CPU/grid/flat_laminar_73_81.grd new file mode 100644 index 00000000..1665f258 Binary files /dev/null and b/TwoD_Plate_Laminar_Struct_1CPU/grid/flat_laminar_73_81.grd differ diff --git a/TwoD_Plate_Laminar_Struct_1CPU/grid/flat_laminar_73_81.inp b/TwoD_Plate_Laminar_Struct_1CPU/grid/flat_laminar_73_81.inp new file mode 100644 index 00000000..93764e61 --- /dev/null +++ b/TwoD_Plate_Laminar_Struct_1CPU/grid/flat_laminar_73_81.inp @@ -0,0 +1,11 @@ + 1 + 1 + 73 81 +A + 6 + 1 33 1 1 3 + 33 73 1 1 2 + 73 73 1 81 6 + 33 73 81 81 4 + 1 33 81 81 4 + 1 1 81 1 5 diff --git a/TwoD_Plate_SST_Ma5_Struct_1CPU/bin/cfd_para.hypara b/TwoD_Plate_SST_Ma5_Struct_1CPU/bin/cfd_para.hypara new file mode 100644 index 00000000..232e075f --- /dev/null +++ b/TwoD_Plate_SST_Ma5_Struct_1CPU/bin/cfd_para.hypara @@ -0,0 +1,809 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// 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, 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 = 0; +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 -- 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. +// 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. +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 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// .skl meaning skeleton. +string original_grid_info_file = "./grid/FLUENT_test.skl"; + +// 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. +// mixgrid_str_bc: path of structure grid boundary condition file 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. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Adaptive Mesh Refine ------------------------------- +// In this file, the original_grid_file is used of the partition part. +// If use it dependently, abstract it here. +string adapt_grid_file = "./grid/sphere_mixed_adapt1.fts"; +string geometryFileName = "./grid/jsm.igs"; + +// 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 geometryUnit = 1; +int anisoRefine = 0; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; // 0: NON case; 1: JSM-C2-NPOFF case; 2: CHNT. +int projectOrgPoint = 0; // if project original wall points. + +// ----------------- RBF Parameters ------------------------------------- +// symmetryPlane: Which symmetry plane is used in the mesh. +// 0 -- without symmetry. +// 1 -- plane of x=0. +// 2 -- plane of y=0. +// 3 -- plane of z=0. +int numberOfReferenceCP = 10; +double influenceRadius = 20; +int symmetryPlane = 3; // 1: plane of x=0; 2: plane of y=0; 3: plane of z=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. +int pgridtype = 0; +int maxproc = 4; + +// 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]; + +//----------------------------------------------------------------------- +# 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. +// 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: 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. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) + +int maxSimuStep = 20000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; +int ifLowSpeedPrecon = 0; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 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. +// 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. +// 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. +// 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. +// 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. + +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 10000.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)). + +//int inflowParaType = 3; +//int nsubsonicInlet = 1; +//int nsubsonicOutlet = 1; +//string inLetFileName = "./bin/subsonicInlet.hypara"; +//string outLetFileName = "./bin/subsonicOutlet.hypara"; +//double refDimensionalTemperature = 288.144; +//double refDimensionalPressure = 1.01313E05; + +double wallTemperature = -1.0; +int dump_Q = 0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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. + +// directionMethod: The method of determining direction. +// 1 -- using direciton. +// 2 -- using face normal. +// subsonicInletTotalPressure: The dimensional total pressure of subsonic inlet if height > 0, else non-dimensional. +// subsonicInletTotalTemperature: The dimensional total temperature of subsonic inlet if height > 0, else non-dimensional. +// direction_inlet: The direction of inlet. +// subsonicOutletTotalPressure: The dimensional total pressure of subsonic outlet if height > 0, else non-dimensional. +// subsonicOutletTotalTemperature: The dimensional total temperature of subsonic outlet if height > 0, else non-dimensional. +// direction_outlet: The direction of outlet. +int directionMethod = 2; +double subsonicInletTotalPressure = 1.2e6; +double subsonicInletTotalTemperature = 1300; +double direction_inlet[] = 1, 0, 0; + +double subsonicOutletTotalPressure = 17.8571428; +double subsonicOutletTotalTemperature = 1.0; +double direction_outlet[] = 1, 0, 0; + +//----------------------------------------------------------------------- +# 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". +// 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 inviscidSchemeName = "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. +// 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", "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. +// 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. + +//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 limit_angle = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 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 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. +// 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. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// iale: 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; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int startStatisticStep = 800000; + +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; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; + +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 timemax = 1.0e10; +double dtsave = -1.0; +int iale = 0; +int ialetype = 2; +int maxale = 10; +double dtau = 0.001; +double dtau_max = 1E-01; + +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! +// isPlotVolumeField: 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. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; + +int walldistMethod = 1; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "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 isPlotVolumeField = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. + +int visualfileType = 1; + +// 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 lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [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), vibration temperature(33), electron temperature(34), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44). +// 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]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +//----------------------------------------------------------------------- +# Turbulence Parameter # +//----------------------------------------------------------------------- +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// 1 -- Edwards. +// 2 -- new. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. + +int turbInterval = 1; +int turb_vis_kind = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double turb_relax = 1.0; +double turb_min_coef = 1.0e-1; +double freeStreamViscosity = 1.0e-3; +double muoo = 1.0e-1; +double kwoo = 1.0; + +# maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +double sdilim = 1.0e20; +double coef_kvist = 1.0; +int monitor_vistmax = 0; + +//----------------------------------------------------------------------- +# Other Parameter # +//----------------------------------------------------------------------- +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- NS. +// 1 -- MHD. +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int dg_high_order = 0; +int iapplication = 0; +int nm = 5; + +// MHD +double bxoo = 0.0; +double byoo = 0.0; +double bzoo = 0.0; + +double refGama = 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 = 1; +int nchemrad = 1; +int ntmodel = 1; +int nChemicalFlowStep = 0; +double catalyticCoef = 0.0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.77"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.77, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.77, 0.0"; + +int ifStartFromPerfectGasResults = 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 # +######################################################################### +// ifvfd: +// 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 ifvfd = 0; +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"; + +// ----------------- 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; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 2.329418E08; +//@double refDimensionalTemperature = 288.144; +//@double refDimensionalPressure = 1.01313E05; +//@double height = -0.001; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; diff --git a/TwoD_Plate_SST_Ma5_Struct_1CPU/bin/cfd_para_supersonic.hypara b/TwoD_Plate_SST_Ma5_Struct_1CPU/bin/cfd_para_supersonic.hypara new file mode 100644 index 00000000..ceb16926 --- /dev/null +++ b/TwoD_Plate_SST_Ma5_Struct_1CPU/bin/cfd_para_supersonic.hypara @@ -0,0 +1,193 @@ +######################################################################### +# 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 = 20000; + +int intervalStepFlow = 2000; +int intervalStepPlot = 2000; +int intervalStepForce = 100; +int intervalStepRes = 10; + +######################################################################### +# Inflow Parameter # +######################################################################### +// refMachNumber: Mach number per meter. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// 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. +// inflowParaType: the type of inflow parameters. +// 0 - the nondimensional conditions. +// 1 - the flight conditions. +// 2 - the experiment conditions. +// height: Fly height, unit of km. +// wallTemperature: 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. +// gridScaleFactor: The customizable unit of the grid, default value 1.0 metre. +// forceRefenenceLength, forceRefenenceArea: Reference length and area, independent to grid scale. +// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent to grid scale. + +double refMachNumber = 5.00; +double attackd = 0.00; +double angleSlide = 0.00; + +double wallTemperature = 327.36; +int dump_Q = 0; + +int inflowParaType = 0; +double refReNumber = 1.5e7; +double refDimensionalTemperature = 300.33; + +//int inflowParaType = 1; +//double height = 0.001; + +//int inflowParaType = 2; +//double refDimensionalTemperature = 6051.024; //the total temperature, T*(1+(gama0-1)*M*M/2). +//double refDimensionalPressure = 4.299696E09; //the total pressure, p*(T0/T)^(gama0/(gama0-1)). + +double gridScaleFactor = 0.001; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 2.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 iviscous = 0; +//string viscousName = "Euler"; + +//int iviscous = 1; +//string viscousName = "laminar"; + +//int iviscous = 3; +//string viscousName = "1eq-sa"; + +int viscousType = 4; +string viscousName = "2eq-kw-menter-sst"; + +int DESType = 0; + +int roeEntropyFixMethod = 2; +double roeEntropyScale = 1.0; +######################################################################### +# Spatial Discretisation # +######################################################################### +#******************************************************************* +# Struct Solver * +#******************************************************************* +// inviscidSchemeName: Spatial discretisation scheme of struct grid +// Using this when solve structered grid or hybrid. +// - "vanleer", "steger", "ausmpw" +// str_limiter_name: Limiter of struct grid +// - "minmod", "3rd_minmod_smooth" + +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 = "vanleer"; +string uns_limiter_name = "vencat"; +double venkatCoeff = 0.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. +// ktmax: The lower the value, the more robustness, 1.0e5 ~ 1.0e10. + +int iunsteady = 0; + +double CFLEnd = 50.0; + +double ktmax = 1.0e10; + + +######################################################################### +# 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! +// isPlotVolumeField: If dump out the whole field results to tecplot or not, 0/1. + +string gridfile = "./grid/Mesh4_137_97.fts"; +int isPlotVolumeField = 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[] = [0, 1, 2, 3, 4, 5, 6, 15]; + +// limitVariables: limit model. +// 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 = 0; +int limitVariables = 0; +int limitVector = 1; + +double MUSCLCoefXk = 0.333333; diff --git a/TwoD_Plate_SST_Ma5_Struct_1CPU/bin/grid_para.hypara b/TwoD_Plate_SST_Ma5_Struct_1CPU/bin/grid_para.hypara new file mode 100644 index 00000000..2510da2e --- /dev/null +++ b/TwoD_Plate_SST_Ma5_Struct_1CPU/bin/grid_para.hypara @@ -0,0 +1,34 @@ +######################################################################### +# 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 = 1; +int axisup = 1; +int from_gtype = 3; + +######################################################################### +# 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/Mesh4_137_97.grd"; +string out_gfile = "./grid/Mesh4_137_97.fts"; + + + + diff --git a/TwoD_Plate_SST_Ma5_Struct_1CPU/bin/key.hypara b/TwoD_Plate_SST_Ma5_Struct_1CPU/bin/key.hypara new file mode 100644 index 00000000..89387e34 --- /dev/null +++ b/TwoD_Plate_SST_Ma5_Struct_1CPU/bin/key.hypara @@ -0,0 +1,42 @@ +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_supersonic.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/TwoD_Plate_SST_Ma5_Struct_1CPU/bin/partition.hypara b/TwoD_Plate_SST_Ma5_Struct_1CPU/bin/partition.hypara new file mode 100644 index 00000000..e46087ca --- /dev/null +++ b/TwoD_Plate_SST_Ma5_Struct_1CPU/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 = 1; +int maxproc = 1; + +string original_grid_file = "./grid/Mesh4_137_97.fts"; +string partition_grid_file = "./grid/Mesh4_137_97.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/TwoD_Plate_SST_Ma5_Struct_1CPU/grid/Mesh4_137_97.grd b/TwoD_Plate_SST_Ma5_Struct_1CPU/grid/Mesh4_137_97.grd new file mode 100644 index 00000000..c69890c1 Binary files /dev/null and b/TwoD_Plate_SST_Ma5_Struct_1CPU/grid/Mesh4_137_97.grd differ diff --git a/TwoD_Plate_SST_Ma5_Struct_1CPU/grid/Mesh4_137_97.inp b/TwoD_Plate_SST_Ma5_Struct_1CPU/grid/Mesh4_137_97.inp new file mode 100644 index 00000000..a4eee46d --- /dev/null +++ b/TwoD_Plate_SST_Ma5_Struct_1CPU/grid/Mesh4_137_97.inp @@ -0,0 +1,10 @@ + 1 + 1 + 137 97 +A + 5 + 1 25 1 1 3 + 25 137 1 1 2 + 137 137 1 97 6 + 1 137 97 97 4 + 1 1 1 97 4 diff --git a/TwoD_Rae2822_SST_Struct/bin/cfd_para.hypara b/TwoD_Rae2822_SST_Struct/bin/cfd_para.hypara new file mode 100644 index 00000000..232e075f --- /dev/null +++ b/TwoD_Rae2822_SST_Struct/bin/cfd_para.hypara @@ -0,0 +1,809 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// 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, 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 = 0; +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 -- 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. +// 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. +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 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// .skl meaning skeleton. +string original_grid_info_file = "./grid/FLUENT_test.skl"; + +// 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. +// mixgrid_str_bc: path of structure grid boundary condition file 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. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Adaptive Mesh Refine ------------------------------- +// In this file, the original_grid_file is used of the partition part. +// If use it dependently, abstract it here. +string adapt_grid_file = "./grid/sphere_mixed_adapt1.fts"; +string geometryFileName = "./grid/jsm.igs"; + +// 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 geometryUnit = 1; +int anisoRefine = 0; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; // 0: NON case; 1: JSM-C2-NPOFF case; 2: CHNT. +int projectOrgPoint = 0; // if project original wall points. + +// ----------------- RBF Parameters ------------------------------------- +// symmetryPlane: Which symmetry plane is used in the mesh. +// 0 -- without symmetry. +// 1 -- plane of x=0. +// 2 -- plane of y=0. +// 3 -- plane of z=0. +int numberOfReferenceCP = 10; +double influenceRadius = 20; +int symmetryPlane = 3; // 1: plane of x=0; 2: plane of y=0; 3: plane of z=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. +int pgridtype = 0; +int maxproc = 4; + +// 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]; + +//----------------------------------------------------------------------- +# 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. +// 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: 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. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) + +int maxSimuStep = 20000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; +int ifLowSpeedPrecon = 0; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 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. +// 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. +// 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. +// 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. +// 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. + +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 10000.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)). + +//int inflowParaType = 3; +//int nsubsonicInlet = 1; +//int nsubsonicOutlet = 1; +//string inLetFileName = "./bin/subsonicInlet.hypara"; +//string outLetFileName = "./bin/subsonicOutlet.hypara"; +//double refDimensionalTemperature = 288.144; +//double refDimensionalPressure = 1.01313E05; + +double wallTemperature = -1.0; +int dump_Q = 0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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. + +// directionMethod: The method of determining direction. +// 1 -- using direciton. +// 2 -- using face normal. +// subsonicInletTotalPressure: The dimensional total pressure of subsonic inlet if height > 0, else non-dimensional. +// subsonicInletTotalTemperature: The dimensional total temperature of subsonic inlet if height > 0, else non-dimensional. +// direction_inlet: The direction of inlet. +// subsonicOutletTotalPressure: The dimensional total pressure of subsonic outlet if height > 0, else non-dimensional. +// subsonicOutletTotalTemperature: The dimensional total temperature of subsonic outlet if height > 0, else non-dimensional. +// direction_outlet: The direction of outlet. +int directionMethod = 2; +double subsonicInletTotalPressure = 1.2e6; +double subsonicInletTotalTemperature = 1300; +double direction_inlet[] = 1, 0, 0; + +double subsonicOutletTotalPressure = 17.8571428; +double subsonicOutletTotalTemperature = 1.0; +double direction_outlet[] = 1, 0, 0; + +//----------------------------------------------------------------------- +# 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". +// 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 inviscidSchemeName = "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. +// 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", "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. +// 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. + +//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 limit_angle = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 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 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. +// 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. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// iale: 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; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int startStatisticStep = 800000; + +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; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; + +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 timemax = 1.0e10; +double dtsave = -1.0; +int iale = 0; +int ialetype = 2; +int maxale = 10; +double dtau = 0.001; +double dtau_max = 1E-01; + +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! +// isPlotVolumeField: 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. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; + +int walldistMethod = 1; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "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 isPlotVolumeField = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. + +int visualfileType = 1; + +// 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 lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [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), vibration temperature(33), electron temperature(34), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44). +// 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]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +//----------------------------------------------------------------------- +# Turbulence Parameter # +//----------------------------------------------------------------------- +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// 1 -- Edwards. +// 2 -- new. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. + +int turbInterval = 1; +int turb_vis_kind = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double turb_relax = 1.0; +double turb_min_coef = 1.0e-1; +double freeStreamViscosity = 1.0e-3; +double muoo = 1.0e-1; +double kwoo = 1.0; + +# maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +double sdilim = 1.0e20; +double coef_kvist = 1.0; +int monitor_vistmax = 0; + +//----------------------------------------------------------------------- +# Other Parameter # +//----------------------------------------------------------------------- +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- NS. +// 1 -- MHD. +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// 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. +// 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. +// 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. +// 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. + +int dg_high_order = 0; +int iapplication = 0; +int nm = 5; + +// MHD +double bxoo = 0.0; +double byoo = 0.0; +double bzoo = 0.0; + +double refGama = 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 = 1; +int nchemrad = 1; +int ntmodel = 1; +int nChemicalFlowStep = 0; +double catalyticCoef = 0.0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.77"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.77, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.23, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.77, 0.0"; + +int ifStartFromPerfectGasResults = 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 # +######################################################################### +// ifvfd: +// 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 ifvfd = 0; +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"; + +// ----------------- 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; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 2.329418E08; +//@double refDimensionalTemperature = 288.144; +//@double refDimensionalPressure = 1.01313E05; +//@double height = -0.001; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; diff --git a/TwoD_Rae2822_SST_Struct/bin/cfd_para_transonic.hypara b/TwoD_Rae2822_SST_Struct/bin/cfd_para_transonic.hypara new file mode 100644 index 00000000..28b2a02a --- /dev/null +++ b/TwoD_Rae2822_SST_Struct/bin/cfd_para_transonic.hypara @@ -0,0 +1,203 @@ +######################################################################### +# 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 = 30000; + +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; + +######################################################################### +# 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.73; +double attackd = 2.79; +double angleSlide = 0.00; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; + +//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)). + +double gridScaleFactor = 1.0; + +double forceRefenenceLengthSpanWise = 1.0; // unit of meter. +double forceRefenenceLength = 1.0; // unit of meter. +double forceRefenenceArea = 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 = 2; +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.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 iunsteady = 0; + +double CFLEnd = 10.0; + +int nLUSGSSweeps = 1; + +######################################################################### +# Multi-Grid parameters # +######################################################################### +// nMGLevel: The number of Multi-Grid level. +// = 1 -- single-level. +// > 1 -- multi-level. +// flowInitStep: Flow initialization step, 0 - 500 is suggested. +// Multi-Grid : Number of steps computing on coarse grid, during flow initialization. +// Single-Grid: Number of steps computing using first-order with vanleer, during flow initialization. + +int nMGLevel = 1; +int flowInitStep = 100; + +######################################################################### +# File In or Out # +######################################################################### +// gridfile: The partitioned Grid file path, using relative path, +// which is relative to the working directory. +// IMPORTANT WARNING: The file index should be ignored, +// e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts, +// Please use 'rae2822_hybrid2d__4.fts' here! +// isPlotVolumeField: If dump out the whole field results to tecplot or not, 0 / 1. + +string gridfile = "./grid/rae2822_vis2d__4.fts"; +int isPlotVolumeField = 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/TwoD_Rae2822_SST_Struct/bin/grid_para.hypara b/TwoD_Rae2822_SST_Struct/bin/grid_para.hypara new file mode 100644 index 00000000..f0f354f6 --- /dev/null +++ b/TwoD_Rae2822_SST_Struct/bin/grid_para.hypara @@ -0,0 +1,34 @@ +######################################################################### +# 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 = 1; +int axisup = 1; +int from_gtype = 3; + +######################################################################### +# 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_vis2d.grd"; +string out_gfile = "./grid/rae2822_vis2d.fts"; + + + + diff --git a/TwoD_Rae2822_SST_Struct/bin/key.hypara b/TwoD_Rae2822_SST_Struct/bin/key.hypara new file mode 100644 index 00000000..f347f740 --- /dev/null +++ b/TwoD_Rae2822_SST_Struct/bin/key.hypara @@ -0,0 +1,51 @@ +string title = "PHengLEI Main Parameter Control File"; + +// IMPORTANT NOTICEDON NOT MODIFY THE FOWLLOWING LINE +string defaultParaFile = "./bin/cfd_para.hypara"; + +// ndim: Dimensional of the grid: 2 or 3. +// nparafile: the number of the parameter file. +// nsimutask: simulation task type. +// 0 -- CFD Solver of NS or Turbulation. +// 1 -- Grid generation: for special typical cases, such as cylinder, flat plate, etc. +// Grid conversion: from other format to HyperFLOW format (.fts). +// Grid reconstruction: such as grid adaptation. +// Grid merging: merge two blocks into one block. +// Grid repairing: repair the original grid in order to remove the negative volume cells. +// 2 -- Wall distance computation for turb-solver. +// 3 -- Grid partition. +// 4 -- Knowledge repository / examples of PHengLEI-API. +int ndim = 2; +int nparafile = 1; + +int nsimutask = 0; +string parafilename = "./bin/cfd_para_transonic.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/TwoD_Rae2822_SST_Struct/bin/partition.hypara b/TwoD_Rae2822_SST_Struct/bin/partition.hypara new file mode 100644 index 00000000..dfe59456 --- /dev/null +++ b/TwoD_Rae2822_SST_Struct/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 = 1; +int maxproc = 4; + +string original_grid_file = "./grid/rae2822_vis2d.fts"; +string partition_grid_file = "./grid/rae2822_vis2d__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/TwoD_Rae2822_SST_Struct/grid/rae2822_vis2d.grd b/TwoD_Rae2822_SST_Struct/grid/rae2822_vis2d.grd new file mode 100644 index 00000000..f993d1fe Binary files /dev/null and b/TwoD_Rae2822_SST_Struct/grid/rae2822_vis2d.grd differ diff --git a/TwoD_Rae2822_SST_Struct/grid/rae2822_vis2d.inp b/TwoD_Rae2822_SST_Struct/grid/rae2822_vis2d.inp new file mode 100644 index 00000000..e6c1cde0 --- /dev/null +++ b/TwoD_Rae2822_SST_Struct/grid/rae2822_vis2d.inp @@ -0,0 +1,13 @@ + 1 + 1 + 369 65 +A + 6 + -33 -1 1 1 -1 + -337 -369 1 1 1 + 33 337 1 1 2 + -337 -369 1 1 -1 + -33 -1 1 1 1 + 369 369 1 65 4 + 1 369 65 65 4 + 1 1 1 65 4 diff --git a/build-passing.svg b/build-passing.svg new file mode 100644 index 00000000..983bcec5 --- /dev/null +++ b/build-passing.svg @@ -0,0 +1 @@ +build: passingbuildpassing \ No newline at end of file diff --git a/license.svg b/license.svg new file mode 100644 index 00000000..b19fa46a --- /dev/null +++ b/license.svg @@ -0,0 +1 @@ +license: GPLlicenseGPL \ No newline at end of file diff --git a/logo.png b/logo.png new file mode 100644 index 00000000..f6d5f1b1 Binary files /dev/null and b/logo.png differ diff --git a/version.svg b/version.svg new file mode 100644 index 00000000..af572c2c --- /dev/null +++ b/version.svg @@ -0,0 +1 @@ +version: v7129versionv7129 \ No newline at end of file