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
+
+[![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 @@
+
\ 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 @@
+
\ 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 @@
+
\ No newline at end of file