diff --git a/F01_ThreeD_30p30n_OversetGrid_SA_Struct_4CPU/30p30n结构重叠网格说明文档.pdf b/F01_ThreeD_30p30n_OversetGrid_SA_Struct_4CPU/30p30n结构重叠网格说明文档.pdf deleted file mode 100644 index 5c21965..0000000 Binary files a/F01_ThreeD_30p30n_OversetGrid_SA_Struct_4CPU/30p30n结构重叠网格说明文档.pdf and /dev/null differ diff --git a/F01_ThreeD_30p30n_OversetGrid_SA_Struct_4CPU/bin/boundary_condition.hypara b/F01_ThreeD_30p30n_OversetGrid_SA_Struct_4CPU/bin/boundary_condition.hypara deleted file mode 100644 index b20c191..0000000 --- a/F01_ThreeD_30p30n_OversetGrid_SA_Struct_4CPU/bin/boundary_condition.hypara +++ /dev/null @@ -1,60 +0,0 @@ -# nBoundaryConditons : number of global boundary conditions. -# bcName : Boundary Condition Name. -# bcType(in PHengLEI): Boundary Condition Type. - -# Account of how to set boundaryconditon. -# string bcName = "Farfield"; -# { -# int bcType = 4; -# int inflowParaType = 1; -# double attackd = 0; -# double refReNumber = 6.5e6; -# double refMachNumber = 3.5; -# double angleSlide = 0; -# } - -int nBoundaryConditons = 7; -string bcName = "SOLID_SURFACE"; -{ - int bcType = 2; -} -string bcName = "Wall_16"; -{ - int bcType = 16; -} -string bcName = "Wall_17"; -{ - int bcType = 17; -} -string bcName = "Wall_18"; -{ - int bcType = 18; -} -string bcName = "SYMMETRY"; -{ - int bcType = 3; -} -string bcName = "FARFIELD"; -{ - int bcType = 4; -} -string bcName = "POLE1"; -{ - int bcType = 71; -} - -# 'bcType' is defined as following: -# 99: PERIODIC -# -2: WAKE -# -1: INTERFACE -# 0 : NO_BOUNDARY_CONDITION -# 1 : EXTRAPOLATION -# 2 : SOLID_SURFACE -# 3 : SYMMETRY -# 4 : FARFIELD -# 5 : INFLOW -# 6 : OUTFLOW -# 52: PRESSURE_INLET -# 62: PRESSURE_OUTLET -# 61: OUTFLOW_CONFINED -# 7 : POLE diff --git a/F01_ThreeD_30p30n_OversetGrid_SA_Struct_4CPU/bin/cfd_para.hypara b/F01_ThreeD_30p30n_OversetGrid_SA_Struct_4CPU/bin/cfd_para.hypara deleted file mode 100644 index b17970c..0000000 --- a/F01_ThreeD_30p30n_OversetGrid_SA_Struct_4CPU/bin/cfd_para.hypara +++ /dev/null @@ -1,1220 +0,0 @@ -//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -// 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. -// 4 -- Grid deformation, achieve unstructured grid deformation. -// 5 -- Grid repairing, repair the original grid in order to remove the negative volume cells. -// 6 -- Grid mirroring, mirror a symmetry grid to whole grid. -// multiblock: Multi-block grid or not, only for structured grid conversion. -// 0 -- Not. -// 1 -- Yes. -// iadapt: Adaptation number for unstructure grid. -// SymmetryFaceVector: The vector of symmetry face. -// 0 -- X axis. -// 1 -- Y axis. -// 2 -- Z axis. -int gridtype = 0; -int gridobj = 1; -int multiblock = 0; -int iadapt = 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. -int numberOfGridFile = 1; -string from_gfile = "./grid/rae2822_hybrid2d.cas"; -string from_gfile1= ""; - -string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; - -// ----------------- some advanced choices ------------------------------ -// iunsteady: The Grid is for unsteady simulation or not. -int iunsteady = 0; -int codeOfAleModel = 0; - -// fileformat: Ustar Grid file format. -// 0 -- BINARY. -// 1 -- ASCII. -int fileformat = 0; - -// Parameters for hybrid solver. -// mixgrid_uns: path of unstructure grid file for hybrid solver, *.fts type. -// mixgrid_str: path of structure grid file for hybrid solver, *.fts type. -string mixgrid_uns = "./grid/rae2822_uns2d_4.fts"; -string mixgrid_str = "./grid/flat_laminr_133_85_2d.fts"; - -// Some parameters for structured overlapping grid. -int codeOfDigHoles = 1; -string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; -string holeFullFileName = "./oversetGridView/holeFullFile.dat"; -string linkFileName = "./oversetGridView/topology.dat"; -string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; - -// ----------------- 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. - - -// ----------------- Grid Deform Parameters ----------------------------- -// deformationMethod: Grid Deform. -// 1 -- SPRING. -// 2 -- RBF. -// stationalGridFile: Original grid file. -// visualFileName : The visualization file path of deform grid. -// nDeformStep : The max deform step. -// flapAngle : The max flap angle. -// rotatePostionZ : Rotate postion. -// rotatePostionY : Rotate postion. -// gridSlice : If dump slice grid. -// sliceAxis : Grid slice axis. -// slicePosition : Grid slice position. -int nDeformStep = 40; -double flapAngle = 10.0; -double rotatePostionZ = 4.00003; -double rotatePostionY = 3.05; - -int deformationMethod = 2; -string stationalGridFile = "./grid/Segment2Brid.fts"; -string visualFileName = "./results/deformedGrid.dat" - -int gridSlice = 1; -int sliceAxis = 1; -double slicePosition = 13; - -// ----------------- RBF Parameters ------------------------------------- -// numberOfReferenceCP : Number of reference Control Points. -// influencePara : The RBF influence radius parameter. -int numberOfReferenceCP = 40; -double influencePara = 25.0; - -// ----------------- Periodic Parameters -------------------------------- -// Notice: Rotational periodicity only support rotation along the X axis! -// periodicType: Which periodic boundary is used. -// 0 -- without Periodic Boundary. -// 1 -- Translational periodicity. -// 2 -- Rotational periodicity. -// translationLength[]: The relative distance between two periodic face - which only support one direction. -// rotationAngle: The relative angle between two periodic face. - which is recorded in degrees. - -int periodicType = 0; -double translationLength[] = [0.0,0.0,0.0]; -double rotationAngle = 0.0; - -######################################################################### -# Default parameters for Partition # -######################################################################### -// pgridtype: The grid type. -// 0 -- unstruct grid. -// 1 -- struct grid. -// 2 -- refine structured grid. -// maxproc: The number of partition zones that want to be divided into. -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]; - -// parallel Strategy: -//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. -//! -# 1 : random assigned for each zone or by some else ways. -int parallelStrategy = 1; - -//----------------------------------------------------------------------- -# File path # -//----------------------------------------------------------------------- -// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts). -// partition_grid_file: Target partition grid file(PHengLEI type, *.fts). -string original_grid_file = "./grid/sphere_mixed.fts"; -string partition_grid_file = "./grid/sphere_mixed__4.fts"; - -// ------------------ Sompe advanced parameters ------------------------- -// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". -// 0 -- Interface. (default) -// 1 -- Physical boundary condition, used in Hybrid solver. -// npartmethod: Method of interface reconstruction, default is 1. -// parallelPartitionMethod: Method of parallel partition, this is set only when execute parallel partition. It would be skipped when serial partition. -// 1 -- Using ParMetis for homogeneous MPI. -// 2 -- Using Metis for homogeneous MPI. -// 3 -- using METIS partition for homogeneous OpenMP. -// parmetisBalance: Used to specify the imbalance tolerance. -// 1 -- perfect balance. -// maxproc -- perfect imbalance. -// 1.05 -- recommended. - -int omit_no_bound_bc = 0; -int npartmethod = 1; -int parallelPartitionMethod = 2; -double parmetisBalance = 1.05; - -// numberOfMultigrid: Number of multi-grid levels, ONLY used for structured grid. -// 1 -- single level. -// 2 -- 2 level. -// N -- N level, ..., et al. -int numberOfMultigrid = 1; - -######################################################################### -# Default parameters for CFD simulation # -######################################################################### -// maxSimuStep: The max simulation step, don't care simulation is restart or not. -// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved. -// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved. -// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. -// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. -// intervalStepRes: The step intervals for residual file 'res.dat' saved. -// 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 intervalStepSample = 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. -// 4 -- the condition that the velocity, temperature and density are given. -// 5 -- the condition that the velocity, temperature and pressure are given. -// refReNumber: Reynolds number, which is based unit length, unit of 1/m. -// refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition. -// freestream_vibration_temperature: Dimensional freestream vibration temperature. -// refDimensionalPressure: Dimensional reference pressure, or the total pressure only for the experiment condition. -// height: Fly height, unit of km. -// wallTemperature: Temprature of the solid wall, minus value is for adiabatic boundary condition. -// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter.Common dimensions like: -// 1 dm = 0.1 m. -// 1 cm = 0.01 m. -// 1 mm = 0.001m. -// 1 inch = 0.0254m. -// 1 foot = 12 inches = 0.3048m. -// 1 yard = 3 feet = 0.9144m. -// forceReferenceLength, forceReferenceLengthSpanWise, forceReferenceArea: Reference length, SpanWise length and area, independent of grid unit. -// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent of grid unit. -// radiationCoef: The radiation coefficient on wall, it is used to compute the radiation heat flux on wall when the boundary -// condition is radiation equilibrium temperature, and 0.8 is the default value. -// refMolecularWeight : the reference molecular weight of gas used for perfect gas. The unit is g/mol. -// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. - -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 = 300.00; - -//int inflowParaType = 1; -//double height = 0.001; - -//int inflowParaType = 2; -//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). -//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). - -//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; - -//The velocity, temperature and density are fixed. -//int inflowParaType = 4; -//double refDimensionalVelocity = 1000.0; -//double refDimensionalDensity = 1.0e3; - -//The velocity, temperature and pressure are fixed. -//int inflowParaType = 5; -//double refDimensionalVelocity = 1000.0; -//double refDimensionalPressure = 1.0e5; - -//The MachNumber, temperature and pressure are fixed. -//int inflowParaType = 6; -//double refDimensionalTemperature = 293; -//double refDimensionalPressure = 8886.06; - -double wallTemperature = -1.0; - -double radiationCoef = 0.8; -double gridScaleFactor = 1.0; - -int numberOfAerodynamicForceComponents = 1; -double forceReferenceLengthSpanWise = 1.0; // unit of meter. -double forceReferenceLength = 1.0; // unit of meter. -double forceReferenceArea = 1.0; // unit of meter^2. -double TorqueRefX = 0.0; // unit of meter. -double TorqueRefY = 0.0; // unit of meter. -double TorqueRefZ = 0.0; // unit of meter. -double refMolecularWeight = 28.9644; // unit of g/mol. - -//----------------------------------------------------------------------- -# Spatial Discretisation # -//----------------------------------------------------------------------- -#******************************************************************* -# Struct Solver * -#******************************************************************* -// inviscidSchemeName: Spatial discretisation scheme of struct grid. -// Using this when solve structered grid or hybrid. -// -- "vanleer", "steger", "hlle", "lax_f". -// -- "roe", "modified_roe". -// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". -// 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", "ausmpw+". -// uns_limiter_name: Limiter of Unstruct grid. -// -- "barth", "vencat", "vanleer", "minmod". -// -- "vanalbada", "smooth", "nnd", "lpz", "1st". -// -- "nolim", no limiter. -// uns_vis_name: Discretisation method of viscous term. -// -- "std", "test", "aver", "new1", "new2". -// gradientName: Gradient reconstruction method. -// -- "default", "ggcell", "ggnode", "lsq". -// ivencat: Variation of vencat limiter. -// 0 -- org method, it is independent of grid scale. -// 1 -- new method, it is dependent of grid scale. -// 4 -- Ustar limiter model, without grid size unitary. -// 7 -- default used. -// venkatCoeff: Cofficient of vencat, when using vencat limter. -// limitVariables: Limit model (It is useful only if limitVector is 0). -// 0 -- limit only for pressure and denstiny, then get the min value. -// 1 -- limit for every variables, then get the min value. -// limitVector: -// 0 -- Each variable use the same limiter coefficient. -// 1 -- Each variable use the respective limiter coefficients. -// reconmeth: -// 0 -- When reconstruct face value, Q+, Q- use respective limiter coefficients. -// 1 -- Q+, Q- use the min limiter coefficients of left and right cell. -// skewnessAngle: The skewness angle of grid cells. -// roeEntropyFixMethod: Entropy fix (correction) method. -// 1 -- direct fix, which limits the minimum eigenvalue directly. -// 2 -- multi-dimensional fix, which is derived from structured solver and now is only valid for struct solver. -// 3 -- Harten type, which is default used. -// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. -// It is used to scale the default Roe entropy fix coefficients. - -//int viscousType = 0; -//string viscousName = "Euler"; - -//int viscousType = 1; -//string viscousName = "laminar"; - -int viscousType = 3; -string viscousName = "1eq-sa"; - -//int viscousType = 4; -//string viscousName = "2eq-kw-menter-sst"; - -int DESType = 0; - -string uns_scheme_name = "roe"; -string uns_limiter_name = "vencat"; -string uns_vis_name = "test"; -string gradientName = "ggnode"; - -int ivencat = 7; -double venkatCoeff = 5.0; -int reconmeth = 1; -int limitVariables = 0; -int limitVector = 0; -double skewnessAngle = 60.0; - -int roeEntropyFixMethod = 3; -double roeEntropyScale = 1.0; - -//----------------------------------------------------------------------- -# Temporal Discretisation # -//----------------------------------------------------------------------- -// iunsteady: Steady or unsteady. -// 0 -- steady. -// 1 -- unsteay. -// physicalTimeStep: The nondimensional physical time step. -// ifStartFromSteadyResults: The unsteady simulation is start from steady flowfield or not, 0 is for no and else is for yes. -// ifStaticsFlowField: Statistical variables for unsteady simulation. -// ifStaticsReynoldsStress: Statistical Reynolds stress for unsteady simulation. -// startStatisticStep: Outer step when start statistics. -// when the value is larger than "maxSimuStep", it is useless. -// statisticalTimePeriod: Used as time period of statistic analysis. -// when the value is negative, time period is treated as infinite. -// statisticMethod: Statistic reynolds stress method. - 0 --tau = - ^2 - 1 --tau = -// min_sub_iter: The min sub iteration of unsteady simulation. -// max_sub_iter: The max sub iteration of unsteady simulation. -// tol_sub_iter: The tolerance of sub iteration of unsteady simulation. -// tscheme: Temporal Discretisation method. -// 1 -- Runge-Kutta Multi-State. -// 2 -- Point implicit. -// 3 -- Full implicit. -// 4 -- LU-SGS. -// 5 -- Block LU-SGS. -// 6 -- Jacobian iteration. -// 7 -- 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. -// codeOfAleModel: Arbitrary Lagrangian-Eulerian method. -// 0 -- no ALE method. -// 1 -- ALE method for non-moving grids. -// 2 -- ALE method for moving grids. -// 3 -- ALE method for deforming grids. -// wallFunctionType: The type of wall function to implement. -// 0 -- no wall function. (default) -// 1 -- standard wall function. -// 2 -- Pab3D wall function. -// RKStage: The number of Runge-Kutta step. -// lamda: Cofficient of Runge-Kutta step. - -int iunsteady = 0; -double physicalTimeStep = 0.01; -int ifStartFromSteadyResults = 0; -int ifStaticsFlowField = 0; -int ifStaticsReynoldsStress = 0; -int startStatisticStep = 800000; -double statisticalTimePeriod = -1.0; -int statisticMethod = 0; -int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; - -int methodOfDualTime = 3; -int min_sub_iter = 50; -int max_sub_iter = 50; -double tol_sub_iter = 0.01; - -int tscheme = 4; -int iSimplifyViscousTerm = 1; -int ifLocalTimeStep = 0; -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 csrv = 2.0; -double timemax = 1.0e10; -double dtsave = -1.0; -int maxale = 10; -double dtau = 0.001; - -int wallFunctionType = 0; - -int RKStage = 2; -double lamda[] = 0.5, 1.0; - -//int RKStage = 1; -//double lamda[] = 1.0; - -//int RKStage = 4; -//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; - -//----------------------------------------------------------------------- -# File In or Out # -//----------------------------------------------------------------------- -// numberOfGridGroups: The number of grid groups. -// gridfile: The partitioned Grid file path, using relative path, -// which is relative to the working directory. -// IMPORTANT WARNING: The file index should be ignored, -// e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts, -// please use 'rae2822_hybrid2d__4.fts' here! -// plotFieldType: If dump out the field results to visulization. -// walldistMethod: The method to compute wall distance. -// 0 -- accurate but not fast enough. -// 1 -- fast but not accurate enough. -// 2 -- super fast but more non-accurate! -// resSaveFile: The file path to save the residual convergence process, write data for every default (intervalStepRes) steps. -// turbresfile: The file path to save the residual convergence process of turbulence, write data for every default (intervalStepRes) steps. -// aircoeffile: The file path to save the aerodynamic force coefficients convergence process, write data for every default (intervalStepForce) steps. -// restartNSFile: The file path to write restart flowfield variables, write data for every default (intervalStepFlow) steps. -// turbfile: The file path to write restart flowfield variables of turbulence , write data for every default(intervalStepFlow) steps. -// visualfile: The visualization file path of flowfield , write data for every default (intervalStepPlot) steps. -// wall_aircoefile: The file path to save flowfield variables of wall, write data for every default steps. -// nDumpSurfaceInfo = 0 the "wall_varfile" write the informations including heat flux. -// nDumpSurfaceInfo = 1 the "wall_varfile" write the informations without heat flux. - -int numberOfGridGroups = 1; -string gridfile = "./grid/rae2822_hybrid2d__4.fts"; -string wallTemperaturefile= ""; - -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 wall_aircoefile = "results/wall_aircoef.dat"; -string samplefile = "results/sample.dat"; - -int nDumpSurfaceInfo = 0; -string wall_varfile = ""; - -string jetDefineFile = "bin/jet.hypara"; - -string sixDofFileName = "results/sixDofInfo.dat"; -string derivativeFileName = "results/identify.dat"; -string hysteresisFileName = "results/force_beta.plt"; - -int plotFieldType = 0; - -// visualfileType: The file type of visualfile. -// 0 -- Tecplot binary. -// 1 -- Tecplot ASCII. - -int visualfileType = 1; - -// samplefileMode: The dump mode of sample file. -// 0 -- dump out every probe/line/surface data for all step intervals. -// 1 -- dump out all probe/line/surface data for every step intervals. -int samplefileMode = 0; - -// visualSlice: The slice of tecflow. -// 0 -- Do not save slice data. -// 1 -- comput and save it to sliceFile. -// sliceAxis: Normal vector of slice. -// 1 -- X_DIR. -// 2 -- Y_DIR. -// 3 -- Z_DIR. -// slicePostion: Coordinate of slice. - -int visualSlice = 0; -int sliceAxis = 1; -double slicePostion = -0.5; -string sliceFile = "results/Slice.plt"; -int dumpWallFaceCenter = 0; - -// min-max box of the visual block. -double lowerPlotFieldBox[] = [0.0 0.0 0.0]; -double upperPlotFieldBox[] = [1.0 1.0 1.0]; - -//-----------the optional parameters list for the flow field output---------------- -// nVisualVariables: Number of variables want to be dumped for tecplot visualization. -// visualVariables : Variable types dumped, listed as following: -// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6), -// -- viscosityLaminar(7), viscosityTurbulent(8), -// -- vorticity_x(9), vorticity_y(10), vorticity_z(11), vorticityMagnitude(12), -// -- strain_rate(13), Q_criteria(14), Cp(15), timeStep(16), volume(17), -// -- modeledTKE(18), modeleddissipationrate(19), SSTF1(20), SSTF2(21), -// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), -// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), -// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), iblank(81). -// -- specific heat ratio(gama, 56) -// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! -// Variables order must from small to big. -//-----------the optional parameters list for the wall boundary condition---------------- -// nVisualWallVariables: The number of visual variables on wall. -// visualWallVariables : dumped variable types, listed as following: -// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), -// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), -// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), -// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) -// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) -// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -transition gamaeff(gamaeff, 48), -// -transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), -// -overlap iblank(iblank, 81) - -int nVisualVariables = 8; -int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; - -int nVisualWallVariables = 9; -int visualWallVariables[] = [0, 1, 2, 3, 4, 5, 9, 10, 11]; - -// dumpStandardModel: Dump many standard model data. -// 1 -- Turbulent flat plate. -int dumpStandardModel = 0; - -// ifSetDataMonitor: Whether to set the data monitor. -// 0 -- No. -// 1 -- Yes. -// dataMonitorType: The type of data Monitor. -// 0 -- Probes data monitor. -// 1 -- Lines data monitor. -// 2 -- Surfaces data monitor. -// probesDefineFile: Probes location information file. -// nLines: The number of lines need to be monitored. -// linesDefineFile: Lines location information file. -// nSurfaces: The number of surfaces need to be monitored. -// surfacesDefineFile: Surfaces location information file. -// searchCellsMethod: method to search the cell of each probe. -// 0 -- Nearest cell to the probe. -// 1 -- Real cell where the probe is located. -// nProbeVariables: Number of variables want to be dumped for probes monitered. -// probeVariables : Variable types dumped, listed as following: -// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5). -// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! -// probeVariables order must from small to big. -// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. -// 0 -- Take the value of probe's cell as probe real value. -// 1 -- Interpolation from probe's and neighbouring cell to probe. -// 2 -- Interpolation from probe's cell nodes to probe. -int ifSetDataMonitor = 0; - -int dataMonitorType = 0; -string probesDefineFile = "bin/probes_XYZ.dat"; - -//int dataMonitorType = 1; -//int nLines = 1; -//string linesDefineFile = "bin/lines_XYZ.dat"; - -//int dataMonitorType = 2; -//int nSurfaces = 4; -//string surfacesDefineFile = "bin/surfaces_XYZ.dat"; - -int searchCellsMethod = 0; - -int nProbeVariables = 6; -int probeVariables[] = [0, 1, 2, 3, 4, 5]; -int probeVariablesInterpolationMethod = 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 turbOrderStruct = 2; -int kindOfTurbSource = 0; -int mod_turb_res = 0; -double turb_relax = 1.0; -double freeStreamViscosity = 1.0e-3; -double muoo = 3.0; -double kwoo = 5.0; -int transitionType = 0; -double turbIntensity = -1.0; -int freeturbIntensitySRModify = 0; -double freeDecayXLocation = 0.0; -int compressibleCorrection = 0; -int transitionMaFix = 1; - -# maximum eddy viscosity (myt/my) max. -double eddyViscosityLimit = 1.0e10; -int monitor_vistmax = 0; - -//----------------------------------------------------------------------- -# LES Parameter # -//----------------------------------------------------------------------- -// iLES: Create LESSolver or not. -// == 1 - Create LESSolver; -// != 1 - not. -// amplitudeofDisturb: Amplitude of adding disturb. -// disturbstep: Unsteady time step or steady iteration of adding random disturb. -// iterdisturb: Add random disturb in every sub-iter or only first sub-iter. -// = 0 - in only first sub-iter; -// != 0 - in every sub-iter. -// ipraddisturb: Add density and pressure disturb or not. -// ibodyforce: Add body force in source flux of NS equations or not. -// = 0 - not; -// != 0 - Add body force. -// bodyforce: Body force in source flux of NS equations or not. -// utau: friction velocity, using in DNSDisturb. -// sgsmodel: subgrid scale model. -// = "smagorinsky"; -// = "dsmCom"; -// = "wale"; -// = "sigma". -// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); -// = 2 - pow(deltai * deltaj *deltak, 1/3); -// = 3 - Devloped by Scotti. -// wallDampingFunctionType: = 0 - no wall function; -// = 1 - van Driest; -// = 2 - developed by Dr. Deng Xiaobing; -// = 3 - developed by Piomelli. -// turbViscousCutType: turbulent viscosity cut type. -// = 0 - mu_total = mut + mul; -// = 1 - mu_total = max(mut-mul,0)+ mul; -// = 2 - mu_total = max(mut ,0)+ mul. -// smagConstant: constant of smagorinsky model. -// waleConstant: constant of wale model. -// filterDirection[3]: filter variables in i, j, k direction or not. -// averageDirection[3]: average variables in i, j, k direction or not. -// isotropicConstant: constant of isotropic part of SGS stress. - -int iLES = 0; -string sgsmodel = "smagorinsky"; -int deltaFunctionType = 2; -int wallDampingFunctionType = 1; -int turbViscousCutType = 2; -double smagConstant = 0.1; -double isotropicConstant = 0.0; -double waleConstant = 0.6; -double sigmaConstant = 1.35; -int filterDirection[] = [1, 1, 0]; -int averageDirection[] = [0, 0, 0]; -double testFilterScale = 2.0; -int averageWidth = 1; -int monitorNegativeConstant = 0; - -//----------------------------------------------------------------------- -# Other Parameters for Hypersonic Non-equilibrium Gas # -//----------------------------------------------------------------------- -// dg_high_order: -// 0 -- generic order accuracy. -// 1 -- high order accuracy. -// iapplication: -// 0 -- gas model is fixed in the codes. -// 1 -- gas model is imported from library files. -// iCodeBranch: -// 0 -- The old code version is used for Navier-Stokes. -// 1 -- A new code version is active for Navier-Stokes solver. -// nm: Equation number of the physics, but is out of commision now. -// 4 -- for 2D. -// 5 -- for 3D. -// nGasModel: The type of gas. less than and equal to 1 represents the mixture gas. -// Otherwise, the pure gas with one component is used for perfect gas. -// 0 -- Earth gas. -// 1 -- Mars gas. -// 2 -- Argon. -// 3 -- Nitrogen. -// nEnergyRecycle: The type of EnergyModel Recycle. -// 0 -- not used . -// 1 -- used. -// nDensityModify: The type of densitymodify. - -// 0 -- not used. -// 1 -- used. -// nchem: -// 0 -- without chemical reaction flow. -// 1 -- the chemical reaction flow is considered. -// nEquilibriumGas: the variable is valid when the condition of nchem=0 is satisfied. -// 0 -- perfect gas. -// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. -// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. -// the value equals to or is greater than 1, and 3 is for default value. -// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. -// the value equals to or is greater than 1, and 3 is for default value. -// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. -// the value equals to or is greater than 1, and 3 is for default value. -// nSlipBCModel : The computational model of slip boundary conditions. - -// 0 -- no slip. -// 1 -- the conventional Maxwell slip conditions. -// 2 -- the Gokcen slip conditions. -// 3 -- the Knudsen-layer correction of the standard slip conditions proposed by Lockerby, et al. -// 4 -- the Kogan simplified slip conditions. -// nMeanFreePathType : the method to the mean free-path for the slip conditions. For the mixture, 0 is suggested. -// 0 -- the equivalent mean free-path is calculated by the simple hard sphere model(HS). -// 1 -- calculated by the definition that includes the variables of the number density and the molecule diameter. -// 2 -- the equivalent mean free-path is calculated by the variable hard sphere model(VHS). -// nchemsrc: -// 0 -- the source terms are not computed. -// 1 -- the source terms are computed. -// nchemrad: -// 0 -- compute the spectrum radius without considering chemical reaction flow. -// 1 -- compute the spectrum radius that need to count the contribution from chemical reaction flow. -// ntmodel: The thermodynamic temperature model. -// 1 -- One-temperature model. -// 2 -- Two-temperature model. -// 3 -- Three-temperature model. -// nTEnergyModel: the method to computing temperature energy model. -// 0 -- the energy term is computed using the conventional method. -// 1 -- the energy term is computed using the curve fitting method. -// parkVDPower: the power of translational-rotational temperature in the Park V-D(vibration-dissociation) coupling model. -// The value is in range of [0.0, 1.0], DPLR suggests 0.5, LAURA suggests 0.7, while 0.6 is given as default value. -// catalyticCoef: -// 0.0 -- full non-catalytic wall boundary condition. -// 1.0 -- full catalytic wall boundary condition. -// in range of (0.0, 1.0) -- partial catalytic condition, the value indicates the catalytic coefficient. -// nIsSuperCatalytic : the super catalytic condition for the fully catalytic wall, and assigned with the value of 1. -// 0 -- equilibrium condition for the fully catalytic wall where the mass fractions are assigned with the values of the free stream. -// 1 -- super catalytic condition for the fully catalytic wall where all the atomic components combine into molecular components. -// nTemperatureJump : the method to calculate the temperature jump. -// 0 -- calculated by the variables of heat conductivity and constant volume specific heat for each energy mode. -// 1 -- the general method where the iteration is calculated with the translation-rotation temperature. -// sigmaVelocity: the coordination coefficient of tangential momentum for computation of slip velocity. The value is in range of (0.0, 2.0]. -// sigmaTemperature: the heat coordination coefficient for computation of slip temperature. The value is in range of (0.0, 2.0]. -// sigmaMassFraction: the species coordination coefficient for computation of slip mass fractions. The value is in range of (0.0, 2.0]. -// velocitySlipCorrectConstant: the correction constant to the velocity slip condition. For the diffuse reflection, 1.0 is used. -// 1.0 -- proposed by Maxwell. -// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. -// 1.146 -- proposed for an additional "fictitious" velocity slip. - -// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. -// chemicalSpectrumRadiusCoef: The value is in range of [1.0, 3.0]. -// viscousSpectrumRadiusCoef : The value is in range of [1.0, 3.0]. -// inviscidSpectrumRadiusCoef: The value is in range of [1.0, 3.0]. -// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. -// nIsChemicalFreeze : the flag to freeze the chemical reactions. -// 0 -- not freeze, the chemical reaction sources will be calculated. -// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te -// nDebug: cout the Wrong place and abort -// 0 -- not used. -// 1 -- used. -// nSpeciesLimit: limitter of gas species -// 0 -- not used. -// 1 -- used. -// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction -// 0 -- method 0. -// 1 -- method 1. -// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid -// 0 -- not used. -// 1 -- used. -// nChemcalSourceModified: Modified on ChemcalSource -// 0 -- not used. -// 1 -- used. -// nAblation: -// 0 -- The wall ablation is not computed. -// 1 -- The wall ablation is computed. -// isInjection: -// 0 -- The injection velocity of ablation wall is not computed. -// 1 -- The injection velocity of ablation wall is computed. -// nViscosityModel: - -// 0 -- Blottner fitting method. -// 1 -- Gupta fitting method. -// nSutherland: -// 0 -- stands for selecting the Blotter curve fits mode. -// 1 -- stands for Sutherland relation. -// gasfile: Indicates the gas model, 9 models are provided, namely "Gu5", "Gu7", "Gu11", "Pa5", "Pa7", "Pa11", "DK5", "DK7", "DK11". -// "Gu" -- indicates the Gupta Model, three-Type Models are embeded in the library, namely, the 5-species-6-reactions, the 7-species-9-reactions, the 11-species-20-reactions. -// "Pa" -- indicates the Park Model, three-Type Models are embeded in the library, namely, the 5-species-17-reactions, the 7-species-22-reactions, the 11-species-48-reactions. -// "DK" -- indicates the Dunn-Kang Model, three-Type Models are embeded in the library, namely, the 5-species-11-reactions, the 7-species-15-reactions, the 11-species-26-reactions. -// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. -// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. -// "Gas-Mixture" -- indicates the process of mixing two species without reacting. -// 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 iCodeBranch = 0; -int nm = 5; -int nEquilibriumGas = 0; -int nPCWCycleStep = 3; -int nRETCycleStep = 3; -int nSLIPCycleStep= 3; - -double refGama = 1.4; -double prl = 0.72; -double prt = 0.90; -double sc_l = 0.5; -double sc_t = 0.5; - -int nGasModel = 0; -int nchem = 0; -int nchemsrc = 1; -int nchemrad = 1; -int ntmodel = 1; - -int nEnergyRecycle = 0; -int nSlipBCModel = 0; -int nDensityModify = 1; -int nTEnergyModel = 0; -int nMeanFreePathType = 0; -int nIsChemicalFreeze = 0; -int nIsSuperCatalytic = 1; -int nTemperatureJump = 0; - -double parkVDPower = 0.6; -double catalyticCoef = 0.0; -double sigmaVelocity = 1.0; -double sigmaTemperature = 1.0; -double sigmaMassFraction = 1.0; -double velocitySlipCorrectConstant = 1.0; - -double chemicalRelaxCorf = 1.0; -double chemicalSpectrumRadiusCoef = 1.0; -double viscousSpectrumRadiusCoef = 1.0; -double inviscidSpectrumRadiusCoef = 1.0; -double staticPressureRelaxCorf = 1.0; - -double veTemperatureMin = 30.0; -int nDebug = 0; -int nSpeciesLimit = 0; -int nTurblenceForChemical = 0; -int nViscosityFluxSublevelModified = 0 ; -int nChemcalSourceModified = 0; - -int nAblation = 0; -int isInjection = 0; -int nViscosityModel = 0; -int nMarsModel = 0; -string gasfile = "DK5"; -//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; -string speciesName = "O, O2, NO, N, N2"; -string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.767"; - -//string speciesName = "O, O2, NO, N, NO+, N2, e-"; -//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.767, 0.0"; - -//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; -//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767, 0.0"; - -//string gasfile = "Mars-Pa8"; -//string speciesName = "O, O2, NO, N, N2, C, CO, CO2"; -//string initMassFraction = "0.0015, 0.0429, 0.0, 0.0, 0.0, 0.0, 0.0777, 0.8779"; - -//string gasfile = "DK7"; -//string speciesName = "O, O2, NO, N, NO+, C, C2, CO, CO2, CN, N2, e-"; -//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767, 0.0"; - -//string gasfile = "Combustion-12"; -//string speciesName = "O, O2, NO, N, C, CO, CO2, H, H2, OH, H2O, N2"; -//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767"; - -//string gasfile = "Gas-Mixture"; -//string speciesName ="SpeciesA, SpeciesB"; -//string initMassFraction = "1.0, 0.0"; -int nSutherland = 0; -double gamaSpeciesA = 1.4; -double gamaSpeciesB = 1.3; -double molecularWeightSpeciesA = 29.0; -double molecularWeightSpeciesB = 30.0; - -int nChemicalFlowStep = 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 # -######################################################################### -// isFVMOrFDM: -// 0 -- NSSolverStruct using Finite Volume Method. -// 1 -- NSSolverStruct using Finite Differ Method. -// SolverStructOrder: Spatial discretisation order of NS equations with struct grid. -// <= 2 -- finite volume method. -// >= 3 -- finite difference order. (to be completed) -// 0 -- default. -// str_highorder_interpolation_epsilon: Epsilon in weighted interpolation, bigger epsilon, better convergence, -// smaller epsilon, robuster for shock-detecting. -// str_highorder_interpolation_type: -// -- "classical", "test". -// str_highorder_flux_name: -// -- "roe", "steger". -// structhighordergradient: -// -- "conservation", "chain_rule". -int isFVMOrFDM = 0; -string str_highorder_solver = "WCNS"; -int SolverStructOrder = 0; -double str_highorder_interpolation_epsilon = 1.0e-6; -string str_highorder_interpolation_type = "test"; -string str_highorder_flux_name = "steger"; -string structhighordergradient = "conservation"; -double coefofstrflux = 0.5; -double limitcoefofinterface = 0.0; - -// ----------------- Advanced choices ----------------------------------- -// outtimesc: Time stepping scheme for the outer loop. -// MUSCLCoefXk: The parameter of MUSCL interpolations, belongs to [-1, 1]. -// -1 -- seconde-order fully-upwind differencing. -// 0 -- seconde-order upwind-biased differencing. -// 0.333333 -- third-order upwind-biased differencing. -// 1 -- seconde-order central differencing. -// MUSCLCoefXb: The limiter parameter. -// 0 -- the effect of the limiter is cancelled, means the first-order interpolations. -// allReduceStep: Iteration intervals for MPI AllReduce operation, default is 1. -string outtimesc = "impbd2"; -double MUSCLCoefXk = -1; -double MUSCLCoefXb = 1.0; -int allReduceStep = 1; - -// ----------------- overlap configuration ------------------------------ -// codeOfOversetGrid: Overlapping(overset) grid or not. -// 0 -- NON-overlapping grid. -// 1 -- Overlapping grid. -// oversetInterpolationMethod: the method of overset interpolation while field simulation -// 0 -- set the acceptor cell value by donor cell value. -// 1 -- set the acceptor cell value by distance weight of donor cell value. - -int codeOfOversetGrid = 0; -int oversetInterpolationMethod = 0; -int readOversetFileOrNot = 0; -int symetryOrNot = 0; -int readInAuxiliaryInnerGrid = 1; -int readInAuxiliaryOuterGrid = 0; -int readInSklFileOrNot = 0; -string auxiliaryInnerGrid0 = "./grid/aux-upper.fts"; -string auxiliaryInnerGrid1 = "./grid/aux-lower.fts"; -string auxiliaryInnerGrid2 = ""; -string oversetGridFileName = "./grid/iblank.ovs"; -double walldistMainZone = 1.0 -double toleranceForOversetSearch = 1.0e-3; -double toleranceForOversetBox = 1.0e-3; -int twoOrderInterpolationOrNot = 0; -int keyEnlargeOfActiveNodes = 0; -int outTecplotOverset = 0; - -int numberOfMovingBodies = 2; - -// ----------------- ALE configuration ------------------------------ -int codeOfAleModel = 1; -int aleStartStrategy = -1; - -int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; -int strategyForGCLSource = 0; //0-present; 1-Ahn; - -//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton -int methodForKineticEquation = 0; -double relaxParameterOfKinetic = 1.0; - -######################################################################### -# motive information # -######################################################################### -int numberOfMovingBodies = 1; - -############################## body0 ############################## -//mass of parts -double mass_0 = 1.0; -//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz -double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; -//initial six DOF position information of parts. xc yc zc -double massCenter_0[] = 0.0 , 0.0, 0.0; -//initial six DOF position information of parts. angleX angleY angleZ -double attitudeAngle_0[] = 0.0 , 0.0, 0.0; -//initial six DOF move information of parts. vc vy vz -double massCenterVelocity_0[] = 0.0, 0.0, 0.0; -//initial six DOF move information of parts. omigX omigY omigZ -double angularVelocity_0[] = 0.0, 0.0, 0.0; -//the object that the parts belong to. -int fartherIndex_0 = -1; -//the assembly position of the parts. xc yc zc angleX angleY angleZ -double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0; -//the move pattern of the parts. -// -1 given motion partten. -// 0 still. -// 1 six DOF motion. -// 2 three DOF motion. -// 11 X-axis forced motion. -// 12 Y-axis forced motion. -// 13 Z-axis forced motion. -// 14 forced pitch motion. -// 15 forced yaw motion. -// 16 forced roll motion. -int RBDMethod_0 = 0; -double amplitude_0 = 0.0; -double reduceFrequency_0 = 0.0; -//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; -//additional force (system axis) fX fY fZ -double addedForce_0[] = 0.0 ,0.0 ,0.0 ; -//additional moment of Force (system axis) mX mY mZ -double addedMoment_0[] = 0.0 ,0.0 ,0.0 ; -//the deformation method of the parts. -int morphing_0 = 0; - -// post indentify -int integralOrder = 4; - - -// ---------------- ATP read -------------------------------------------- -//@int inflowParaType = 0; -//@double refReNumber = 6.5e6; -//@double refDimensionalTemperature = 288.15; -//@double freestream_vibration_temperature = 300.00; -//@double refDimensionalPressure = 0; -//@double height = 0; -//@int nsubsonicInlet = 0; -//@int nsubsonicOutlet = 0; -//@string inLetFileName = "./bin/subsonicInlet.hypara"; -//@string outLetFileName = "./bin/subsonicOutlet.hypara"; -//@double refDimensionalVelocity = 0; -//@double refDimensionalDensity = 0; - -######################################################################### -# Old Parameter # -######################################################################### -int isPlotVolumeField = 0; - diff --git a/F01_ThreeD_30p30n_OversetGrid_SA_Struct_4CPU/bin/overset.txt b/F01_ThreeD_30p30n_OversetGrid_SA_Struct_4CPU/bin/overset.txt deleted file mode 100644 index 33cf929..0000000 --- a/F01_ThreeD_30p30n_OversetGrid_SA_Struct_4CPU/bin/overset.txt +++ /dev/null @@ -1,17 +0,0 @@ -int taskSelector = 1; - -int codeOfLargeScale = 0; -int numberOfMultigrid = 1; -int numberOfProcessors = 4; - -string originalGridFile = "./grid/30p30n_str_3D.grd"; -string originalBoundaryFile = "./grid/30p30n_str_3D.inp"; - -int numberOfGridGroups = 4; -int zoneSpan[numberOfGridGroups] = 3,4,4,5; - -int solidBcSize = 2; -int solidColorList[solidBcSize] = 2,4; - -int outerBcSize = 3; -int outerColorList[outerBcSize] = 16,17,18; diff --git a/F01_ThreeD_30p30n_OversetGrid_SA_Struct_4CPU/补充说明.txt b/F01_ThreeD_30p30n_OversetGrid_SA_Struct_4CPU/补充说明.txt deleted file mode 100644 index 24b3bee..0000000 --- a/F01_ThreeD_30p30n_OversetGrid_SA_Struct_4CPU/补充说明.txt +++ /dev/null @@ -1,2 +0,0 @@ -针对本算例,风雷代码cmake构建的时候需要勾选USE_OVERSET选项!!! -该算例当前只支持2171版本 \ No newline at end of file diff --git a/H01_PBSolver_TwoD_Backstep_Laminar_Re95_Unstruct_1CPU/bin/boundary_condition_ref.hypara b/H01_PBSolver_TwoD_Backstep_Laminar_Re95_Unstruct_1CPU/bin/boundary_condition_ref.hypara deleted file mode 100644 index 7ab6817..0000000 --- a/H01_PBSolver_TwoD_Backstep_Laminar_Re95_Unstruct_1CPU/bin/boundary_condition_ref.hypara +++ /dev/null @@ -1,61 +0,0 @@ -# nBoundaryConditions: Number of global boundary conditions. -# bcName : Boundary condition name. -# bcType(in PHengLEI): Boundary condition type. - -# How to set boundary condition, for example: -# string bcName = "Wall"; -# { -# int bcType = 2; -# int viscousType = 1; -# double wallTemperature = -1.0; -# double uWall = 0.0; -# double vWall = 0.0; -# double wWall = 0.0; -# } -# string bcName = "Inflow"; -# { -# int bcType = 5; -# int inflowParaType = 0; -# double refMachNumber = 0.73; -# double attackd = 2.79; -# double angleSlide = 0.0; -# double refReNumber = 6.5e6; -# double refDimensionalTemperature = 288.15; -# } - -# For more information, see examples/bin/boundary_condition.hypara file!!! - -int nBoundaryConditions = 3; -string bcName = "wall"; -{ - string bodyName = "body"; - int bcType = 2; - string flowType = "FLOW_SOLID_SURFACE"; -} -string bcName = "inlet"; -{ - int bcType = 5; - string flowType = "FLOW_VELOCITY_INLET"; - double flowU =0.9191874; -} -string bcName = "outlet"; -{ - int bcType = 6; - string flowType = "FLOW_PRESSURE_OUTLET"; - double flowP =0; -} - -# 'bcType' is defined as following: -# -2: WAKE -# -1: INTERFACE -# 0 : NO_BOUNDARY_CONDITION -# 1 : EXTRAPOLATION -# 2 : SOLID_SURFACE -# 3 : SYMMETRY -# 4 : FARFIELD -# 5 : INFLOW -# 6 : OUTFLOW -# 52: PRESSURE_INLET -# 62: PRESSURE_OUTLET -# 61: OUTFLOW_CONFINED -# 7 : POLE diff --git a/H01_PBSolver_TwoD_Backstep_Laminar_Re95_Unstruct_1CPU/bin/cfd_para_incompressible.hypara b/H01_PBSolver_TwoD_Backstep_Laminar_Re95_Unstruct_1CPU/bin/cfd_para_incompressible.hypara deleted file mode 100644 index a2026d7..0000000 --- a/H01_PBSolver_TwoD_Backstep_Laminar_Re95_Unstruct_1CPU/bin/cfd_para_incompressible.hypara +++ /dev/null @@ -1,215 +0,0 @@ -######################################################################### -# General Control Parameter # -######################################################################### -// nIsComputeWallDist: Whether to compute the wall distance. -// 0 -- Compute wall distance. -// 1 -- Not compute. -// gridfile: The partitioned Grid file path, using relative path, -// which is relative to the working directory. -// maxSimuStep: The max simulation step, don't care simulation is restart or not. -// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved. -// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved. -// intervalStepRes: The step intervals for residual 'res.dat' saved. -// 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. -// compressible: An indicator that distinguishes density base from pressure base. 0-incompressible, 1-compressible -// isUnsteady: An indicator that distinguishes unsteady problem from steady problem. 0-steady, 1-unsteady -// startTime: The initial time of the unsteady simulation. -// endTime: The end time of the unsteady simulation. -// dt: The time interval of the unsteady simulation. -// innerIter: The number of step for current time. -// OutputTimeStep: The interval step of output for unsteady simulation. - -int nIsComputeWallDist = 1; -string gridfile = "./grid/back.fts"; -int maxSimuStep = 2000; -int intervalStepFlow = 2000; -int intervalStepPlot = 1000; -int intervalStepRes = 10; - -double gridScaleFactor = 1.0; - -int compressible = 0; -int iunsteady = 0; -double startTime = 0.0; -double endTime = 30; -double dt = 0.1; -int innerIter = 10; -int OutputTimeStep = 5; - -######################################################################### -# Post-Processing # -######################################################################### -// nVisualVariables: Number of variables want to be dumped for tecplot visualization. -// visualVariables : Variable types dumped, listed as following: -// -- U(22), V(23), W(24), P(25), CP(26), T(27), DEN(28), VIS(29), TE(31), ED(32), enthalpy(70) -// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! -// Variables order must from small to big. - -int nVisualVariables = 4; -int visualVariables[] = [22, 23, 24, 25]; - -######################################################################### -# Flow Parameter # -######################################################################### -string FLOW[] = "FLOW"; - -// Initial value of variables or constant -double initRho = 1.0; -double initMu = 0.0001; -double initU = 0.9191874; -double initV = 0; -double initW = 0; -double initP = 0; - -// Relaxing factor -double urfU = 0.4; -double urfV = 0.4; -double urfW = 0.4; -double urfP = 0.3; -double urfFlux = 0.4; - -// Tolerance for governing equations -double resU = 1e-6; -double resV = 1e-6; -double resW = 1e-5; -double resP = 1e-5; - -// Solver for solving linear system -// : CGS/GMRES/BiCGSTAB/AMG -string iterSolvU = "BiCGSTAB"; -string iterSolvV = "BiCGSTAB"; -string iterSolvW = "BiCGSTAB"; -string iterSolvP = "AMG"; - -// Max Iter for solving linear system -int maxSweepU = 30; -int maxSweepV = 30; -int maxSweepW = 30; -int maxSweepP = 30; - -// Tolerance for solving linear system -double iterSolvTolU = 1e-3; -double iterSolvTolV = 1e-3; -double iterSolvTolW = 1e-3; -double iterSolvTolP = 1e-2; - -// Gradient Calculation -// : GAUSS/LSQ -string UGradCalc = "GAUSS"; -string VGradCalc = "GAUSS"; -string WGradCalc = "GAUSS"; -string PGradCalc = "GAUSS"; - -// Convection scheme -// : UPWIND/CDS/QUICK/SUDS -string flowConvCalc = "UPWIND"; - -// Diffusion scheme(central difference) -// : NON_ORTHOGONAL -string flowDiffCalc = "NON_ORTHOGONAL"; - -// Transient scheme -// : CRANK_NICOLSON/IMPLICIT_2ND_ORDER/IMPLICIT_EULER -string flowTranCalc = "IMPLICIT_EULER"; - -// Source for flow -// : FLOW_DEFAULT/FLOW_GRAVITY -string flowSourceCalc[] = "FLOW_DEFAULT"; - -//string flowSourceCalc[] = "FLOW_DEFAULT FLOW_GRAVITY"; -int bodyForceFlag = 0; -//double gravityX = 0.0; -//double gravityY = -9.81; -//double gravityZ = 0.0; -int isBoussinesq = 0; -######################################################################### -# Turbulence Parameter # -######################################################################### -// turb SA -//int viscousType = 11; //SPALART_ALLMARAS = 11, KEPSILON = 13 -string TURB_SA[] = ["TURB_SA"]; -string TURB_SA_SCALAR_NAME[] = ["kinetic"]; -double urfMu = 1.0; - -double kineticInitValue = 1.0; -string kineticConvCalc = "UPWIND"; -string kineticDiffCalc = "NON_ORTHOGONAL"; -string kineticSourceCalc[] = "TURB_SA_DEFAULT"; -double kineticUrf = 1.0; -double kineticRes = 1e-6; - -string turbIterSolv = "BiCGSTAB"; -int turbMaxSweep = 30; -double turbIterSolvTol = 1e-12; - - -// turb K-EPSILON -//int viscousType = 13; //SPALART_ALLMARAS = 11, KEPSILON = 13 -string TURB_K_EPSILON[] = ["TURB_K","TURB_EPSILON"]; -string TURB_K_EPSILON_SCALAR_NAME[] = ["kinetic", "epsilon - -string turbIterSolv = "BiCGSTAB"; -int turbMaxSweep = 30; -double turbIterSolvTol = 1e-12; - -string TURB_K[] = ["TURB_K"]; -string TURB_K_SCALAR_NAME[] = ["kinetic"]; -string TURB_EPSILON[] = ["TURB_EPSILON"]; -string TURB_EPSILON_SCALAR_NAME[] = ["epsilon"]; -double urfMu = 1.0; - -// turb k -double kineticInitValue = 15.48; -string kineticConvCalc = "UPWIND"; -string kineticDiffCalc = "NON_ORTHOGONAL"; -string kineticSourceCalc[] = "TURB_K_DEFAULT"; -double kineticUrf = 0.6; -double kineticRes = 1e-6; - -// turb epsilon -double epsilonInitValue = 200.3; -string epsilonConvCalc = "UPWIND"; -string epsilonDiffCalc = "NON_ORTHOGONAL"; -string epsilonSourceCalc[] = "TURB_EPSILON_DEFAULT"; -double epsilonUrf = 0.6; -double epsilonRes = 1e-6; - -######################################################################### -# Energy Parameter # -######################################################################### -// energyType: The energy solver switch. 0-off, 1-on -// ENERGY[]: Solver binding for factory mode. -// ENERGY_SCALAR_NAME[]: The name of variable to be solved in energy equation. -// energyPrintName[]: The output on the screen during the solution. - -int energyType = 0; -string ENERGY[] = ["ENERGY"]; -string ENERGY_SCALAR_NAME[] = "enthalpy"; -string energyPrintName[] = ["H"]; - -// Initial value of variables or constant -double initT = 273.0; -double initK = 0.026; -double initCPg = 1007.0; -double urfT = 0.8; -double urfH = 0.7; -double enthalpyInitValue = 0.21; - -// Discrete schemes -string energyConvCalc = "UPWIND"; -string energyDiffCalc = "NON_ORTHOGONAL"; -string energySourceCalc[] = ["EMPTY"]; -string energyGradCalc = "GAUSS"; -string energyTranCalc = "IMPLICIT_EULER"; - -// Set for solving linear equations -string enthalpyIterSolv = "BiCGSTAB"; -int enthalpyMaxSweep = 30; -double enthalpyIterSolvTol = 1e-12; -double enthalpyRes = 1e-6; \ No newline at end of file diff --git a/H01_PBSolver_TwoD_Backstep_Laminar_Re95_Unstruct_1CPU/bin/grid_para.hypara b/H01_PBSolver_TwoD_Backstep_Laminar_Re95_Unstruct_1CPU/bin/grid_para.hypara deleted file mode 100644 index 8a3018f..0000000 --- a/H01_PBSolver_TwoD_Backstep_Laminar_Re95_Unstruct_1CPU/bin/grid_para.hypara +++ /dev/null @@ -1,30 +0,0 @@ -######################################################################### -# 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 = 0; -int axisup = 1; -int from_gtype = 5; - -######################################################################### -# File path # -######################################################################### -// from_gfile: path of original data file for unstructure grid convert from. -// out_gfile: path of target file for grid convert to, *.fts type of file usually. -string from_gfile = "./grid/back.cas"; -string out_gfile = "./grid/back.fts"; diff --git a/H01_PBSolver_TwoD_Backstep_Laminar_Re95_Unstruct_1CPU/bin/key.hypara b/H01_PBSolver_TwoD_Backstep_Laminar_Re95_Unstruct_1CPU/bin/key.hypara deleted file mode 100644 index dc4eed2..0000000 --- a/H01_PBSolver_TwoD_Backstep_Laminar_Re95_Unstruct_1CPU/bin/key.hypara +++ /dev/null @@ -1,52 +0,0 @@ -string title = "PHengLEI Main Parameter Control File"; - -// IMPORTANT NOTICE: DON NOT MODIFY THE FOWLLOWING LINE. -string defaultParaFile = "./bin/cfd_para.hypara"; - -// ndim: Dimensional of the grid, 2 or 3. -// nparafile: the number of parameter files. -// nsimutask: simulation task type. -// 0 -- CFD Solver of NS or Turbulation. -// 1 -- Grid generation: for special typical cases, such as cylinder, flat plate, etc. -// Grid conversion: from other format to PHengLEI format (.fts). -// Grid reconstruction: such as grid adaptation. -// Grid merging: merge two blocks into one block. -// Grid repairing: repair the original grid in order to remove the negative volume cells. -// 2 -- Wall distance computation for turb-solver. -// 3 -- Grid partition. -int ndim = 2; -int nparafile = 1; - -int nsimutask = 0; -string parafilename = "./bin/cfd_para_incompressible.hypara" -//string parafilename = "./bin/cfd_para_subsonic.hypara"; -//string parafilename = "./bin/cfd_para_transonic.hypara"; -//string parafilename = "./bin/cfd_para_supersonic.hypara"; -//string parafilename = "./bin/cfd_para_hypersonic.hypara"; - -//int nsimutask = 1; -//string parafilename = "./bin/grid_para.hypara"; - -//int nsimutask = 2; -//string parafilename = "./bin/cfd_para.hypara"; - -//int nsimutask = 3; -//string parafilename = "./bin/partition.hypara"; - -//int nsimutask = 1; -//string parafilename = "./bin/grid_deform_para.hypara"; - -//int nsimutask = 1; -//string parafilename = "./bin/grid_refine_para.hypara"; - -//int nsimutask = 14; -//string parafilename = "./bin/integrative_solver.hypara"; - -//int nsimutask = 99; -//string parafilename = "./bin/post_processing.hypara"; - -// ---------------- Advanced Parameters, DO NOT care it ---------------- -int numberOfGridProcessor = 0; -// ATP read -//@string parafilename1 = "" -//@string parafilename2 = ""; \ No newline at end of file diff --git a/H01_PBSolver_TwoD_Backstep_Laminar_Re95_Unstruct_1CPU/grid/网格地址.txt b/H01_PBSolver_TwoD_Backstep_Laminar_Re95_Unstruct_1CPU/grid/网格地址.txt deleted file mode 100644 index 899f977..0000000 --- a/H01_PBSolver_TwoD_Backstep_Laminar_Re95_Unstruct_1CPU/grid/网格地址.txt +++ /dev/null @@ -1,5 +0,0 @@ -红山开源风雷算例库原始网格获取百度网盘链接: -链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA -提取码:w47m - -注:plot3D格式网格需同时下载.grd和.inp文件 \ No newline at end of file diff --git a/H02_PBSolver_TwoD_Cavity_Boussinesq_Laminar_Unstruct_1CPU/bin/boundary_condition_ref.hypara b/H02_PBSolver_TwoD_Cavity_Boussinesq_Laminar_Unstruct_1CPU/bin/boundary_condition_ref.hypara deleted file mode 100644 index ab8c3f3..0000000 --- a/H02_PBSolver_TwoD_Cavity_Boussinesq_Laminar_Unstruct_1CPU/bin/boundary_condition_ref.hypara +++ /dev/null @@ -1,73 +0,0 @@ -# nBoundaryConditions: Number of global boundary conditions. -# bcName : Boundary condition name. -# bcType(in PHengLEI): Boundary condition type. - -# How to set boundary condition, for example: -# string bcName = "Wall"; -# { -# int bcType = 2; -# int viscousType = 1; -# double wallTemperature = -1.0; -# double uWall = 0.0; -# double vWall = 0.0; -# double wWall = 0.0; -# } -# string bcName = "Inflow"; -# { -# int bcType = 5; -# int inflowParaType = 0; -# double refMachNumber = 0.73; -# double attackd = 2.79; -# double angleSlide = 0.0; -# double refReNumber = 6.5e6; -# double refDimensionalTemperature = 288.15; -# } - -# For more information, see examples/bin/boundary_condition.hypara file!!! - -int nBoundaryConditions = 4; -string bcName = "bottomwall"; -{ - string bodyName = "body"; - int bcType = 2; - string flowType = "FLOW_SOLID_SURFACE"; - string energyBoundaryType = "ENERGY_WALL"; -} -string bcName = "coldwall"; -{ - string bodyName = "body"; - int bcType = 2; - string flowType = "FLOW_SOLID_SURFACE"; - string energyBoundaryType = "ENERGY_WALL"; - double T = 290.0; -} -string bcName = "hotwall"; -{ - string bodyName = "body"; - int bcType = 2; - string flowType = "FLOW_SOLID_SURFACE"; - string energyBoundaryType = "ENERGY_WALL"; - double T = 305.0; -} -string bcName = "topwall"; -{ - string bodyName = "body"; - int bcType = 2; - string flowType = "FLOW_SOLID_SURFACE"; - string energyBoundaryType = "ENERGY_WALL"; -} - -# 'bcType' is defined as following: -# -2: WAKE -# -1: INTERFACE -# 0 : NO_BOUNDARY_CONDITION -# 1 : EXTRAPOLATION -# 2 : SOLID_SURFACE -# 3 : SYMMETRY -# 4 : FARFIELD -# 5 : INFLOW -# 6 : OUTFLOW -# 52: PRESSURE_INLET -# 62: PRESSURE_OUTLET -# 61: OUTFLOW_CONFINED -# 7 : POLE diff --git a/H02_PBSolver_TwoD_Cavity_Boussinesq_Laminar_Unstruct_1CPU/bin/cfd_para_incompressible.hypara b/H02_PBSolver_TwoD_Cavity_Boussinesq_Laminar_Unstruct_1CPU/bin/cfd_para_incompressible.hypara deleted file mode 100644 index e51c789..0000000 --- a/H02_PBSolver_TwoD_Cavity_Boussinesq_Laminar_Unstruct_1CPU/bin/cfd_para_incompressible.hypara +++ /dev/null @@ -1,214 +0,0 @@ -######################################################################### -# General Control Parameter # -######################################################################### -// nIsComputeWallDist: Whether to compute the wall distance. -// 0 -- Compute wall distance. -// 1 -- Not compute. -// gridfile: The partitioned Grid file path, using relative path, -// which is relative to the working directory. -// maxSimuStep: The max simulation step, don't care simulation is restart or not. -// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved. -// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved. -// intervalStepRes: The step intervals for residual 'res.dat' saved. -// 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. -// compressible: An indicator that distinguishes density base from pressure base. 0-incompressible, 1-compressible -// isUnsteady: An indicator that distinguishes unsteady problem from steady problem. 0-steady, 1-unsteady -// startTime: The initial time of the unsteady simulation. -// endTime: The end time of the unsteady simulation. -// dt: The time interval of the unsteady simulation. -// innerIter: The number of step for current time. -// OutputTimeStep: The interval step of output for unsteady simulation. - -int nIsComputeWallDist = 1; -string gridfile = "./grid/run.fts"; -int maxSimuStep = 10000; -int intervalStepFlow = 2000; -int intervalStepPlot = 1000; -int intervalStepRes = 10; - -double gridScaleFactor = 1.0; - -int compressible = 0; -int iunsteady = 0; -double startTime = 0.0; -double endTime = 20.0; -double dt = 0.1; -int innerIter = 10; -int OutputTimeStep = 5; - -######################################################################### -# Post-Processing # -######################################################################### -// nVisualVariables: Number of variables want to be dumped for tecplot visualization. -// visualVariables : Variable types dumped, listed as following: -// -- U(22), V(23), W(24), P(25), CP(26), T(27), DEN(28), VIS(29), TE(31), ED(32), enthalpy(70) -// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! -// Variables order must from small to big. - -int nVisualVariables = 6; -int visualVariables[] = [22, 23, 24, 25, 27, 70]; - -######################################################################### -# Flow Parameter # -######################################################################### -string FLOW[] = "FLOW"; - -// Initial value of variables or constant -double initRho = 1.1405; -double initMu = 1.7894e-5; -double initU = 0; -double initV = 0; -double initW = 0; -double initP = 0; - -// Relaxing factor -double urfU = 0.7; -double urfV = 0.7; -double urfW = 0.7; -double urfP = 0.3; -double urfFlux = 0.0; - -// Tolerance for governing equations -double resU = 1e-6; -double resV = 1e-6; -double resW = 1e-5; -double resP = 1e-5; - -// Solver for solving linear system -// : CGS/GMRES/BiCGSTAB/AMG -string iterSolvU = "BiCGSTAB"; -string iterSolvV = "BiCGSTAB"; -string iterSolvW = "BiCGSTAB"; -string iterSolvP = "GMRES"; - -// Max Iter for solving linear system -int maxSweepU = 30; -int maxSweepV = 30; -int maxSweepW = 30; -int maxSweepP = 30; - -// Tolerance for solving linear system -double iterSolvTolU = 1e-3; -double iterSolvTolV = 1e-3; -double iterSolvTolW = 1e-3; -double iterSolvTolP = 1e-2; - -// Gradient Calculation -// : GAUSS/LSQ -string UGradCalc = "GAUSS"; -string VGradCalc = "GAUSS"; -string WGradCalc = "GAUSS"; -string PGradCalc = "GAUSS"; - -// Convection scheme -// : UPWIND/CDS/QUICK/SUDS -string flowConvCalc = "UPWIND"; - -// Diffusion scheme(central difference) -// : NON_ORTHOGONAL -string flowDiffCalc = "NON_ORTHOGONAL"; - -// Transient scheme -// : CRANK_NICOLSON/IMPLICIT_2ND_ORDER/IMPLICIT_EULER -string flowTranCalc = "IMPLICIT_EULER"; - -// Source for flow -// : FLOW_DEFAULT/FLOW_GRAVITY -//string flowSourceCalc[] = "FLOW_DEFAULT"; - -string flowSourceCalc[] = "FLOW_DEFAULT FLOW_GRAVITY"; -int bodyForceFlag = 1; -double gravityX = 0.0; -double gravityY = -9.81; -double gravityZ = 0.0; -int isBoussinesq = 1; -double thermalExpansion = 3.44827e-3; -double refT = 290; - -######################################################################### -# Turbulence Parameter # -######################################################################### -//int viscousType = 13; //SPALART_ALLMARAS = 11, KEPSILON = 13 - -//turb SA -string TURB_SA[] = ["TURB_SA"]; -string TURB_SA_SCALAR_NAME[] = ["kinetic"]; -double urfMu = 1.0; - -double kineticInitValue = 1.0; -string kineticConvCalc = "UPWIND"; -string kineticDiffCalc = "NON_ORTHOGONAL"; -string kineticSourceCalc[] = "TURB_SA_DEFAULT"; -double kineticUrf = 1.0; -double kineticRes = 1e-6; - -string turbIterSolv = "BiCGSTAB"; -int turbMaxSweep = 30; -double turbIterSolvTol = 1e-12; - - -//turb KEPSILON -string TURB_K_EPSILON[] = ["TURB_K","TURB_EPSILON"]; -string TURB_K_EPSILON_SCALAR_NAME[] = ["kinetic", "epsilon"]; - -string TURB_K[] = ["TURB_K"]; -string TURB_K_SCALAR_NAME[] = ["kinetic"]; -string TURB_EPSILON[] = ["TURB_EPSILON"]; -string TURB_EPSILON_SCALAR_NAME[] = ["epsilon"]; -double urfMu = 1.0; - -// turb k -double kineticInitValue = 1.0; -string kineticConvCalc = "UPWIND"; -string kineticDiffCalc = "NON_ORTHOGONAL"; -string kineticSourceCalc[] = "TURB_K_DEFAULT"; -double kineticUrf = 1.0; -double kineticRes = 1e-6; - -// turb epsilon -double epsilonInitValue = 1.0; -string epsilonConvCalc = "UPWIND"; -string epsilonDiffCalc = "NON_ORTHOGONAL"; -string epsilonSourceCalc[] = "TURB_EPSILON_DEFAULT"; -double epsilonUrf = 1.0; -double epsilonRes = 1e-6; - -######################################################################### -# Energy Parameter # -######################################################################### -// energyType: The energy solver switch. 0-off, 1-on -// ENERGY[]: Solver binding for factory mode. -// ENERGY_SCALAR_NAME[]: The name of variable to be solved in energy equation. -// energyPrintName[]: The output on the screen during the solution. - -int energyType = 1; -string ENERGY[] = ["ENERGY"]; -string ENERGY_SCALAR_NAME[] = "enthalpy"; -string energyPrintName[] = ["H"]; - -// Initial value of variables or constant -double initT = 295; -double initK = 0.0242; -double initCPg = 1006.43; -double urfT = 0.2; -double urfH = 0.2; -double enthalpyInitValue = 0.21; - -// Discrete schemes -string energyConvCalc = "UPWIND"; -string energyDiffCalc = "NON_ORTHOGONAL"; -string energySourceCalc[] = ["EMPTY"]; -string energyGradCalc = "GAUSS"; -string energyTranCalc = "IMPLICIT_EULER"; - -// Set for solving linear equations -string enthalpyIterSolv = "BiCGSTAB"; -int enthalpyMaxSweep = 30; -double enthalpyIterSolvTol = 1e-12; -double enthalpyRes = 1e-6; \ No newline at end of file diff --git a/H02_PBSolver_TwoD_Cavity_Boussinesq_Laminar_Unstruct_1CPU/bin/grid_para.hypara b/H02_PBSolver_TwoD_Cavity_Boussinesq_Laminar_Unstruct_1CPU/bin/grid_para.hypara deleted file mode 100644 index b66d187..0000000 --- a/H02_PBSolver_TwoD_Cavity_Boussinesq_Laminar_Unstruct_1CPU/bin/grid_para.hypara +++ /dev/null @@ -1,30 +0,0 @@ -######################################################################### -# 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 = 0; -int axisup = 1; -int from_gtype = 5; - -######################################################################### -# File path # -######################################################################### -// from_gfile: path of original data file for unstructure grid convert from. -// out_gfile: path of target file for grid convert to, *.fts type of file usually. -string from_gfile = "./grid/run.cas"; -string out_gfile = "./grid/run.fts"; diff --git a/H02_PBSolver_TwoD_Cavity_Boussinesq_Laminar_Unstruct_1CPU/grid/网格地址.txt b/H02_PBSolver_TwoD_Cavity_Boussinesq_Laminar_Unstruct_1CPU/grid/网格地址.txt deleted file mode 100644 index 899f977..0000000 --- a/H02_PBSolver_TwoD_Cavity_Boussinesq_Laminar_Unstruct_1CPU/grid/网格地址.txt +++ /dev/null @@ -1,5 +0,0 @@ -红山开源风雷算例库原始网格获取百度网盘链接: -链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA -提取码:w47m - -注:plot3D格式网格需同时下载.grd和.inp文件 \ No newline at end of file diff --git a/H03_PBSolver_TwoD_Cavity_Laminar_Re1000_Unstruct_1CPU/bin/boundary_condition_ref.hypara b/H03_PBSolver_TwoD_Cavity_Laminar_Re1000_Unstruct_1CPU/bin/boundary_condition_ref.hypara deleted file mode 100644 index 5666545..0000000 --- a/H03_PBSolver_TwoD_Cavity_Laminar_Re1000_Unstruct_1CPU/bin/boundary_condition_ref.hypara +++ /dev/null @@ -1,68 +0,0 @@ -# nBoundaryConditions: Number of global boundary conditions. -# bcName : Boundary condition name. -# bcType(in PHengLEI): Boundary condition type. - -# How to set boundary condition, for example: -# string bcName = "Wall"; -# { -# int bcType = 2; -# int viscousType = 1; -# double wallTemperature = -1.0; -# double uWall = 0.0; -# double vWall = 0.0; -# double wWall = 0.0; -# } -# string bcName = "Inflow"; -# { -# int bcType = 5; -# int inflowParaType = 0; -# double refMachNumber = 0.73; -# double attackd = 2.79; -# double angleSlide = 0.0; -# double refReNumber = 6.5e6; -# double refDimensionalTemperature = 288.15; -# } - -# For more information, see examples/bin/boundary_condition.hypara file!!! - -int nBoundaryConditions = 4; -string bcName = "bottom"; -{ - string bodyName = "body"; - int bcType = 2; - string flowType = "FLOW_SOLID_SURFACE"; -} -string bcName = "left"; -{ - string bodyName = "body"; - int bcType = 2; - string flowType = "FLOW_SOLID_SURFACE"; -} -string bcName = "right"; -{ - string bodyName = "body"; - int bcType = 2; - string flowType = "FLOW_SOLID_SURFACE"; -} -string bcName = "top"; -{ - string bodyName = "body"; - int bcType = 2; - string flowType = "FLOW_SOLID_SURFACE"; - double flowU = 1.0; -} - -# 'bcType' is defined as following: -# -2: WAKE -# -1: INTERFACE -# 0 : NO_BOUNDARY_CONDITION -# 1 : EXTRAPOLATION -# 2 : SOLID_SURFACE -# 3 : SYMMETRY -# 4 : FARFIELD -# 5 : INFLOW -# 6 : OUTFLOW -# 52: PRESSURE_INLET -# 62: PRESSURE_OUTLET -# 61: OUTFLOW_CONFINED -# 7 : POLE diff --git a/H03_PBSolver_TwoD_Cavity_Laminar_Re1000_Unstruct_1CPU/bin/cfd_para_incompressible.hypara b/H03_PBSolver_TwoD_Cavity_Laminar_Re1000_Unstruct_1CPU/bin/cfd_para_incompressible.hypara deleted file mode 100644 index 5f04ee5..0000000 --- a/H03_PBSolver_TwoD_Cavity_Laminar_Re1000_Unstruct_1CPU/bin/cfd_para_incompressible.hypara +++ /dev/null @@ -1,197 +0,0 @@ -######################################################################### -# General Control Parameter # -######################################################################### -// nIsComputeWallDist: Whether to compute the wall distance. -// 0 -- Compute wall distance. -// 1 -- Not compute. -// gridfile: The partitioned Grid file path, using relative path, -// which is relative to the working directory. -// maxSimuStep: The max simulation step, don't care simulation is restart or not. -// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved. -// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved. -// intervalStepRes: The step intervals for residual 'res.dat' saved. -// 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. -// compressible: An indicator that distinguishes density base from pressure base. 0-incompressible, 1-compressible -// isUnsteady: An indicator that distinguishes unsteady problem from steady problem. 0-steady, 1-unsteady -// startTime: The initial time of the unsteady simulation. -// endTime: The end time of the unsteady simulation. -// dt: The time interval of the unsteady simulation. -// innerIter: The number of step for current time. -// OutputTimeStep: The interval step of output for unsteady simulation. - -int nIsComputeWallDist = 1; -string gridfile = "./grid/cavity.fts"; -int maxSimuStep = 10000; -int intervalStepFlow = 2000; -int intervalStepPlot = 2000; -int intervalStepRes = 10; - -double gridScaleFactor = 1.0; - -int compressible = 0; -int iunsteady = 0; -double startTime = 0.0; -double endTime = 30; -double dt = 0.1; -int innerIter = 10; -int OutputTimeStep = 5; - -######################################################################### -# Post-Processing # -######################################################################### -// nVisualVariables: Number of variables want to be dumped for tecplot visualization. -// visualVariables : Variable types dumped, listed as following: -// -- U(22), V(23), W(24), P(25), CP(26), T(27), DEN(28), VIS(29), TE(31), ED(32), enthalpy(70) -// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! -// Variables order must from small to big. - -int nVisualVariables = 4; -int visualVariables[] = [22, 23, 24, 25]; -######################################################################### -# Flow Parameter # -######################################################################### -string FLOW[] = "FLOW"; - -// Initial value of variables or constant -double initRho = 1.0; -double initMu = 0.001; -double initU = 0; -double initV = 0; -double initW = 0; -double initP = 0; - -// Relaxing factor -double urfU = 0.4; -double urfV = 0.4; -double urfW = 0.4; -double urfP = 0.7; -double urfFlux = 0.4; - -// Tolerance for governing equations -double resU = 1e-6; -double resV = 1e-6; -double resW = 1e-5; -double resP = 1e-5; - -// Solver for solving linear system -// : CGS/GMRES/BiCGSTAB/AMG -string iterSolvU = "BiCGSTAB"; -string iterSolvV = "BiCGSTAB"; -string iterSolvW = "BiCGSTAB"; -string iterSolvP = "GMRES"; - -// Max Iter for solving linear system -int maxSweepU = 30; -int maxSweepV = 30; -int maxSweepW = 30; -int maxSweepP = 30; - -// Tolerance for solving linear system -double iterSolvTolU = 1e-3; -double iterSolvTolV = 1e-3; -double iterSolvTolW = 1e-3; -double iterSolvTolP = 1e-2; - -// Gradient Calculation -// : GAUSS/LSQ -string UGradCalc = "GAUSS"; -string VGradCalc = "GAUSS"; -string WGradCalc = "GAUSS"; -string PGradCalc = "GAUSS"; - -// Convection scheme -// : UPWIND/CDS/QUICK/SUDS -string flowConvCalc = "UPWIND"; - -// Diffusion scheme(central difference) -// : NON_ORTHOGONAL -string flowDiffCalc = "NON_ORTHOGONAL"; - -// Transient scheme -// : CRANK_NICOLSON/IMPLICIT_2ND_ORDER/IMPLICIT_EULER -string flowTranCalc = "IMPLICIT_EULER"; - -// Source for flow -// : FLOW_DEFAULT/FLOW_GRAVITY -string flowSourceCalc[] = "FLOW_DEFAULT"; - -// string flowSourceCalc[] = "FLOW_DEFAULT FLOW_GRAVITY"; -int bodyForceFlag = 0; -int isBoussinesq = 0; -//double gravityX = 0.0; -//double gravityY = -9.81; -//double gravityZ = 0.0; - -######################################################################### -# Turbulence Parameter # -######################################################################### -// turb K-EPSILON -//int viscousType = 13; //SPALART_ALLMARAS = 11, KEPSILON = 13 -string TURB_K_EPSILON[] = ["TURB_K","TURB_EPSILON"]; -string TURB_K_EPSILON_SCALAR_NAME[] = ["kinetic", "epsilon"]; - -string turbIterSolv = "BiCGSTAB"; -int turbMaxSweep = 30; -double turbIterSolvTol = 1e-12; - -string TURB_K[] = ["TURB_K"]; -string TURB_K_SCALAR_NAME[] = ["kinetic"]; -string TURB_EPSILON[] = ["TURB_EPSILON"]; -string TURB_EPSILON_SCALAR_NAME[] = ["epsilon"]; -double urfMu = 1.0; - -// turb k -double kineticInitValue = 1.0; -string kineticConvCalc = "UPWIND"; -string kineticDiffCalc = "NON_ORTHOGONAL"; -string kineticSourceCalc[] = "TURB_K_DEFAULT"; -double kineticUrf = 1.0; -double kineticRes = 1e-6; - -// turb epsilon -double epsilonInitValue = 1.0; -string epsilonConvCalc = "UPWIND"; -string epsilonDiffCalc = "NON_ORTHOGONAL"; -string epsilonSourceCalc[] = "TURB_EPSILON_DEFAULT"; -double epsilonUrf = 1.0; -double epsilonRes = 1e-6; - -######################################################################### -# Energy Parameter # -######################################################################### -// energyType: The energy solver switch. 0-off, 1-on -// ENERGY[]: Solver binding for factory mode. -// ENERGY_SCALAR_NAME[]: The name of variable to be solved in energy equation. -// energyPrintName[]: The output on the screen during the solution. - -int energyType = 0; -string ENERGY[] = ["ENERGY"]; -string ENERGY_SCALAR_NAME[] = "enthalpy"; -string energyPrintName[] = ["H"]; - -// Initial value of variables or constant -double initT = 273.0; -double initK = 0.026; -double initCPg = 1007.0; -double urfT = 0.8; -double urfH = 0.7; -double enthalpyInitValue = 0.21; - -// Discrete schemes -string energyConvCalc = "UPWIND"; -string energyDiffCalc = "NON_ORTHOGONAL"; -string energySourceCalc[] = ["EMPTY"]; -string energyGradCalc = "GAUSS"; -string energyTranCalc = "IMPLICIT_EULER"; - -// Set for solving linear equations -string enthalpyIterSolv = "BiCGSTAB"; -int enthalpyMaxSweep = 30; -double enthalpyIterSolvTol = 1e-12; -double enthalpyRes = 1e-6; \ No newline at end of file diff --git a/H03_PBSolver_TwoD_Cavity_Laminar_Re1000_Unstruct_1CPU/bin/grid_para.hypara b/H03_PBSolver_TwoD_Cavity_Laminar_Re1000_Unstruct_1CPU/bin/grid_para.hypara deleted file mode 100644 index b90c53e..0000000 --- a/H03_PBSolver_TwoD_Cavity_Laminar_Re1000_Unstruct_1CPU/bin/grid_para.hypara +++ /dev/null @@ -1,30 +0,0 @@ -######################################################################### -# 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 = 0; -int axisup = 1; -int from_gtype = 5; - -######################################################################### -# File path # -######################################################################### -// from_gfile: path of original data file for unstructure grid convert from. -// out_gfile: path of target file for grid convert to, *.fts type of file usually. -string from_gfile = "./grid/cavity.cas"; -string out_gfile = "./grid/cavity.fts"; diff --git a/H03_PBSolver_TwoD_Cavity_Laminar_Re1000_Unstruct_1CPU/grid/网格地址.txt b/H03_PBSolver_TwoD_Cavity_Laminar_Re1000_Unstruct_1CPU/grid/网格地址.txt deleted file mode 100644 index 899f977..0000000 --- a/H03_PBSolver_TwoD_Cavity_Laminar_Re1000_Unstruct_1CPU/grid/网格地址.txt +++ /dev/null @@ -1,5 +0,0 @@ -红山开源风雷算例库原始网格获取百度网盘链接: -链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA -提取码:w47m - -注:plot3D格式网格需同时下载.grd和.inp文件 \ No newline at end of file diff --git a/H04_PBSolver_ThreeD_Pipe_Turb_Unstruct_1CPU/bin/boundary_condition_ref.hypara b/H04_PBSolver_ThreeD_Pipe_Turb_Unstruct_1CPU/bin/boundary_condition_ref.hypara deleted file mode 100644 index 9cf8c2f..0000000 --- a/H04_PBSolver_ThreeD_Pipe_Turb_Unstruct_1CPU/bin/boundary_condition_ref.hypara +++ /dev/null @@ -1,71 +0,0 @@ -# nBoundaryConditions: Number of global boundary conditions. -# bcName : Boundary condition name. -# bcType(in PHengLEI): Boundary condition type. - -# How to set boundary condition, for example: -# string bcName = "Wall"; -# { -# int bcType = 2; -# int viscousType = 1; -# double wallTemperature = -1.0; -# double uWall = 0.0; -# double vWall = 0.0; -# double wWall = 0.0; -# } -# string bcName = "Inflow"; -# { -# int bcType = 5; -# int inflowParaType = 0; -# double refMachNumber = 0.73; -# double attackd = 2.79; -# double angleSlide = 0.0; -# double refReNumber = 6.5e6; -# double refDimensionalTemperature = 288.15; -# } - -# For more information, see examples/bin/boundary_condition.hypara file!!! - -int nBoundaryConditions = 3; -string bcName = "in"; -{ - int bcType = 5; - string flowType = "FLOW_VELOCITY_INLET"; - string kineticBoundaryType = "TURB_K_INLET"; - string epsilonBoundaryType = "TURB_EPSILON_INLET"; - double flowW = 50; - double kinetic = 9.375004; - double epsilon = 54151.86; -} -string bcName = "out"; -{ - int bcType = 6; - string flowType = "FLOW_PRESSURE_OUTLET"; - string kineticBoundaryType = "TURB_K_PRESSUREOUTLET"; - string epsilonBoundaryType = "TURB_EPSILON_PRESSUREOUTLET"; - double flowP = 0; - double kinetic = 9.375004; - double epsilon = 54151.86; -} -string bcName = "wall"; -{ - string bodyName = "body"; - int bcType = 2; - string flowType = "FLOW_SOLID_SURFACE"; - string kineticBoundaryType = "TURB_K_WALL"; - string epsilonBoundaryType = "TURB_EPSILON_WALL"; -} - -# 'bcType' is defined as following: -# -2: WAKE -# -1: INTERFACE -# 0 : NO_BOUNDARY_CONDITION -# 1 : EXTRAPOLATION -# 2 : SOLID_SURFACE -# 3 : SYMMETRY -# 4 : FARFIELD -# 5 : INFLOW -# 6 : OUTFLOW -# 52: PRESSURE_INLET -# 62: PRESSURE_OUTLET -# 61: OUTFLOW_CONFINED -# 7 : POLE diff --git a/H04_PBSolver_ThreeD_Pipe_Turb_Unstruct_1CPU/bin/cfd_para_incompressible.hypara b/H04_PBSolver_ThreeD_Pipe_Turb_Unstruct_1CPU/bin/cfd_para_incompressible.hypara deleted file mode 100644 index 3048a1c..0000000 --- a/H04_PBSolver_ThreeD_Pipe_Turb_Unstruct_1CPU/bin/cfd_para_incompressible.hypara +++ /dev/null @@ -1,202 +0,0 @@ -######################################################################### -# General Control Parameter # -######################################################################### -// nIsComputeWallDist: Whether to compute the wall distance. -// 0 -- Compute wall distance. -// 1 -- Not compute. -// gridfile: The partitioned Grid file path, using relative path, -// which is relative to the working directory. -// maxSimuStep: The max simulation step, don't care simulation is restart or not. -// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved. -// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved. -// intervalStepRes: The step intervals for residual 'res.dat' saved. -// 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. -// compressible: An indicator that distinguishes density base from pressure base. 0-incompressible, 1-compressible -// isUnsteady: An indicator that distinguishes unsteady problem from steady problem. 0-steady, 1-unsteady -// startTime: The initial time of the unsteady simulation. -// endTime: The end time of the unsteady simulation. -// dt: The time interval of the unsteady simulation. -// innerIter: The number of step for current time. -// OutputTimeStep: The interval step of output for unsteady simulation. - -int nIsComputeWallDist = 1; -string gridfile = "./grid/pipe.fts"; -int maxSimuStep = 10000; -int intervalStepFlow = 1000; -int intervalStepPlot = 1000; -int intervalStepRes = 1000; - -double gridScaleFactor = 1; - -int compressible = 0; -int iunsteady = 0; -double startTime = 0.0; -double endTime = 5; -double dt = 0.1; -int innerIter = 10; -int OutputTimeStep = 5; - -######################################################################### -# Post-Processing # -######################################################################### -// nVisualVariables: Number of variables want to be dumped for tecplot visualization. -// visualVariables : Variable types dumped, listed as following: -// -- U(22), V(23), W(24), P(25), CP(26), T(27), DEN(28), VIS(29), TE(31), ED(32), enthalpy(57) -// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! -// Variables order must from small to big. -// plotFieldType: If dump out the field results to visulization. - -int plotFieldType = 1; -//int nVisualVariables = 4; -//int visualVariables[] = [22, 23, 24, 25]; - -int nVisualVariables = 7; -int visualVariables[] = [22, 23, 24, 25, 29,31,32]; -######################################################################### -# Flow Parameter # -######################################################################### -string FLOW[] = "FLOW"; - -// Initial value of variables or constant -double initRho = 1.225; -double initMu = 1.7894e-05; -double initU = 0; -double initV = 0; -double initW = 50; -double initP = 0; - -// Relaxing factor -double urfU = 0.4; -double urfV = 0.4; -double urfW = 0.4; -double urfP = 0.3; -double urfFlux = 0.4; - -// Tolerance for governing equations -double resU = 1e-6; -double resV = 1e-6; -double resW = 1e-5; -double resP = 1e-5; - -// Solver for solving linear system -// : CGS/GMRES/BiCGSTAB/AMG -string iterSolvU = "BiCGSTAB"; -string iterSolvV = "BiCGSTAB"; -string iterSolvW = "BiCGSTAB"; -string iterSolvP = "AMG"; - -// Max Iter for solving linear system -int maxSweepU = 30; -int maxSweepV = 30; -int maxSweepW = 30; -int maxSweepP = 30; - -// Tolerance for solving linear system -double iterSolvTolU = 1e-4; -double iterSolvTolV = 1e-4; -double iterSolvTolW = 1e-4; -double iterSolvTolP = 1e-3; - -// Gradient Calculation -// : GAUSS/LSQ -string UGradCalc = "GAUSS"; -string VGradCalc = "GAUSS"; -string WGradCalc = "GAUSS"; -string PGradCalc = "GAUSS"; - -// Convection scheme -// : UPWIND/CDS/QUICK/SUDS -string flowConvCalc = "UPWIND"; - -// Diffusion scheme(central difference) -// : NON_ORTHOGONAL -string flowDiffCalc = "NON_ORTHOGONAL"; - -// Transient scheme -// : CRANK_NICOLSON/IMPLICIT_2ND_ORDER/IMPLICIT_EULER -string flowTranCalc = "IMPLICIT_EULER"; - -// Source for flow -// : FLOW_DEFAULT/FLOW_GRAVITY -string flowSourceCalc[] = "FLOW_DEFAULT"; - -//string flowSourceCalc[] = "FLOW_DEFAULT FLOW_GRAVITY"; -int bodyForceFlag = 0; -double gravityX = 0.0; -double gravityY = -9.81; -double gravityZ = 0.0; - -######################################################################### -# Turbulence Parameter # -######################################################################### -int viscousType = 13; //SPALART_ALLMARAS = 11, KEPSILON = 13 - -//turb K-EPSILON -string TURB_K_EPSILON[] = ["TURB_K","TURB_EPSILON"]; -string TURB_K_EPSILON_SCALAR_NAME[] = ["kinetic", "epsilon"]; - -string TURB_K[] = ["TURB_K"]; -string TURB_K_SCALAR_NAME[] = ["kinetic"]; -string TURB_EPSILON[] = ["TURB_EPSILON"]; -string TURB_EPSILON_SCALAR_NAME[] = ["epsilon"]; -double urfMu = 0.6; - -string turbIterSolv = "BiCGSTAB"; -int turbMaxSweep = 30; -double turbIterSolvTol = 1e-12; - -// turb k -double kineticInitValue = 9.375001; -string kineticConvCalc = "UPWIND"; -string kineticDiffCalc = "NON_ORTHOGONAL"; -string kineticSourceCalc[] = "TURB_K_DEFAULT"; -double kineticUrf = 0.6; -double kineticRes = 1e-6; - - -// turb epsilon -double epsilonInitValue = 54151.86; -string epsilonConvCalc = "UPWIND"; -string epsilonDiffCalc = "NON_ORTHOGONAL"; -string epsilonSourceCalc[] = "TURB_EPSILON_DEFAULT"; -double epsilonUrf = 0.6; -double epsilonRes = 1e-6; - -######################################################################### -# Energy Parameter # -######################################################################### -// energyType: The energy solver switch. 0-off, 1-on -// ENERGY[]: Solver binding for factory mode. -// ENERGY_SCALAR_NAME[]: The name of variable to be solved in energy equation. -// energyPrintName[]: The output on the screen during the solution. -int energyType = 0; -string ENERGY[] = ["ENERGY"]; -string ENERGY_SCALAR_NAME[] = "enthalpy"; -string energyPrintName[] = ["H"]; - -// Initial value of variables or constant -double initT = 273.0; -double initK = 0.026; -double initCPg = 1007.0; -double urfT = 0.8; -double urfH = 0.7; -double enthalpyInitValue = 0.21; - -// Discrete schemes -string energyConvCalc = "UPWIND"; -string energyDiffCalc = "NON_ORTHOGONAL"; -string energySourceCalc[] = ["EMPTY"]; -string energyGradCalc = "GAUSS"; -string energyTranCalc = "IMPLICIT_EULER"; - -// Set for solving linear equations -string enthalpyIterSolv = "BiCGSTAB"; -int enthalpyMaxSweep = 30; -double enthalpyIterSolvTol = 1e-12; -double enthalpyRes = 1e-6; \ No newline at end of file diff --git a/H04_PBSolver_ThreeD_Pipe_Turb_Unstruct_1CPU/bin/grid_para.hypara b/H04_PBSolver_ThreeD_Pipe_Turb_Unstruct_1CPU/bin/grid_para.hypara deleted file mode 100644 index fc56698..0000000 --- a/H04_PBSolver_ThreeD_Pipe_Turb_Unstruct_1CPU/bin/grid_para.hypara +++ /dev/null @@ -1,30 +0,0 @@ -######################################################################### -# 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 = 0; -int axisup = 1; -int from_gtype = 5; - -######################################################################### -# File path # -######################################################################### -// from_gfile: path of original data file for unstructure grid convert from. -// out_gfile: path of target file for grid convert to, *.fts type of file usually. -string from_gfile = "./grid/pipe.cas"; -string out_gfile = "./grid/pipe.fts"; diff --git a/H04_PBSolver_ThreeD_Pipe_Turb_Unstruct_1CPU/grid/网格地址.txt b/H04_PBSolver_ThreeD_Pipe_Turb_Unstruct_1CPU/grid/网格地址.txt deleted file mode 100644 index 899f977..0000000 --- a/H04_PBSolver_ThreeD_Pipe_Turb_Unstruct_1CPU/grid/网格地址.txt +++ /dev/null @@ -1,5 +0,0 @@ -红山开源风雷算例库原始网格获取百度网盘链接: -链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA -提取码:w47m - -注:plot3D格式网格需同时下载.grd和.inp文件 \ No newline at end of file diff --git a/H05_PBSolver_ThreeD_Suboff_Laminar_Re225_1CPU/bin/boundary_condition_ref.hypara b/H05_PBSolver_ThreeD_Suboff_Laminar_Re225_1CPU/bin/boundary_condition_ref.hypara deleted file mode 100644 index 5bd1dce..0000000 --- a/H05_PBSolver_ThreeD_Suboff_Laminar_Re225_1CPU/bin/boundary_condition_ref.hypara +++ /dev/null @@ -1,63 +0,0 @@ -# nBoundaryConditons : number of global boundary conditions. -# bcName : Boundary Condition Name. -# bcType(in PHengLEI): Boundary Condition Type. - -# Account of how to set boundaryconditon. -# string bcName = "Farfield"; -# { -# int bcType = 4; -# int inflowParaType = 1; -# double attackd = 0; -# double refReNumber = 6.5e6; -# double refMachNumber = 3.5; -# double angleSlide = 0; -# } - -int nBoundaryConditions = 5; -string bcName = "sym"; -{ - string bodyName = "body"; - int bcType = 2; - string flowType = "FLOW_SOLID_SURFACE"; -} -string bcName = "symf"; -{ - string bodyName = "body"; - int bcType = 2; - string flowType = "FLOW_SOLID_SURFACE"; -} -string bcName = "wall"; -{ - string bodyName = "body"; - int bcType = 2; - string flowType = "FLOW_SOLID_SURFACE"; -} -string bcName = "in"; -{ - int bcType = 5; - string flowType = "FLOW_VELOCITY_INLET"; - double flowU =0.1; -} -string bcName = "out"; -{ - int bcType = 6; - string flowType = "FLOW_PRESSURE_OUTLET"; - double flowU =0.1; - double flowP =0; -} - -# 'bcType' is defined as following: -# 99: PERIODIC -# -2: WAKE -# -1: INTERFACE -# 0 : NO_BOUNDARY_CONDITION -# 1 : EXTRAPOLATION -# 2 : SOLID_SURFACE -# 3 : SYMMETRY -# 4 : FARFIELD -# 5 : INFLOW -# 6 : OUTFLOW -# 52: PRESSURE_INLET -# 62: PRESSURE_OUTLET -# 61: OUTFLOW_CONFINED -# 7 : POLE diff --git a/H05_PBSolver_ThreeD_Suboff_Laminar_Re225_1CPU/bin/cfd_para_incompressible.hypara b/H05_PBSolver_ThreeD_Suboff_Laminar_Re225_1CPU/bin/cfd_para_incompressible.hypara deleted file mode 100644 index 3be1cac..0000000 --- a/H05_PBSolver_ThreeD_Suboff_Laminar_Re225_1CPU/bin/cfd_para_incompressible.hypara +++ /dev/null @@ -1,212 +0,0 @@ -######################################################################### -# General Control Parameter # -######################################################################### -// nIsComputeWallDist: Whether to compute the wall distance. -// 0 -- Compute wall distance. -// 1 -- Not compute. -// gridfile: The partitioned Grid file path, using relative path, -// which is relative to the working directory. -// maxSimuStep: The max simulation step, don't care simulation is restart or not. -// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved. -// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved. -// intervalStepRes: The step intervals for residual 'res.dat' saved. -// 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. -// compressible: An indicator that distinguishes density base from pressure base. 0-incompressible, 1-compressible -// isUnsteady: An indicator that distinguishes unsteady problem from steady problem. 0-steady, 1-unsteady -// startTime: The initial time of the unsteady simulation. -// endTime: The end time of the unsteady simulation. -// dt: The time interval of the unsteady simulation. -// innerIter: The number of step for current time. -// OutputTimeStep: The interval step of output for unsteady simulation. - -int nIsComputeWallDist = 1; -string gridfile = "./grid/suboff.fts"; -iint maxSimuStep = 10000; -int intervalStepFlow = 2000; -int intervalStepPlot = 2000; -int intervalStepRes = 2000; - -double gridScaleFactor = 1.0; - -int compressible = 0; -int iunsteady = 0; -double startTime = 0.0; -double endTime = 5; -double dt = 0.1; -int innerIter = 10; -int OutputTimeStep = 5; - -######################################################################### -# Post-Processing # -######################################################################### -// nVisualVariables: Number of variables want to be dumped for tecplot visualization. -// visualVariables : Variable types dumped, listed as following: -// -- U(22), V(23), W(24), P(25), CP(26), T(27), DEN(28), VIS(29), TE(31), ED(32), enthalpy(57) -// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! -// Variables order must from small to big. -// plotFieldType: If dump out the field results to visulization. - -int plotFieldType = 1; -int nVisualVariables = 4; -int visualVariables[] = [22, 23, 24, 25]; - -######################################################################### -# Flow Parameter # -######################################################################### -string FLOW[] = "FLOW"; - -// Initial value of variables or constant -double initRho = 998.3; -double initMu = 1.93345725; -double initU = 0.1; -double initV = 0; -double initW = 0; -double initP = 0; - -// Relaxing factor -double urfU = 0.4; -double urfV = 0.4; -double urfW = 0.4; -double urfP = 0.3; -double urfFlux = 0.4; - -// Tolerance for governing equations -double resU = 1e-6; -double resV = 1e-6; -double resW = 1e-5; -double resP = 1e-5; - -// Solver for solving linear system -// : CGS/GMRES/BiCGSTAB/AMG -string iterSolvU = "BiCGSTAB"; -string iterSolvV = "BiCGSTAB"; -string iterSolvW = "BiCGSTAB"; -string iterSolvP = "GMRES"; - -// Max Iter for solving linear system -int maxSweepU = 30; -int maxSweepV = 30; -int maxSweepW = 30; -int maxSweepP = 30; - -// Tolerance for solving linear system -double iterSolvTolU = 1e-4; -double iterSolvTolV = 1e-4; -double iterSolvTolW = 1e-4; -double iterSolvTolP = 1e-3; - -// Gradient Calculation -// : GAUSS/LSQ -string UGradCalc = "GAUSS"; -string VGradCalc = "GAUSS"; -string WGradCalc = "GAUSS"; -string PGradCalc = "GAUSS"; - -// Convection scheme -// : UPWIND/CDS/QUICK/SUDS -string flowConvCalc = "QUICK"; - -// Diffusion scheme(central difference) -// : NON_ORTHOGONAL -string flowDiffCalc = "NON_ORTHOGONAL"; - -// Transient scheme -// : CRANK_NICOLSON/IMPLICIT_2ND_ORDER/IMPLICIT_EULER -string flowTranCalc = "IMPLICIT_EULER"; - -// Source for flow -// : FLOW_DEFAULT/FLOW_GRAVITY -string flowSourceCalc[] = "FLOW_DEFAULT"; - -//string flowSourceCalc[] = "FLOW_DEFAULT FLOW_GRAVITY"; -int bodyForceFlag = 0; -//double gravityX = 0.0; -//double gravityY = -9.81; -//double gravityZ = 0.0; - -######################################################################### -# Turbulence Parameter # -######################################################################### -//int viscousType = 13; //SPALART_ALLMARAS = 11, KEPSILON = 13 - -//turb SA -//string TURB_SA[] = ["TURB_SA"]; -//string TURB_SA_SCALAR_NAME[] = ["kinetic"]; -//double urfMu = 1.0; - -//double kineticInitValue = 1.0; -//string kineticConvCalc = "UPWIND"; -//string kineticDiffCalc = "NON_ORTHOGONAL"; -//string kineticSourceCalc[] = "TURB_SA_DEFAULT"; -//double kineticUrf = 1.0 -//double kineticRes = 1e-6; - -//string turbIterSolv = "BiCGSTAB"; -//int turbMaxSweep = 30; -//double turbIterSolvTol = 1e-12; - - -//turb K-EPSILON -string TURB_K_EPSILON[] = ["TURB_K","TURB_EPSILON"]; -string TURB_K_EPSILON_SCALAR_NAME[] = ["kinetic", "epsilon"]; - -string TURB_K[] = ["TURB_K"]; -string TURB_K_SCALAR_NAME[] = ["kinetic"]; -string TURB_EPSILON[] = ["TURB_EPSILON"]; -string TURB_EPSILON_SCALAR_NAME[] = ["epsilon"]; -double urfMu = 0.4; - -// turb k -double kineticInitValue = 3.750003e-05; -string kineticConvCalc = "UPWIND"; -string kineticDiffCalc = "NON_ORTHOGONAL"; -string kineticSourceCalc[] = "TURB_K_DEFAULT"; -double kineticUrf = 0.4; -double kineticRes = 1e-6; - -// turb epsilon -double epsilonInitValue = 8.664311e-07; -string epsilonConvCalc = "UPWIND"; -string epsilonDiffCalc = "NON_ORTHOGONAL"; -string epsilonSourceCalc[] = "TURB_EPSILON_DEFAULT"; -double epsilonUrf = 0.4; -double epsilonRes = 1e-6; - -######################################################################### -# Energy Parameter # -######################################################################### -// energyType: The energy solver switch. 0-off, 1-on -// ENERGY[]: Solver binding for factory mode. -// ENERGY_SCALAR_NAME[]: The name of variable to be solved in energy equation. -// energyPrintName[]: The output on the screen during the solution. -int energyType = 0; -string ENERGY[] = ["ENERGY"]; -string ENERGY_SCALAR_NAME[] = "enthalpy"; -string energyPrintName[] = ["H"]; - -// Initial value of variables or constant -double initT = 273.0; -double initK = 0.026; -double initCPg = 1007.0; -double urfT = 0.8; -double urfH = 0.7; -double enthalpyInitValue = 0.21; - -// Discrete schemes -string energyConvCalc = "UPWIND"; -string energyDiffCalc = "NON_ORTHOGONAL"; -string energySourceCalc[] = ["EMPTY"]; -string energyGradCalc = "GAUSS"; -string energyTranCalc = "IMPLICIT_EULER"; - -// Set for solving linear equations -string enthalpyIterSolv = "BiCGSTAB"; -int enthalpyMaxSweep = 30; -double enthalpyIterSolvTol = 1e-12; -double enthalpyRes = 1e-6; \ No newline at end of file diff --git a/H05_PBSolver_ThreeD_Suboff_Laminar_Re225_1CPU/bin/grid_para.hypara b/H05_PBSolver_ThreeD_Suboff_Laminar_Re225_1CPU/bin/grid_para.hypara deleted file mode 100644 index 43b3aa9..0000000 --- a/H05_PBSolver_ThreeD_Suboff_Laminar_Re225_1CPU/bin/grid_para.hypara +++ /dev/null @@ -1,30 +0,0 @@ -######################################################################### -# 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 = 0; -int axisup = 1; -int from_gtype = 5; - -######################################################################### -# File path # -######################################################################### -// from_gfile: path of original data file for unstructure grid convert from. -// out_gfile: path of target file for grid convert to, *.fts type of file usually. -string from_gfile = "./grid/suboff.cas"; -string out_gfile = "./grid/suboff.fts"; diff --git a/H05_PBSolver_ThreeD_Suboff_Laminar_Re225_1CPU/grid/网格地址.txt b/H05_PBSolver_ThreeD_Suboff_Laminar_Re225_1CPU/grid/网格地址.txt deleted file mode 100644 index 899f977..0000000 --- a/H05_PBSolver_ThreeD_Suboff_Laminar_Re225_1CPU/grid/网格地址.txt +++ /dev/null @@ -1,5 +0,0 @@ -红山开源风雷算例库原始网格获取百度网盘链接: -链接:http://pan.baidu.com/s/1aZ9cdkp6CkT9il4fEpnTcA -提取码:w47m - -注:plot3D格式网格需同时下载.grd和.inp文件 \ No newline at end of file diff --git a/H02_PBSolver_TwoD_Cavity_Boussinesq_Laminar_Unstruct_1CPU/bin/cfd_para.hypara b/L01_TwoD_Cavity_BGK_MPI_1CPU/bin/cfd_para.hypara similarity index 60% rename from H02_PBSolver_TwoD_Cavity_Boussinesq_Laminar_Unstruct_1CPU/bin/cfd_para.hypara rename to L01_TwoD_Cavity_BGK_MPI_1CPU/bin/cfd_para.hypara index c344658..f903a5a 100644 --- a/H02_PBSolver_TwoD_Cavity_Boussinesq_Laminar_Unstruct_1CPU/bin/cfd_para.hypara +++ b/L01_TwoD_Cavity_BGK_MPI_1CPU/bin/cfd_para.hypara @@ -8,23 +8,24 @@ // Platform for Hybrid Engineering Simulation of Flows + // China Aerodynamics Research and Development Center + // (C) Copyright, Since 2010 + +// PHengLEI 2212 + //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ########################################################################### # Default parameters for Grid conversion # ########################################################################### // gridtype: Grid type for generation, conversion, reconstruction, merging. -// 0 -- Unstructured grid. -// 1 -- Structured grid. -// 2 -- Hybrid grid, include both of unstructured and structured grid. -// gridobj: Task type of grid treatment. -// 0 -- Grid generation of typical case, such as cylinder, flat plate, etc. -// 1 -- Grid conversion, from other grid data to PHenglEI, such as Fluent, CGNS. -// 2 -- Grid refinement. -// 3 -- Grid merging, merge two blocks into one block. -// 4 -- Grid deformation, achieve unstructured grid deformation. -// 5 -- Grid repairing, repair the original grid in order to remove the negative volume cells. -// 6 -- Grid mirroring, mirror a symmetry grid to whole grid. -// 7 -- Grid type change, convert structured grid to unstructured grid. +// 0 -- Unstructured grid. +// 1 -- Structured grid. +// 2 -- Hybrid grid, include both of unstructured and structured grid. +// gridobj: Task type of grid treatment. +// 0 -- Grid generation of typical case, such as cylinder, flat plate, etc. +// 1 -- Grid conversion, from other grid data to PHenglEI, such as Fluent, CGNS. +// 2 -- Grid refinement. +// 3 -- Grid merging, merge two blocks into one block. +// 4 -- Grid deformation, achieve unstructured grid deformation. +// 5 -- Grid repairing, repair the original grid in order to remove the negative volume cells. +// 6 -- Grid mirroring, mirror a symmetry grid to whole grid. +// 7 -- Grid type change, convert structured grid to unstructured grid. // multiblock: Multi-block grid or not, only for structured grid conversion. // 0 -- Not. // 1 -- Yes. @@ -46,19 +47,24 @@ int gridobj = 1; int multiblock = 0; int iadapt = 0; int SymmetryFaceVector = 1; - int gridReorder = 0; int faceReorderMethod = 0; -// axisup: Type of Cartisien coordinates system, used in grid conversion. -// 1 -- Y upward. (default) -// 2 -- Z upward. -int axisup = 1; +// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating. +// axisRotateOrder : axis rotating order. +// 1 -- X-axis. +// 2 -- Y-axis. +// 3 -- Z-axis. +// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order. +int nAxisRotateTimes = 0; +int axisRotateOrder[] = [1, 2, 3]; +double axisRotateAngles[] = [0.0, 0.0, 0.0]; // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // 0 -- Interface. (default) // 1 -- Physical boundary condition, used in Hybrid solver. int omit_no_bound_bc = 0; +int omitRepeatInterface = 1; //----------------------------------------------------------------------- # Grid data type # @@ -87,10 +93,9 @@ int dumpOldGrid = 0; // from_gfile: path of original data file for unstructure grid convert from. // out_gfile: path of target file for grid convert to, *.fts type of file usually. int numberOfGridFile = 1; -string from_gfile = "./grid/rae2822_hybrid2d.cas"; -string from_gfile1= ""; - -string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; +string from_gfile = "./grid/rae2822_hybrid2d.cas"; +string from_gfile1 = ""; +string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; // ----------------- some advanced choices ------------------------------ // iunsteady: The Grid is for unsteady simulation or not. @@ -103,9 +108,9 @@ int fileformat = 0; // Parameters for hybrid solver. // mixgrid_uns: path of unstructure grid file for hybrid solver, *.fts type. -// mixgrid_str: path of structure grid file for hybrid solver, *.fts type. -string mixgrid_uns = "./grid/rae2822_uns2d_4.fts"; -string mixgrid_str = "./grid/flat_laminr_133_85_2d.fts"; +// mixgrid_str: path of structure grid file for hybrid solver, *.fts type. +string mixgrid_uns = "./grid/rae2822_uns2d_4.fts"; +string mixgrid_str = "./grid/flat_laminr_133_85_2d.fts"; // Some parameters for structured overlapping grid. int codeOfDigHoles = 1; @@ -119,31 +124,31 @@ string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; // 0 -- Not. (default) // 1 -- Yes. // geometryUnit: Geometry unit. -// 1 -- meter. -// 2 -- millimeter. -// 3 -- inch. +// 1 -- meter. +// 2 -- millimeter. +// 3 -- inch. // exclusiveCase: Parallel projection exclusive case. -// 0 -- NON case. -// 1 -- JSM-C2-NPOFF case. -// 2 -- CHNT. +// 0 -- NON case. +// 1 -- JSM-C2-NPOFF case. +// 2 -- CHNT. // projectOrgPoint: If the original wall points need to be projected or not. -int anisoRefine = 0; -int geometryUnit = 1; -int isProject = 0; -int readDist = 0; -int isDeform = 0; +int anisoRefine = 0; +int geometryUnit = 1; +int isProject = 0; +int readDist = 0; +int isDeform = 0; int exclusiveCase = 0; int projectOrgPoint = 0; string geometryFileName = "./grid/jsm.igs"; // ----------------- Grid Deform Parameters ----------------------------- // deformationMethod: Grid Deform. -// 1 -- SPRING. -// 2 -- RBF. +// 1 -- SPRING. +// 2 -- RBF. // stationalGridFile: Original grid file. // visualFileName : The visualization file path of deform grid. // nDeformStep : The max deform step. -// flapAngle : The max flap angle. +// flapAngle : The max flap angle. // rotatePostionZ : Rotate postion. // rotatePostionY : Rotate postion. // gridSlice : If dump slice grid. @@ -163,10 +168,10 @@ int sliceAxis = 1; double slicePosition = 13; // ----------------- RBF Parameters ------------------------------------- -// numberOfReferenceCP : Number of reference Control Points. -// influencePara : The RBF influence radius parameter. +// numberOfReferenceCP: Number of reference Control Points. +// influencePara : The RBF influence radius parameter. int numberOfReferenceCP = 40; -double influencePara = 25.0; +double influencePara = 25.0; // ----------------- Periodic Parameters -------------------------------- // Notice: Rotational periodicity only support rotation along the X axis! @@ -178,9 +183,8 @@ double influencePara = 25.0; which only support one direction. // rotationAngle: The relative angle between two periodic face. which is recorded in degrees. - int periodicType = 0; -double translationLength[] = [0.0,0.0,0.0]; +double translationLength[] = [0.0, 0.0, 0.0]; double rotationAngle = 0.0; ######################################################################### @@ -192,7 +196,6 @@ double rotationAngle = 0.0; // 2 -- refine structured grid. // maxproc: The number of partition zones that want to be divided into. // numberOfMultifile: The number of partition grid files that want to be dumped out. - int pgridtype = 0; int maxproc = 4; int numberOfMultifile = 1; @@ -201,20 +204,20 @@ int numberOfMultifile = 1; // 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. +// cellIndexOfMark : the cell index of mark, only for structured grid partition. int traceMark = 0; int blockIndexOfMark = 0; -int cellIndexOfMark[] = [185,30,1]; +int cellIndexOfMark[] = [185, 30, 1]; -// parallel Strategy: -//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. -//! -# 1 : random assigned for each zone or by some else ways. -int parallelStrategy = 1; +// parallelStrategy: +// 0 -- each zone is assigned to the one that defined in grid partition procedure. +// 1 -- random assigned for each zone or by some else ways. +int parallelStrategy = 1; //----------------------------------------------------------------------- # File path # //----------------------------------------------------------------------- -// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts). +// 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"; @@ -232,11 +235,10 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts"; // 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; +double parmetisBalance = 1.05; // numberOfMultigrid: Number of multi-grid levels, ONLY used for structured grid. // 1 -- single level. @@ -248,29 +250,35 @@ 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. +// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved. +// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. -// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. -// intervalStepRes: The step intervals for residual file 'res.dat' saved. -// 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; +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +int maxSimuStep = 20000; +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; int intervalStepSample = 1000; -int intervalStepForce = 100; -int intervalStepRes = 10; -int ifLowSpeedPrecon = 0; +int intervalStepForce = 100; +int intervalStepRes = 10; // compressible: // 0 -- incompressible flow. // 1 -- compressible flow. (default) int compressible = 1; +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) +// Kprec: The coefficient K for the cut-off velocity. +// 1.0~3.0 is suggested. (default, 3.0) +// preconFarfieldBCMethod: The precondition method for farfield boundary condition. +// 0 -- precondition far-field boundary based on riemann invariants. +// 1 -- Turkel's simplified far-field boundary condition. +int ifLowSpeedPrecon = 0; +double Kprec = 3.0; +int preconFarfieldBCMethod = 1; + //----------------------------------------------------------------------- # CFD Control Parameter # //----------------------------------------------------------------------- @@ -281,33 +289,36 @@ int compressible = 1; // 0 -- the nondimensional conditions. // 1 -- the flight conditions. // 2 -- the experiment conditions. -// 3 -- the subsonic boundary conditions. +// 3 -- the subsonic boundary conditions. (Useless!) // 4 -- the condition that the velocity, temperature and density are given. // 5 -- the condition that the velocity, temperature and pressure are given. +//flowInitMethod: Flow field initialization method. +// 0 -- The entire flow field is initialized according to Infinite velocity. +// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate. // refReNumber: Reynolds number, which is based unit length, unit of 1/m. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition. // freestream_vibration_temperature: Dimensional freestream vibration temperature. // refDimensionalPressure: Dimensional reference pressure, or the total pressure only for the experiment condition. // height: Fly height, unit of km. // wallTemperature: Temprature of the solid wall, minus value is for adiabatic boundary condition. -// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter.Common dimensions like: -// 1 dm = 0.1 m. -// 1 cm = 0.01 m. -// 1 mm = 0.001m. -// 1 inch = 0.0254m. -// 1 foot = 12 inches = 0.3048m. -// 1 yard = 3 feet = 0.9144m. +// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter. Common dimensions like: +// 1 dm = 0.1 m. +// 1 cm = 0.01 m. +// 1 mm = 0.001 m. +// 1 inch = 0.0254 m. +// 1 foot = 12 inches = 0.3048 m. +// 1 yard = 3 feet = 0.9144 m. // forceReferenceLength, forceReferenceLengthSpanWise, forceReferenceArea: Reference length, SpanWise length and area, independent of grid unit. // TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent of grid unit. // radiationCoef: The radiation coefficient on wall, it is used to compute the radiation heat flux on wall when the boundary // condition is radiation equilibrium temperature, and 0.8 is the default value. -// refMolecularWeight : the reference molecular weight of gas used for perfect gas. The unit is g/mol. +// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. - -int directionMethod = 0; +int directionMethod = 0; double refMachNumber = 0.73; double attackd = 2.79; double angleSlide = 0.00; +int flowInitMethod = 0; int inflowParaType = 0; double refReNumber = 6.5e6; @@ -321,29 +332,27 @@ double freestream_vibration_temperature = 300.00; //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; - -//The velocity, temperature and density are fixed. +// The velocity, temperature and density are fixed. //int inflowParaType = 4; //double refDimensionalVelocity = 1000.0; -//double refDimensionalDensity = 1.0e3; +//double refDimensionalDensity = 1.0e3; -//The velocity, temperature and pressure are fixed. +// The velocity, temperature and pressure are fixed. //int inflowParaType = 5; //double refDimensionalVelocity = 1000.0; //double refDimensionalPressure = 1.0e5; -//The MachNumber, temperature and pressure are fixed. +// The MachNumber, temperature and pressure are fixed. //int inflowParaType = 6; -//double refDimensionalTemperature = 293; +//double refDimensionalTemperature = 293.0; //double refDimensionalPressure = 8886.06; +// The velocity, temperature and pressure are read from file. +//int inflowParaType = 7; +//string weatherDataFilePath = "./WRFData/"; +//double longitude = 110.95 +//double latitude = 19.61; + double wallTemperature = -1.0; double radiationCoef = 0.8; @@ -357,41 +366,41 @@ double forceReferenceArea = 1.0; // unit of meter^2. double TorqueRefX = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter. +double knudsenLength = 1.0; // unit of meter. double refMolecularWeight = 28.9644; // unit of g/mol. //----------------------------------------------------------------------- # Spatial Discretisation # //----------------------------------------------------------------------- -#******************************************************************* -# Struct Solver * -#******************************************************************* +#************************************************************************ +# 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". +// -- "vanleer", "steger", "hlle", "lax_f", +// -- "roe", "modified_roe", // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // isWennScheme: If using WENN Scheme of struct grid. -// 0 -- NO. (default) -// 1 -- Yes. +// 0 -- NO. (default) +// 1 -- Yes. // str_limiter_name: Limiter of struct grid. -// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". -// -- "nolim", no limiter. -// -- "vanalbada_clz", clz supersonic version. -// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" - +// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth", +// -- "nolim", no limiter, +// -- "vanalbada_clz", clz supersonic version, +// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3". string inviscidSchemeName = "roe"; int isWennScheme = 0; -string str_limiter_name = "vanalbada"; +string str_limiter_name = "vanalbada"; -#******************************************************************* -# UnStruct Solver or Common * -#******************************************************************* +#************************************************************************ +# UnStruct Solver or Common * +#************************************************************************ // viscousType: Viscous model. -// 0 -- Euler. -// 1 -- Lamilar. -// 2 -- Algebraic. -// 3 -- 1eq turbulent. -// 4 -- 2eq turbulent. +// 0 -- Euler. +// 1 -- Lamilar. +// 2 -- Algebraic. +// 3 -- 1eq turbulent. +// 4 -- 2eq turbulent. // viscousName: Laminar or tubulent model. // -- "0eq-bl". // -- "1eq-sa". @@ -410,16 +419,16 @@ string str_limiter_name = "vanalbada"; // 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". +// -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle", // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // uns_limiter_name: Limiter of Unstruct grid. -// -- "barth", "vencat", "vanleer", "minmod". -// -- "vanalbada", "smooth", "nnd", "lpz", "1st". +// -- "barth", "vencat", "vanleer", "minmod", +// -- "vanalbada", "smooth", "nnd", "lpz", "1st", // -- "nolim", no limiter. // uns_vis_name: Discretisation method of viscous term. // -- "std", "test", "aver", "new1", "new2". // gradientName: Gradient reconstruction method. -// -- "default", "ggcell", "ggnode", "lsq". +// -- "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. @@ -442,18 +451,18 @@ string str_limiter_name = "vanalbada"; // 3 -- Harten type, which is default used. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // It is used to scale the default Roe entropy fix coefficients. -// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 +// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0. -//int viscousType = 0; +//int viscousType = 0; //string viscousName = "Euler"; -//int viscousType = 1; +//int viscousType = 1; //string viscousName = "laminar"; -int viscousType = 3; +int viscousType = 3; string viscousName = "1eq-sa"; -//int viscousType = 4; +//int viscousType = 4; //string viscousName = "2eq-kw-menter-sst"; int DESType = 0; @@ -463,7 +472,7 @@ string uns_limiter_name = "vencat"; string uns_vis_name = "test"; string gradientName = "ggnode"; -int ivencat = 7; +int ivencat = 7; double venkatCoeff = 5.0; int reconmeth = 1; int limitVariables = 0; @@ -475,9 +484,9 @@ double roeEntropyScale = 1.0; double AusmpwPlusLimiter = 1.0; -//----------------------------------------------------------------------- -# Temporal Discretisation # -//----------------------------------------------------------------------- +#************************************************************************ +# Temporal Discretisation * +#************************************************************************ // iunsteady: Steady or unsteady. // 0 -- steady. // 1 -- unsteay. @@ -490,51 +499,57 @@ double AusmpwPlusLimiter = 1.0; // statisticalTimePeriod: Used as time period of statistic analysis. // when the value is negative, time period is treated as infinite. // statisticMethod: Statistic reynolds stress method. -// 0 -- tau = - ^2 -// 1 -- tau = +// 0 -- tau = - ^2 +// 1 -- tau = // min_sub_iter: The min sub iteration of unsteady simulation. // max_sub_iter: The max sub iteration of unsteady simulation. // tol_sub_iter: The tolerance of sub iteration of unsteady simulation. // tscheme: Temporal Discretisation method. -// 1 -- Runge-Kutta Multi-State. -// 2 -- Point implicit. -// 3 -- Full implicit. -// 4 -- LU-SGS. -// 5 -- Block LU-SGS. -// 6 -- Jacobian iteration. -// 7 -- Line LU-SGS. -// 8 -- Matrix LU-SGS. +// 1 -- Runge-Kutta Multi-State. +// 2 -- Point implicit. +// 3 -- Full implicit. +// 4 -- LU-SGS. +// 5 -- Block LU-SGS. +// 6 -- Jacobian iteration. +// 7 -- Line LU-SGS. +// 8 -- Matrix LU-SGS. +// 9 -- GMRES. // 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. +// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration. +// OriginalTscheme : Used for LUSGS and GMres hybrid computing. +// useLUSGSprecond: Initialize flow field for GMRES. +// 0 --Initialize by first order Jacobian matrix. +// 1 --Initialize by LUSGS. +// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field. // 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. +// 0 --Local. +// 1 --Global. // isUseLocalCFL: use variable number of CFL or not. -// 0 -- global unified CFL number. -// 1 -- local CFL number. +// 0 -- global unified CFL number. +// 1 -- local CFL number. // isUsePreTwall: use the previous temperatures on wall. 1 indicates yes, and 0 indicates no. // visl_min: Minimum value of laminar viscosity coefficient. // turbCFLScale: Turbulence model cfl number factor. // codeOfAleModel: Arbitrary Lagrangian-Eulerian method. -// 0 -- no ALE method. -// 1 -- ALE method for non-moving grids. -// 2 -- ALE method for moving grids. -// 3 -- ALE method for deforming grids. +// 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. +// 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; +int iunsteady = 0; double physicalTimeStep = 0.01; double physicalTimeStepDimensional = -0.001; int ifStartFromSteadyResults = 0; @@ -543,39 +558,42 @@ int ifStaticsReynoldsStress = 0; int startStatisticStep = 800000; double statisticalTimePeriod = -1.0; int statisticMethod = 0; -int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; +int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2. int methodOfDualTime = 3; int min_sub_iter = 50; int max_sub_iter = 50; double tol_sub_iter = 0.01; -int tscheme = 4; +int tscheme = 4; int iSimplifyViscousTerm = 1; int ifLocalTimeStep = 0; int isUseLocalCFL = 0; int isUsePreTwall = 0; -double CFLStart = 0.01; -double CFLEnd = 10.0; -int CFLVaryStep = 500; - +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; +double GMRESCFLScale = 1.0; +int OriginalTscheme = 9; +int useLUSGSprecond = 1; +int GMRESInitStep = 1000; double pMaxForCFL = 0.2; double pMinForCFL = 0.1; double deltaMaxForCFL = 0.2; double magnifyFactorForCFL = 1.1; double reduceFactorForCFL = 0.5; -double ktmax = 1.0e10; +double ktmax = 1.0e10; -int swapDq = 1; +int swapDq = 1; int nLUSGSSweeps = 1; double LUSGSTolerance = 0.01; -int order = 2; +int order = 2; double visl_min = 0.01; double turbCFLScale = 1.0; -double csrv = 2.0; +double csrv = 1.0; double timemax = 1.0e10; double dtsave = -1.0; int maxale = 10; @@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0]; //int RKStage = 4; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; - -//----------------------------------------------------------------------- -# File In or Out # -//----------------------------------------------------------------------- +#************************************************************************ +# 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. @@ -611,20 +628,18 @@ double lamda[] = [0.5, 1.0]; // 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. +// visualfile: The visualization file path of flowfield, write data for every default (intervalStepPlot) steps. // wall_aircoefile: The file path to save flowfield variables of wall, write data for every default steps. // nDumpSurfaceInfo = 0 the "wall_varfile" write the informations including heat flux. // nDumpSurfaceInfo = 1 the "wall_varfile" write the informations without heat flux. // nIsComputeWallDist: Whether to compute the wall distance. // 0 -- Compute wall distance. // 1 -- Not compute. -// -// protectionFile0 and protectionFile1 : Two continuation file of the data protection mechanism. -// wall_heatfluxfile : The file to output the MaxHeatFlux of wall. - -int numberOfGridGroups = 1; -string gridfile = "./grid/rae2822_hybrid2d__4.fts"; -string wallTemperaturefile= ""; +// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. +// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; +string wallTemperaturefile = ""; int nIsComputeWallDist = 0; int walldistMethod = 1; @@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0; string resSaveFile = "results/res.dat"; string turbresfile = "results/turbres.dat"; +string transitionResFile = "results/transitionRes.dat"; string aircoeffile = "results/aircoef.dat"; string restartNSFile = "results/flow.dat"; string turbfile = "results/turb.dat"; +string transitionFile = "results/transition.dat"; string visualfile = "results/tecflow.plt"; string wall_aircoefile = "results/wall_aircoef.dat"; @@ -645,10 +662,14 @@ string protectionFile0 = "results/flow0.dat"; string protectionFile1 = "results/flow1.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat"; -int nDumpSurfaceInfo = 0; -string wall_varfile = ""; +string protectionTurbFile0 = "results/turb0.dat"; +string protectionTurbFile1 = "results/turb1.dat"; -string jetDefineFile = "bin/jet.hypara"; +string protectionTransitionFile0 = "results/transition0.dat"; +string protectionTransitionFile1 = "results/transition1.dat"; + +int nDumpSurfaceInfo = 0; +string wall_varfile = ""; string sixDofFileName = "results/sixDofInfo.dat"; string derivativeFileName = "results/identify.dat"; @@ -659,7 +680,8 @@ int plotFieldType = 0; // visualfileType: The file type of visualfile. // 0 -- Tecplot binary. // 1 -- Tecplot ASCII. - +// 2 -- Ensight binary. +// 3 -- Ensight ASCII. int visualfileType = 1; // samplefileMode: The dump mode of sample file. @@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0]; // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), -// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), -// -- overlap iblank(iblank, 81) - -// -- specific heat ratio(gama, 56) +// -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52), +// -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58), +// -- overlap iblank(iblank, 81), +// -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62). // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Variables order must from small to big. //-----------the optional parameters list for the wall boundary condition---------------- // nVisualWallVariables: The number of visual variables on wall. // visualWallVariables : dumped variable types, listed as following: -// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), -// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), -// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), -// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) -// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) -// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) +// -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4), +// -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8), +// -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11), +// -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15), +// -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19), +// -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24). int nVisualVariables = 8; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; @@ -739,16 +761,18 @@ int dumpStandardModel = 0; // 1 -- Real cell where the probe is located. // nProbeVariables: Number of variables want to be dumped for probes monitered. // probeVariables : Variable types dumped, listed as following: -// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). +// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6), +// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9), +// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12). // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // probeVariables order must from small to big. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. -// 0 -- Take the value of probe's cell as probe real value. -// 1 -- Interpolation from probe's and neighbouring cell to probe. -// 2 -- Interpolation from probe's cell nodes to probe. +// 0 -- Take the value of probe's cell as probe real value. +// 1 -- Interpolation from probe's and neighbouring cell to probe. +// 2 -- Interpolation from probe's cell nodes to probe. int ifSetDataMonitor = 0; -int dataMonitorType = 0; +int dataMonitorType = 0; string probesDefineFile = "bin/probes_XYZ.dat"; //int dataMonitorType = 1; @@ -761,28 +785,26 @@ string probesDefineFile = "bin/probes_XYZ.dat"; int searchCellsMethod = 0; -int nProbeVariables = 7; -int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; -int probeVariablesInterpolationMethod = 0; -//----------------------------------------------------------------------- -# Turbulence Parameter # -//----------------------------------------------------------------------- +int nProbeVariables = 14; +int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]; +int probeVariablesInterpolationMethod = 0; + +#************************************************************************ +# Turbulence Parameter * +#************************************************************************ // turbInterval: Iteration number of turbulence. // kindOfTurbSource: Kinds of turbulent source. // 0 -- Original. // mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. -// transitionType: transition model type +// transitionType: transition model type // 0 -- none. // 2 -- gama-re-theta. -// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition -// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not - - +// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition. +// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not. int turbInterval = 1; int turbOrderStruct = 2; int kindOfTurbSource = 0; int mod_turb_res = 0; -double turb_relax = 1.0; double freeStreamViscosity = 1.0e-3; double muoo = 3.0; double kwoo = 5.0; @@ -790,29 +812,28 @@ int transitionType = 0; double turbIntensity = -1.0; int freeturbIntensitySRModify = 0; double freeDecayXLocation = 0.0; -int compressibleCorrection = 0; -int prandtlNumberCorrection = 0; +int compressibleCorrection = 0; int transitionMaFix = 1; -# maximum eddy viscosity (myt/my) max. +// maximum eddy viscosity (myt/my) max. double eddyViscosityLimit = 1.0e10; int monitor_vistmax = 0; -//----------------------------------------------------------------------- -# LES Parameter # -//----------------------------------------------------------------------- +#************************************************************************ +# LES Parameter * +#************************************************************************ // iLES: Create LESSolver or not. -// = 1 - Create LESSolver; -// != 1 - not. +// = 1 -- Create LESSolver; +// != 1 -- not. // amplitudeofDisturb: Amplitude of adding disturb. // disturbstep: Unsteady time step or steady iteration of adding random disturb. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter. -// = 0 - in only first sub-iter; -// != 0 - in every sub-iter. +// = 0 -- in only first sub-iter; +// != 0 -- in every sub-iter. // ipraddisturb: Add density and pressure disturb or not. // ibodyforce: Add body force in source flux of NS equations or not. -// = 0 - not; -// != 0 - Add body force. +// = 0 -- not; +// != 0 -- Add body force. // bodyforce: Body force in source flux of NS equations or not. // utau: friction velocity, using in DNSDisturb. // sgsmodel: subgrid scale model. @@ -820,23 +841,22 @@ int monitor_vistmax = 0; // = "dsmCom"; // = "wale"; // = "sigma". -// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); -// = 2 - pow(deltai * deltaj *deltak, 1/3); -// = 3 - Devloped by Scotti. -// wallDampingFunctionType: = 0 - no wall function; -// = 1 - van Driest; -// = 2 - developed by Dr. Deng Xiaobing; -// = 3 - developed by Piomelli. +// 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. +// = 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. +// filterDirection [3]: filter variables in i, j, k direction or not. // averageDirection[3]: average variables in i, j, k direction or not. // isotropicConstant: constant of isotropic part of SGS stress. - int iLES = 0; string sgsmodel = "smagorinsky"; int deltaFunctionType = 2; @@ -852,19 +872,16 @@ double testFilterScale = 2.0; int averageWidth = 1; int monitorNegativeConstant = 0; -//----------------------------------------------------------------------- -# Other Parameters for Hypersonic Non-equilibrium Gas # -//----------------------------------------------------------------------- +#************************************************************************ +# Other Parameters for Hypersonic Non-equilibrium Gas * +#************************************************************************ // dg_high_order: // 0 -- generic order accuracy. // 1 -- high order accuracy. // iapplication: // 0 -- gas model is fixed in the codes. // 1 -- gas model is imported from library files. -// isAdaptiveSolver: isAdaptiveSolver=0 indicates the generic Navier-Stokes solver, -// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver. -// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps. -// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual. +// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // nm: Equation number of the physics, but is out of commision now. // 4 -- for 2D. // 5 -- for 3D. @@ -875,7 +892,7 @@ int monitorNegativeConstant = 0; // 2 -- Argon. // 3 -- Nitrogen. // nEnergyRecycle: The type of EnergyModel Recycle. -// 0 -- not used . +// 0 -- not used. // 1 -- used. // nDensityModify: The type of densitymodify. // 0 -- not used. @@ -883,26 +900,25 @@ int monitorNegativeConstant = 0; // nchem: // 0 -- without chemical reaction flow. // 1 -- the chemical reaction flow is considered. -// nEquilibriumGas: the variable is valid when the condition of nchem=0 is satisfied. +// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // 0 -- perfect gas. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. -// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. -// the value equals to or is greater than 1, and 3 is for default value. -// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. -// the value equals to or is greater than 1, and 3 is for default value. -// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. -// the value equals to or is greater than 1, and 3 is for default value. -// nSlipBCModel : The computational model of slip boundary conditions. - -// 0 -- no slip. -// 1 -- the conventional Maxwell slip conditions. -// 2 -- the Gokcen slip conditions. -// 3 -- the Knudsen-layer correction of the standard slip conditions proposed by Lockerby, et al. -// 4 -- the Kogan simplified slip conditions. -// nMeanFreePathType : the method to the mean free-path for the slip conditions. For the mixture, 0 is suggested. -// 0 -- the equivalent mean free-path is calculated by the simple hard sphere model(HS). -// 1 -- calculated by the definition that includes the variables of the number density and the molecule diameter. -// 2 -- the equivalent mean free-path is calculated by the variable hard sphere model(VHS). +// nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. +// The value equals to or is greater than 1, and 3 is for default value. +// nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. +// The value equals to or is greater than 1, and 3 is for default value. +// nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. +// The value equals to or is greater than 1, and 3 is for default value. +// nSlipBCModel: The computational model of slip boundary conditions. +// 0 -- no slip. +// 1 -- the conventional Maxwell slip conditions. +// 2 -- the Gokcen slip conditions. +// 3 -- the Knudsen-layer correction of the standard slip conditions proposed by Lockerby, et al. +// 4 -- the Kogan simplified slip conditions. +// nMeanFreePathType: the method to the mean free-path for the slip conditions. For the mixture, 0 is suggested. +// 0 -- the equivalent mean free-path is calculated by the simple hard sphere model(HS). +// 1 -- calculated by the definition that includes the variables of the number density and the molecule diameter. +// 2 -- the equivalent mean free-path is calculated by the variable hard sphere model(VHS). // nchemsrc: // 0 -- the source terms are not computed. // 1 -- the source terms are computed. @@ -913,148 +929,151 @@ int monitorNegativeConstant = 0; // 1 -- One-temperature model. // 2 -- Two-temperature model. // 3 -- Three-temperature model. +// isUseNoneqCond: +// 0 -- compute the source terms without any conditions. +// 1 -- compute the source terms using the non-equilibrium condition. +// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value. // nIdealState: whether take all gas species as ideal gas for gas-mixture process. // 0 -- No. -// 1 -- Yes. -// nTEnergyModel: the method to computing temperature energy model. +// 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model. // 0 -- the energy term is computed using the conventional method. // 1 -- the energy term is computed using the polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method. // parkVDPower: the power of translational-rotational temperature in the Park V-D(vibration-dissociation) coupling model. // The value is in range of [0.0, 1.0], DPLR suggests 0.5, LAURA suggests 0.7, while 0.6 is given as default value. // catalyticCoef: -// 0.0 -- full non-catalytic wall boundary condition. -// 1.0 -- full catalytic wall boundary condition. -// in range of (0.0, 1.0) -- partial catalytic condition, the value indicates the catalytic coefficient. -// nIsSuperCatalytic : the super catalytic condition for the fully catalytic wall, and assigned with the value of 1. -// 0 -- equilibrium condition for the fully catalytic wall where the mass fractions are assigned with the values of the free stream. -// 1 -- super catalytic condition for the fully catalytic wall where all the atomic components combine into molecular components. -// nTemperatureJump : the method to calculate the temperature jump. -// 0 -- calculated by the variables of heat conductivity and constant volume specific heat for each energy mode. -// 1 -- the general method where the iteration is calculated with the translation-rotation temperature. -// nSurfGradMethod : the method to compute the surface heating ratio. -// 0 -- the gradient of variable is computed with the first-order difference method. -// 1 -- the gradient of variable is computed with the Green-Guass integral method. -// nRapidFlowfield : initialize the flowfield using the rapid engineering method when it is greater than zero. -// nSurfHeatMonitor : To exam the surface heating change or not. 0 is no, 1 is yes. -// nInitPressureStep : the steps to initialize the boundary variables when the rapid method is used. 100 is the default value. -// nDumpCFLNumber : 1 indicates dumping the CFL number to file, 0 denotes no dumping. +// 0.0 -- full non-catalytic wall boundary condition. +// 1.0 -- full catalytic wall boundary condition. +// in range of (0.0, 1.0) -- partial catalytic condition, the value indicates the catalytic coefficient. +// nIsSuperCatalytic: the super catalytic condition for the fully catalytic wall, and assigned with the value of 1. +// 0 -- equilibrium condition for the fully catalytic wall where the mass fractions are assigned with the values of the free stream. +// 1 -- super catalytic condition for the fully catalytic wall where all the atomic components combine into molecular components. +// nTemperatureJump: the method to calculate the temperature jump. +// 0 -- calculated by the variables of heat conductivity and constant volume specific heat for each energy mode. +// 1 -- the general method where the iteration is calculated with the translation-rotation temperature. +// nSurfGradMethod: the method to compute the surface heating ratio. +// 0 -- the gradient of variable is computed with the first-order difference method. +// 1 -- the gradient of variable is computed with the Green-Guass integral method. +// nRapidFlowfield: initialize the flowfield using the rapid engineering method when it is greater than zero. +// nSurfHeatMonitor: To exam the surface heating change or not. 0 is no, 1 is yes. +// nInitPressureStep: the steps to initialize the boundary variables when the rapid method is used. 100 is the default value. +// nDumpCFLNumber: 1 indicates dumping the CFL number to file, 0 denotes no dumping. // sigmaVelocity: the coordination coefficient of tangential momentum for computation of slip velocity. The value is in range of (0.0, 2.0]. // sigmaTemperature: the heat coordination coefficient for computation of slip temperature. The value is in range of (0.0, 2.0]. // sigmaMassFraction: the species coordination coefficient for computation of slip mass fractions. The value is in range of (0.0, 2.0]. // velocitySlipCorrectConstant: the correction constant to the velocity slip condition. For the diffuse reflection, 1.0 is used. -// 1.0 -- proposed by Maxwell. -// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. -// 1.146 -- proposed for an additional "fictitious" velocity slip. - -// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. -// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. -// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. -// nIsChemicalFreeze : the flag to freeze the chemical reactions. -// 0 -- not freeze, the chemical reaction sources will be calculated. -// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te - -//maxViscous: the maximum of Viscous. -//trTemperatureMin: the minimum value of trTemperature. -//veTemperatureMin: the minimum value of veTemperature. -//densityMin: the minimum value of density. -//tAdjustmentFactor: magnification of temperature, this value is in range of (1.0, 10.0]. -// nDebug: cout the Wrong place and abort -// 0 -- not used. -// 1 -- used. +// 1.0 -- proposed by Maxwell. +// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. +// 1.146 -- proposed for an additional "fictitious" velocity slip. +// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. +// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. +// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. +// nIsChemicalFreeze: the flag to freeze the chemical reactions. +// 0 -- not freeze, the chemical reaction sources will be calculated. +// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated. +// veTemperatureMin: The minimum of Tv and Te. +// maxViscous: the maximum of Viscous. +// trTemperatureMin: the minimum value of trTemperature. +// veTemperatureMin: the minimum value of veTemperature. +// densityMin: the minimum value of density. +// tAdjustmentFactor: magnification of temperature, this value is in range of (1.0, 10.0]. +// nDebug: cout the Wrong place and abort +// 0 -- not used. +// 1 -- used. // nSpeciesLimit: limitter of gas species -// 0 -- not used. -// 1 -- used. -// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction -// 0 -- method 0. -// 1 -- method 1. -// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid -// 0 -- not used. -// 1 -- used. -// nViscosityPeModified: Pe Modified for ViscosityCoef -// 0 -- not used. -// 1 -- used. -// nChemcalSourceModified: Modified on ChemcalSource -// 0 -- not used. -// 1 -- used. -// nChemcalSourceEsMethod: Modified on ChemcalSource -// 0 -- approximation algorithm 1 (Ori.) -// 1 -- approximation algorithm 2 (New) - +// 0 -- not used. +// 1 -- used. +// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction. +// 0 -- method 0. +// 1 -- method 1. +// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid. +// 0 -- not used. +// 1 -- used. +// nViscosityPeModified: Pe Modified for ViscosityCoef. +// 0 -- not used. +// 1 -- used. +// nChemcalSourceModified: Modified on ChemcalSource. +// 0 -- not used. +// 1 -- used. +// nChemcalSourceEsMethod: Modified on ChemcalSource. +// 0 -- approximation algorithm 1 (Ori). +// 1 -- approximation algorithm 2 (New). // nMaxStepTemperature: the iterative steps of temperature. - -// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs -// 0 -- not used -// 1 -- used - -// nDiagonalModified: Modified on Diagonal -// 0 -- not used -// 1 -- Ori. -// 2 -- new - -//nGradPrimtiveMethod: -// 0 -- Ori. -// 1 -- new +// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs. +// 0 -- not used. +// 1 -- used. +// nDiagonalModified: Modified on Diagonal. +// 0 -- not used. +// 1 -- new. +// nDiagonalModifiedTurb: Modified on Diagonal for turbulence. +// 0 -- not used. +// 1 -- new. +// nGradPrimtiveMethod: +// 0 -- Ori. +// 1 -- new. // nAblation: -// 0 -- The wall ablation is not computed. -// 1 -- The wall ablation is computed. +// 0 -- The wall ablation is not computed. +// 1 -- The wall ablation is computed. // isInjection: -// 0 -- The injection velocity of ablation wall is not computed. -// 1 -- The injection velocity of ablation wall is computed. +// 0 -- The injection velocity of ablation wall is not computed. +// 1 -- The injection velocity of ablation wall is computed. // nViscosityModel: -// 0 -- Blottner fitting method(N89). -// 1 -- Gupta fitting method(N90). +// 0 -- Blottner fitting method(N89). +// 1 -- Gupta fitting method(N90). // nContinueModel: The new continue model can switch different computation model. -// 0 -- Not use the new continue model. -// 1 -- use the new continue model. +// 0 -- Not use the new continue model. +// 1 -- use the new continue model. // nSutherland: -// 0 -- stands for selecting the Blotter curve fits mode. -// 1 -- stands for Sutherland relation. +// 0 -- stands for selecting the Blotter curve fits mode. +// 1 -- stands for Sutherland relation. // gasfile: Indicates the gas model, 9 models are provided, namely "Gu5", "Gu7", "Gu11", "Pa5", "Pa7", "Pa11", "DK5", "DK7", "DK11". -// "Gu" -- indicates the Gupta Model, three-Type Models are embeded in the library, namely, the 5-species-6-reactions, the 7-species-9-reactions, the 11-species-20-reactions. -// "Pa" -- indicates the Park Model, three-Type Models are embeded in the library, namely, the 5-species-17-reactions, the 7-species-22-reactions, the 11-species-48-reactions. -// "DK" -- indicates the Dunn-Kang Model, three-Type Models are embeded in the library, namely, the 5-species-11-reactions, the 7-species-15-reactions, the 11-species-26-reactions. -// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. -// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. -// "Gas-Mixture" -- indicates the process of mixing gas without reacting. -// for struct solver mixing two speciesSpeciesA, SpeciesB. -// for unstruct solver mixing multi-speciesO2 NO CO CO2 H2 N2 Air CH4. -// For self-definition model, the gasfile is used to indicate the file path of the new gas model. +// "Gu" -- indicates the Gupta Model, three-Type Models are embeded in the library, namely, the 5-species-6-reactions, the 7-species-9-reactions, the 11-species-20-reactions. +// "Pa" -- indicates the Park Model, three-Type Models are embeded in the library, namely, the 5-species-17-reactions, the 7-species-22-reactions, the 11-species-48-reactions. +// "DK" -- indicates the Dunn-Kang Model, three-Type Models are embeded in the library, namely, the 5-species-11-reactions, the 7-species-15-reactions, the 11-species-26-reactions. +// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. +// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. +// "Gas-Mixture" -- indicates the process of mixing gas without reacting. +// for struct solver mixing two species��SpeciesA, SpeciesB��. +// for unstruct solver mixing multi-species��O2 NO CO CO2 H2 N2 Air CH4��. +// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // ifStartFromPerfectGasResults: The chemical reaction simulation is start from perfect gas flowfield or not, 0 is for no and else is for yes. -// nIterFirstStep : the maximum number of iteration in the first step for the self-adaptive calculation. -// nIterSecondStep : the maximum number of iteration in the second step for the self-adaptive calculation. -// nIterThirdStep : the maximum number of iteration in the third step for the self-adaptive calculation. -// nEnergyAssembly : the vibration energy is computed with combined method which includes the fitting method and the molecular kinetic theory. -// 0 -- no, -// 1 -- yes. +// nIterFirstStep : the maximum number of iteration in the first step for the self-adaptive calculation. +// nIterSecondStep: the maximum number of iteration in the second step for the self-adaptive calculation. +// nIterThirdStep : the maximum number of iteration in the third step for the self-adaptive calculation. +// nEnergyAssembly: the vibration energy is computed with combined method which includes the fitting method and the molecular kinetic theory. +// 0 -- no, +// 1 -- yes. // nControlVariable: the variable to computing the residual error that determines the convergence is meet or not in the one-temperature model. -// 0 -- the density. -// 1 -- the translation temperature. -// 2 -- the vibration temperature. -// 3 -- the electron temperature. -// 4 -- the pressure. -// 5 -- the mass fraction of oxygen. -// 6 -- the mass fraction of nitrogen. +// 0 -- the density. +// 1 -- the translation temperature. +// 2 -- the vibration temperature. +// 3 -- the electron temperature. +// 4 -- the pressure. +// 5 -- the mass fraction of oxygen. +// 6 -- the mass fraction of nitrogen. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. -// useHyflowSetting : Setting for HyFLOW GUI. -// 0 -- PHengLEI -// 1 -- HyFLOW -// nProtectData : Use the continuation file data protection mechanism. -// 0 -- no -// 1 -- yes - +// nProtectData: Use the continuation file data protection mechanism. +// 0 -- no. +// 1 -- yes. +// nTvChange: Judge whether the Tv equals Ttr. +// 0 -- yes. +// 1 -- no. +// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions. +// nFraction: the initial fractions type of species. +// 0 -- mass fraction. +// 1 -- mole fraction. int dg_high_order = 0; int iapplication = 0; int isAdaptiveSolver = 0; -int nm = 5; +int nm = 5; int nEquilibriumGas = 0; -int nPCWCycleStep = 3; -int nRETCycleStep = 3; -int nSLIPCycleStep= 3; +int nPCWCycleStep = 3; +int nRETCycleStep = 3; +int nSLIPCycleStep = 3; int nIterFirstStep = 1000; int nIterSecondStep= 2000; int nIterThirdStep = 2000; @@ -1065,17 +1084,17 @@ double secondStepError = 0.001; double thirdStepError = 0.001; double predictCFLError = 0.1; -double refGama = 1.4; -double prl = 0.72; -double prt = 0.90; -double sc_l = 0.5; -double sc_t = 0.5; +double refGama = 1.4; +double prl = 0.72; +double prt = 0.90; +double sc_l = 0.5; +double sc_t = 0.5; -int nGasModel = 0; -int nchem = 0; -int nchemsrc = 1; -int nchemrad = 1; -int ntmodel = 1; +int nGasModel = 0; +int nchem = 0; +int nchemsrc = 1; +int nchemrad = 1; +int ntmodel = 1; int nIdealState = 0; int nEnergyRecycle = 1; @@ -1099,12 +1118,12 @@ double sigmaTemperature = 1.0; double sigmaMassFraction = 1.0; double velocitySlipCorrectConstant = 1.0; -double chemicalRelaxCorf = 1.0; +double chemicalRelaxCorf = 1.0; double chemicalSpectrumRadiusCoef = 1.0; double viscousSpectrumRadiusCoef = 1.5; double inviscidSpectrumRadiusCoef = 1.5; -double spectrumRadiusCoef = 0.5; -double staticPressureRelaxCorf = 0.2; +double spectrumRadiusCoef = 0.5; +double staticPressureRelaxCorf = 0.2; double maxViscous = 10000.0; double trTemperatureMin = 10.0; @@ -1114,31 +1133,35 @@ double densityMin = 1.0e-8; double densityMinFactor = 0.1; double tAdjustmentFactor = 10.0; double iniSpeedCoef = 1.0; +int iniSpeedMode = 0; -int nDebug = 0; -int nSpeciesLimit = 1; -int nTurblenceForChemical = 0; -int nViscosityFluxSublevelModified = 1; -int nViscosityPeModified = 0; -int nChemcalSourceModified = 2; -int nChemcalSourceEsMethod = 1; -int nMaxStepTemperature = 5; -int veTemperatureMinModified = 1; -int nDiagonalModified = 0; -int nGradPrimtiveMethod = 1; -int nInviscidFluxModify = 1; -int nQlLimitMethod = 2; -int nSpeciesForWallMethod = 1; -int nDensityForWallMethod = 0; +int nDebug = 0; +int nSpeciesLimit = 1; +int nTurblenceForChemical = 0; +int nViscosityFluxSublevelModified = 1; +int nViscosityPeModified = 0; +int nChemcalSourceModified = 2; +int nChemcalSourceEsMethod = 1; +int nMaxStepTemperature = 5; +int veTemperatureMinModified = 1; +int nDiagonalModified = 0; +int nDiagonalModifiedTurb = 0; +int nGradPrimtiveMethod = 1; +int nInviscidFluxModify = 1; +int nQlLimitMethod = 2; +int nSpeciesForWallMethod = 1; +int nDensityForWallMethod = 0; +int wallMultiTemperature = 0; -int nProtectData = 0; -int useHyflowSetting = 0; -int nAblation = 0; -int isInjection = 0; -int nViscosityModel = 0; -int nMarsModel = 0; -string gasfile = "DK5"; -//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +int nProtectData = 0; +int nAblation = 0; +int isInjection = 0; +int nViscosityModel = 0; +int nMarsModel = 0; +int nTvChange = 0; +int isMoleFractionType = 0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; string speciesName = "O, O2, NO, N, N2"; string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.767"; @@ -1152,16 +1175,16 @@ string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.767"; //string speciesName = "O, O2, NO, N, N2, C, CO, CO2"; //string initMassFraction = "0.0015, 0.0429, 0.0, 0.0, 0.0, 0.0, 0.0777, 0.8779"; -//string gasfile = "Pa"; +//string gasfile = "Pa"; //string speciesName = "O, O2, NO, N, NO+, C, C2, CO, CO2, CN, N2, e-"; //string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767, 0.0"; -//string gasfile = "Combustion-12"; +//string gasfile = "Combustion-12"; //string speciesName = "O, O2, NO, N, C, CO, CO2, H, H2, OH, H2O, N2"; //string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767"; //string gasfile = "Gas-Mixture"; -//string speciesName ="SpeciesA, SpeciesB"; +//string speciesName = "SpeciesA, SpeciesB"; //string initMassFraction = "1.0, 0.0"; int nSutherland = 0; double gamaSpeciesA = 1.4; @@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0; //string speciesName = "O2, N2"; //string initMassFraction = "1.0, 0.0"; +int nFraction = 0; int nContinueModel = 0; int nChemicalFlowStep = 0; int ifStartFromPerfectGasResults = 0; +int isUseNoneqCond = 0; +double frozenCondition = 0.01; + +int nLeakageMonitor = 0; +double totalLeakageVolume = 1000.0; +double monitorThresholdValue = 0.05; +double sprayFactor = 0.0; ######################################################################### // Multi-Grid parameters. @@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0; // 1 -- zero order. // 2 -- first-order. (default) // mgCorrectionLimit: Multi-grid correction limit. - int nMGLevel = 1; int MGCoarsestIteration = 1; int MGPreIteration = 1; @@ -1218,20 +1248,20 @@ 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"; +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 # -######################################################################### +#************************************************************************ +# High Order Struct Solver * +#************************************************************************ // isFVMOrFDM: -// 0 -- NSSolverStruct using Finite Volume Method. -// 1 -- NSSolverStruct using Finite Differ Method. +// 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) @@ -1273,30 +1303,48 @@ int allReduceStep = 1; // codeOfOversetGrid: Overlapping(overset) grid or not. // 0 -- NON-overlapping grid. // 1 -- Overlapping grid. -// oversetInterpolationMethod: the method of overset interpolation while field simulation +// oversetInterpolationMethod: the method of overset interpolation while field simulation. // 0 -- set the acceptor cell value by donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value. - -int codeOfOversetGrid = 0; -int oversetInterpolationMethod = 0; -int readOversetFileOrNot = 0; -int symetryOrNot = 0; -int readInAuxiliaryInnerGrid = 0; -int readInAuxiliaryOuterGrid = 0; -int readInSklFileOrNot = 0; -string auxiliaryInnerGrid0 = "./grid/aux-upper.fts"; -string auxiliaryInnerGrid1 = "./grid/aux-lower.fts"; -string auxiliaryInnerGrid2 = ""; -string oversetGridFileName = "./grid/iblank.ovs"; -double walldistMainZone = 1.0 -double toleranceForOversetSearch = 1.0e-3; -double toleranceForOversetBox = 1.0e-3; -int twoOrderInterpolationOrNot = 0; -int keyEnlargeOfActiveNodes = 0; -int outTecplotOverset = 0; -int outPutOversetVisualization = 0; - -int numberOfMovingBodies = 2; +// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated. +// 0 -- no. +// 1 -- yes. +// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in +// the current overset grid(only for three dimension). +// 0 -- no. +// 1 -- yes. +// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid. +// 0 -- no. +// 1 -- yes. +// walldistMainZone: The initial value of background grid which does not exist wall boundary condition. +// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell. +// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region. +// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary. +// 0 -- one layer. +// 1 -- two layers. +// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region. +// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure. +// 0 -- no. +// 1 -- yes. +int codeOfOversetGrid = 0; +int oversetInterpolationMethod = 0; +int readOversetFileOrNot = 0; +int symetryOrNot = 0; +int readInAuxiliaryInnerGrid = 0; +int readInAuxiliaryOuterGrid = 0; +int readInSklFileOrNot = 0; +string auxiliaryInnerGrid0 = "./grid/aux-upper.fts"; +string auxiliaryInnerGrid1 = "./grid/aux-lower.fts"; +string auxiliaryInnerGrid2 = ""; +string oversetGridFileName = "./grid/iblank.ovs"; +double walldistMainZone = 1.0 +double toleranceForOversetSearch = 1.0e-3; +double toleranceForOversetBox = 1.0e-3; +int twoOrderInterpolationOrNot = 0; +int keyEnlargeOfActiveNodes = 0; +int outTecplotOverset = 0; +int outPutOversetVisualization = 0; +int numberOfMovingBodies = 2; // ----------------- ALE configuration ------------------------------ int codeOfAleModel = 0; @@ -1306,36 +1354,42 @@ double referenceLength = 1.0; double referenceVelocity = 1.0; double referenceDensity = 1.0; -int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; -int strategyForGCLSource = 0; //0-present; 1-Ahn; +int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd. +int strategyForGCLSource = 0; // 0-present; 1-Ahn. -//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton +// 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton. int methodForKineticEquation = 0; double relaxParameterOfKinetic = 1.0; -######################################################################### -# motive information # -######################################################################### +#************************************************************************ +# motive information * +#************************************************************************ int numberOfMovingBodies = 1; ############################## body0 ############################## -//mass of parts -double mass_0 = 1.0; -//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz -double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; -//initial six DOF position information of parts. xc yc zc -double massCenter_0[] = 0.0 , 0.0, 0.0; -//initial six DOF position information of parts. angleX angleY angleZ -double attitudeAngle_0[] = 0.0 , 0.0, 0.0; -//initial six DOF move information of parts. vc vy vz -double massCenterVelocity_0[] = 0.0, 0.0, 0.0; -//initial six DOF move information of parts. omigX omigY omigZ -double angularVelocity_0[] = 0.0, 0.0, 0.0; -//the object that the parts belong to. -int fartherIndex_0 = -1; -//the assembly position of the parts. xc yc zc angleX angleY angleZ -double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0; -//the move pattern of the parts. +// mass of parts. +double mass_0 = 1.0; +// gravity of parts (along negative direction in Y-axis, eg. 9.8). +double gravity_0 = 0.0; +// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz. +double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; +// initial six DOF position information of parts. xc yc zc. +double massCenter_0[] = 0.0, 0.0, 0.0; +// if reset mass center while restart. +int resetMassCenter_0 = 0; +// position offset of parts. dx dy dz. +double massCenterDxyz_0[] = 0.0, 0.0, 0.0; +// initial six DOF position information of parts. angleX angleY angleZ. +double attitudeAngle_0[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. vc vy vz. +double massCenterVelocity_0[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. omigX omigY omigZ. +double angularVelocity_0[] = 0.0, 0.0, 0.0; +// the object that the parts belong to. +int fartherIndex_0 = -1; +// the assembly position of the parts. xc yc zc angleX angleY angleZ. +double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; +// the move pattern of the parts. // -1 given motion partten. // 0 still. // 1 six DOF motion. @@ -1346,51 +1400,68 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0 // 14 forced pitch motion. // 15 forced yaw motion. // 16 forced roll motion. -int RBDMethod_0 = 0; -double amplitude_0 = 0.0; -double reduceFrequency_0 = 0.0; -//direction of rotation +int RBDMethod_0 = 0; +double amplitude_0 = 0.0; +double reduceFrequency_0 = 0.0; +// direction of rotation. // 1 -- clockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis. -int direction_0 = -1; -double rotateFrequency_0 = 0.0; -//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; -//additional force (system axis) fX fY fZ -double addedForce_0[] = 0.0 ,0.0 ,0.0 ; -//additional moment of Force (system axis) mX mY mZ -double addedMoment_0[] = 0.0 ,0.0 ,0.0 ; -//the deformation method of the parts. -int morphing_0 = 0; - -// post indentify -int integralOrder = 4; +int direction_0 = -1; +double rotateFrequency_0 = 0.0; +//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; +// dimensional physical time for additional force(s). +double addedForceTime_0[] = 0.0; +// additional force(inertia system) fX fY fZ. +double addedForce_0[] = 0.0, 0.0, 0.0; +// additional moment(inertia system) mX mY mZ. +double addedMoment_0[] = 0.0, 0.0, 0.0; +// the deformation method of the parts. +int morphing_0 = 0; +// post indentify. +int integralOrder = 4; // ---------------- ATP read -------------------------------------------- -//@int inflowParaType = 0; +//@int inflowParaType = 0; //@double refReNumber = 6.5e6; //@double refDimensionalTemperature = 288.15; //@double freestream_vibration_temperature = 300.00; -//@double refDimensionalPressure = 0; -//@double height = 0; -//@int nsubsonicInlet = 0; -//@int nsubsonicOutlet = 0; -//@string inLetFileName = "./bin/subsonicInlet.hypara"; -//@string outLetFileName = "./bin/subsonicOutlet.hypara"; +//@double refDimensionalPressure = 0; +//@double height = 0; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@double refDimensionalVelocity = 0; //@double refDimensionalDensity = 0; - -######################################################################### -# Old Parameter # -######################################################################### +//@string weatherDataFilePath = "./WRFData/"; +//@double longitude = 110.95 +//@double latitude = 19.61; +#************************************************************************ +# Old Parameter * +#************************************************************************ int isPlotVolumeField = 0; +#************************************************************************ +# partial flow field setting Parameter * +#************************************************************************ +//int nPartialParameter = 0; // 0/1/2 +//int nNumberOfPartialField = 0; // +//int nStartGridIndex[] = [0]; +//int nEndGridIndex[] = [0]; -######################################################################### -# Incompressible Parameter # -######################################################################### +//double partialCFL[] = [0.0]; +//double partialSpeedCoef[] = [0.0]; +//double partialSpeed[] = [0.0]; +//double partialAttackd[] = [0.0]; +//double partialSlide[] = [0.0]; +//double partialPressure[] = [0.0]; +//double partialTemperature[] = [0.0]; +//double partialMassFractions[] = [0.0]; +#************************************************************************ +# Incompressible Parameter * +#************************************************************************ int isSolveEnergyEquation = 0; int isSolveTurbEquation = 0; -int isSolveSpeciesEquation = 0; - +int isSolveSpeciesEquation = 0; \ No newline at end of file diff --git a/L01_TwoD_Cavity_BGK_MPI_1CPU/bin/input.txt b/L01_TwoD_Cavity_BGK_MPI_1CPU/bin/input.txt new file mode 100644 index 0000000..c49c94a --- /dev/null +++ b/L01_TwoD_Cavity_BGK_MPI_1CPU/bin/input.txt @@ -0,0 +1,35 @@ +0 !MRT set 1, BGK set 0 +0 continue.plt !CONTI, resume :1 , new 0 //follows input datafile name //use ASCII文件 continue.plt +0 !LES yes: 1 , no: 0 +0 mesh_3d.dat !GEO read complex geo? yes:1, no:0 //follows input datafile name +0 ! MB multiblock LBM? yes:1, no:0 +1 2e-3 !CONV using converge criterion? yes:1, no:0 +201 !NX +201 ! NY +1 ! NZ +1 ! NX2 +1 ! NY2 +1 ! NZ2 +0 ! LowX +0 ! LowY +0 ! LowZ +1 ! x_np +1 ! y_np +1 ! z_np +500 ! framerate +50000 !total steps to terminate +1.0 ! density +0.6 ! tau +(0.0, 0.0, 0.0000000) ! Volumetric force vector (gx, gy, gz) +D2Q9 ! velocity set +Cavity ! boundary condition +! note: in the following, boundary types: periodic,velocity, pressure +! are allowed. if "velocity" is applied, please strictly follow the format "velocity (%lf, %lf, %lf)". +nonslip !xmin face +nonslip !xmax face +nonslip !ymin face +velocity (0.1, 0.0, 0.0) !ymax face, +periodic !zmin face +periodic !zmax face +-------------------! initial velocity field +(0.0, 0.00, 0.0) \ No newline at end of file diff --git a/H02_PBSolver_TwoD_Cavity_Boussinesq_Laminar_Unstruct_1CPU/bin/key.hypara b/L01_TwoD_Cavity_BGK_MPI_1CPU/bin/key.hypara similarity index 91% rename from H02_PBSolver_TwoD_Cavity_Boussinesq_Laminar_Unstruct_1CPU/bin/key.hypara rename to L01_TwoD_Cavity_BGK_MPI_1CPU/bin/key.hypara index 9c32184..98d46f2 100644 --- a/H02_PBSolver_TwoD_Cavity_Boussinesq_Laminar_Unstruct_1CPU/bin/key.hypara +++ b/L01_TwoD_Cavity_BGK_MPI_1CPU/bin/key.hypara @@ -17,12 +17,12 @@ string defaultParaFile = "./bin/cfd_para.hypara"; int ndim = 2; int nparafile = 1; -int nsimutask = 0; -string parafilename = "./bin/cfd_para_incompressible.hypara" +//int nsimutask = 0; //string parafilename = "./bin/cfd_para_subsonic.hypara"; //string parafilename = "./bin/cfd_para_transonic.hypara"; //string parafilename = "./bin/cfd_para_supersonic.hypara"; //string parafilename = "./bin/cfd_para_hypersonic.hypara"; +//string parafilename = "./bin/cfd_para_incompressible.hypara"; //int nsimutask = 1; //string parafilename = "./bin/grid_para.hypara"; @@ -39,6 +39,9 @@ string parafilename = "./bin/cfd_para_incompressible.hypara" //int nsimutask = 1; //string parafilename = "./bin/grid_refine_para.hypara"; +int nsimutask = 13; +string parafilename = "./bin/cfd_para.hypara"; + //int nsimutask = 14; //string parafilename = "./bin/integrative_solver.hypara"; diff --git a/H03_PBSolver_TwoD_Cavity_Laminar_Re1000_Unstruct_1CPU/bin/cfd_para.hypara b/L02_ThreeD_Channel_Turb_BGK_MPI_32CPU/bin/cfd_para.hypara similarity index 60% rename from H03_PBSolver_TwoD_Cavity_Laminar_Re1000_Unstruct_1CPU/bin/cfd_para.hypara rename to L02_ThreeD_Channel_Turb_BGK_MPI_32CPU/bin/cfd_para.hypara index c344658..f903a5a 100644 --- a/H03_PBSolver_TwoD_Cavity_Laminar_Re1000_Unstruct_1CPU/bin/cfd_para.hypara +++ b/L02_ThreeD_Channel_Turb_BGK_MPI_32CPU/bin/cfd_para.hypara @@ -8,23 +8,24 @@ // Platform for Hybrid Engineering Simulation of Flows + // China Aerodynamics Research and Development Center + // (C) Copyright, Since 2010 + +// PHengLEI 2212 + //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ########################################################################### # Default parameters for Grid conversion # ########################################################################### // gridtype: Grid type for generation, conversion, reconstruction, merging. -// 0 -- Unstructured grid. -// 1 -- Structured grid. -// 2 -- Hybrid grid, include both of unstructured and structured grid. -// gridobj: Task type of grid treatment. -// 0 -- Grid generation of typical case, such as cylinder, flat plate, etc. -// 1 -- Grid conversion, from other grid data to PHenglEI, such as Fluent, CGNS. -// 2 -- Grid refinement. -// 3 -- Grid merging, merge two blocks into one block. -// 4 -- Grid deformation, achieve unstructured grid deformation. -// 5 -- Grid repairing, repair the original grid in order to remove the negative volume cells. -// 6 -- Grid mirroring, mirror a symmetry grid to whole grid. -// 7 -- Grid type change, convert structured grid to unstructured grid. +// 0 -- Unstructured grid. +// 1 -- Structured grid. +// 2 -- Hybrid grid, include both of unstructured and structured grid. +// gridobj: Task type of grid treatment. +// 0 -- Grid generation of typical case, such as cylinder, flat plate, etc. +// 1 -- Grid conversion, from other grid data to PHenglEI, such as Fluent, CGNS. +// 2 -- Grid refinement. +// 3 -- Grid merging, merge two blocks into one block. +// 4 -- Grid deformation, achieve unstructured grid deformation. +// 5 -- Grid repairing, repair the original grid in order to remove the negative volume cells. +// 6 -- Grid mirroring, mirror a symmetry grid to whole grid. +// 7 -- Grid type change, convert structured grid to unstructured grid. // multiblock: Multi-block grid or not, only for structured grid conversion. // 0 -- Not. // 1 -- Yes. @@ -46,19 +47,24 @@ int gridobj = 1; int multiblock = 0; int iadapt = 0; int SymmetryFaceVector = 1; - int gridReorder = 0; int faceReorderMethod = 0; -// axisup: Type of Cartisien coordinates system, used in grid conversion. -// 1 -- Y upward. (default) -// 2 -- Z upward. -int axisup = 1; +// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating. +// axisRotateOrder : axis rotating order. +// 1 -- X-axis. +// 2 -- Y-axis. +// 3 -- Z-axis. +// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order. +int nAxisRotateTimes = 0; +int axisRotateOrder[] = [1, 2, 3]; +double axisRotateAngles[] = [0.0, 0.0, 0.0]; // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // 0 -- Interface. (default) // 1 -- Physical boundary condition, used in Hybrid solver. int omit_no_bound_bc = 0; +int omitRepeatInterface = 1; //----------------------------------------------------------------------- # Grid data type # @@ -87,10 +93,9 @@ int dumpOldGrid = 0; // from_gfile: path of original data file for unstructure grid convert from. // out_gfile: path of target file for grid convert to, *.fts type of file usually. int numberOfGridFile = 1; -string from_gfile = "./grid/rae2822_hybrid2d.cas"; -string from_gfile1= ""; - -string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; +string from_gfile = "./grid/rae2822_hybrid2d.cas"; +string from_gfile1 = ""; +string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; // ----------------- some advanced choices ------------------------------ // iunsteady: The Grid is for unsteady simulation or not. @@ -103,9 +108,9 @@ int fileformat = 0; // Parameters for hybrid solver. // mixgrid_uns: path of unstructure grid file for hybrid solver, *.fts type. -// mixgrid_str: path of structure grid file for hybrid solver, *.fts type. -string mixgrid_uns = "./grid/rae2822_uns2d_4.fts"; -string mixgrid_str = "./grid/flat_laminr_133_85_2d.fts"; +// mixgrid_str: path of structure grid file for hybrid solver, *.fts type. +string mixgrid_uns = "./grid/rae2822_uns2d_4.fts"; +string mixgrid_str = "./grid/flat_laminr_133_85_2d.fts"; // Some parameters for structured overlapping grid. int codeOfDigHoles = 1; @@ -119,31 +124,31 @@ string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; // 0 -- Not. (default) // 1 -- Yes. // geometryUnit: Geometry unit. -// 1 -- meter. -// 2 -- millimeter. -// 3 -- inch. +// 1 -- meter. +// 2 -- millimeter. +// 3 -- inch. // exclusiveCase: Parallel projection exclusive case. -// 0 -- NON case. -// 1 -- JSM-C2-NPOFF case. -// 2 -- CHNT. +// 0 -- NON case. +// 1 -- JSM-C2-NPOFF case. +// 2 -- CHNT. // projectOrgPoint: If the original wall points need to be projected or not. -int anisoRefine = 0; -int geometryUnit = 1; -int isProject = 0; -int readDist = 0; -int isDeform = 0; +int anisoRefine = 0; +int geometryUnit = 1; +int isProject = 0; +int readDist = 0; +int isDeform = 0; int exclusiveCase = 0; int projectOrgPoint = 0; string geometryFileName = "./grid/jsm.igs"; // ----------------- Grid Deform Parameters ----------------------------- // deformationMethod: Grid Deform. -// 1 -- SPRING. -// 2 -- RBF. +// 1 -- SPRING. +// 2 -- RBF. // stationalGridFile: Original grid file. // visualFileName : The visualization file path of deform grid. // nDeformStep : The max deform step. -// flapAngle : The max flap angle. +// flapAngle : The max flap angle. // rotatePostionZ : Rotate postion. // rotatePostionY : Rotate postion. // gridSlice : If dump slice grid. @@ -163,10 +168,10 @@ int sliceAxis = 1; double slicePosition = 13; // ----------------- RBF Parameters ------------------------------------- -// numberOfReferenceCP : Number of reference Control Points. -// influencePara : The RBF influence radius parameter. +// numberOfReferenceCP: Number of reference Control Points. +// influencePara : The RBF influence radius parameter. int numberOfReferenceCP = 40; -double influencePara = 25.0; +double influencePara = 25.0; // ----------------- Periodic Parameters -------------------------------- // Notice: Rotational periodicity only support rotation along the X axis! @@ -178,9 +183,8 @@ double influencePara = 25.0; which only support one direction. // rotationAngle: The relative angle between two periodic face. which is recorded in degrees. - int periodicType = 0; -double translationLength[] = [0.0,0.0,0.0]; +double translationLength[] = [0.0, 0.0, 0.0]; double rotationAngle = 0.0; ######################################################################### @@ -192,7 +196,6 @@ double rotationAngle = 0.0; // 2 -- refine structured grid. // maxproc: The number of partition zones that want to be divided into. // numberOfMultifile: The number of partition grid files that want to be dumped out. - int pgridtype = 0; int maxproc = 4; int numberOfMultifile = 1; @@ -201,20 +204,20 @@ int numberOfMultifile = 1; // 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. +// cellIndexOfMark : the cell index of mark, only for structured grid partition. int traceMark = 0; int blockIndexOfMark = 0; -int cellIndexOfMark[] = [185,30,1]; +int cellIndexOfMark[] = [185, 30, 1]; -// parallel Strategy: -//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. -//! -# 1 : random assigned for each zone or by some else ways. -int parallelStrategy = 1; +// parallelStrategy: +// 0 -- each zone is assigned to the one that defined in grid partition procedure. +// 1 -- random assigned for each zone or by some else ways. +int parallelStrategy = 1; //----------------------------------------------------------------------- # File path # //----------------------------------------------------------------------- -// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts). +// 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"; @@ -232,11 +235,10 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts"; // 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; +double parmetisBalance = 1.05; // numberOfMultigrid: Number of multi-grid levels, ONLY used for structured grid. // 1 -- single level. @@ -248,29 +250,35 @@ 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. +// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved. +// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. -// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. -// intervalStepRes: The step intervals for residual file 'res.dat' saved. -// 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; +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +int maxSimuStep = 20000; +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; int intervalStepSample = 1000; -int intervalStepForce = 100; -int intervalStepRes = 10; -int ifLowSpeedPrecon = 0; +int intervalStepForce = 100; +int intervalStepRes = 10; // compressible: // 0 -- incompressible flow. // 1 -- compressible flow. (default) int compressible = 1; +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) +// Kprec: The coefficient K for the cut-off velocity. +// 1.0~3.0 is suggested. (default, 3.0) +// preconFarfieldBCMethod: The precondition method for farfield boundary condition. +// 0 -- precondition far-field boundary based on riemann invariants. +// 1 -- Turkel's simplified far-field boundary condition. +int ifLowSpeedPrecon = 0; +double Kprec = 3.0; +int preconFarfieldBCMethod = 1; + //----------------------------------------------------------------------- # CFD Control Parameter # //----------------------------------------------------------------------- @@ -281,33 +289,36 @@ int compressible = 1; // 0 -- the nondimensional conditions. // 1 -- the flight conditions. // 2 -- the experiment conditions. -// 3 -- the subsonic boundary conditions. +// 3 -- the subsonic boundary conditions. (Useless!) // 4 -- the condition that the velocity, temperature and density are given. // 5 -- the condition that the velocity, temperature and pressure are given. +//flowInitMethod: Flow field initialization method. +// 0 -- The entire flow field is initialized according to Infinite velocity. +// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate. // refReNumber: Reynolds number, which is based unit length, unit of 1/m. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition. // freestream_vibration_temperature: Dimensional freestream vibration temperature. // refDimensionalPressure: Dimensional reference pressure, or the total pressure only for the experiment condition. // height: Fly height, unit of km. // wallTemperature: Temprature of the solid wall, minus value is for adiabatic boundary condition. -// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter.Common dimensions like: -// 1 dm = 0.1 m. -// 1 cm = 0.01 m. -// 1 mm = 0.001m. -// 1 inch = 0.0254m. -// 1 foot = 12 inches = 0.3048m. -// 1 yard = 3 feet = 0.9144m. +// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter. Common dimensions like: +// 1 dm = 0.1 m. +// 1 cm = 0.01 m. +// 1 mm = 0.001 m. +// 1 inch = 0.0254 m. +// 1 foot = 12 inches = 0.3048 m. +// 1 yard = 3 feet = 0.9144 m. // forceReferenceLength, forceReferenceLengthSpanWise, forceReferenceArea: Reference length, SpanWise length and area, independent of grid unit. // TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent of grid unit. // radiationCoef: The radiation coefficient on wall, it is used to compute the radiation heat flux on wall when the boundary // condition is radiation equilibrium temperature, and 0.8 is the default value. -// refMolecularWeight : the reference molecular weight of gas used for perfect gas. The unit is g/mol. +// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. - -int directionMethod = 0; +int directionMethod = 0; double refMachNumber = 0.73; double attackd = 2.79; double angleSlide = 0.00; +int flowInitMethod = 0; int inflowParaType = 0; double refReNumber = 6.5e6; @@ -321,29 +332,27 @@ double freestream_vibration_temperature = 300.00; //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; - -//The velocity, temperature and density are fixed. +// The velocity, temperature and density are fixed. //int inflowParaType = 4; //double refDimensionalVelocity = 1000.0; -//double refDimensionalDensity = 1.0e3; +//double refDimensionalDensity = 1.0e3; -//The velocity, temperature and pressure are fixed. +// The velocity, temperature and pressure are fixed. //int inflowParaType = 5; //double refDimensionalVelocity = 1000.0; //double refDimensionalPressure = 1.0e5; -//The MachNumber, temperature and pressure are fixed. +// The MachNumber, temperature and pressure are fixed. //int inflowParaType = 6; -//double refDimensionalTemperature = 293; +//double refDimensionalTemperature = 293.0; //double refDimensionalPressure = 8886.06; +// The velocity, temperature and pressure are read from file. +//int inflowParaType = 7; +//string weatherDataFilePath = "./WRFData/"; +//double longitude = 110.95 +//double latitude = 19.61; + double wallTemperature = -1.0; double radiationCoef = 0.8; @@ -357,41 +366,41 @@ double forceReferenceArea = 1.0; // unit of meter^2. double TorqueRefX = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter. +double knudsenLength = 1.0; // unit of meter. double refMolecularWeight = 28.9644; // unit of g/mol. //----------------------------------------------------------------------- # Spatial Discretisation # //----------------------------------------------------------------------- -#******************************************************************* -# Struct Solver * -#******************************************************************* +#************************************************************************ +# 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". +// -- "vanleer", "steger", "hlle", "lax_f", +// -- "roe", "modified_roe", // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // isWennScheme: If using WENN Scheme of struct grid. -// 0 -- NO. (default) -// 1 -- Yes. +// 0 -- NO. (default) +// 1 -- Yes. // str_limiter_name: Limiter of struct grid. -// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". -// -- "nolim", no limiter. -// -- "vanalbada_clz", clz supersonic version. -// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" - +// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth", +// -- "nolim", no limiter, +// -- "vanalbada_clz", clz supersonic version, +// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3". string inviscidSchemeName = "roe"; int isWennScheme = 0; -string str_limiter_name = "vanalbada"; +string str_limiter_name = "vanalbada"; -#******************************************************************* -# UnStruct Solver or Common * -#******************************************************************* +#************************************************************************ +# UnStruct Solver or Common * +#************************************************************************ // viscousType: Viscous model. -// 0 -- Euler. -// 1 -- Lamilar. -// 2 -- Algebraic. -// 3 -- 1eq turbulent. -// 4 -- 2eq turbulent. +// 0 -- Euler. +// 1 -- Lamilar. +// 2 -- Algebraic. +// 3 -- 1eq turbulent. +// 4 -- 2eq turbulent. // viscousName: Laminar or tubulent model. // -- "0eq-bl". // -- "1eq-sa". @@ -410,16 +419,16 @@ string str_limiter_name = "vanalbada"; // 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". +// -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle", // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // uns_limiter_name: Limiter of Unstruct grid. -// -- "barth", "vencat", "vanleer", "minmod". -// -- "vanalbada", "smooth", "nnd", "lpz", "1st". +// -- "barth", "vencat", "vanleer", "minmod", +// -- "vanalbada", "smooth", "nnd", "lpz", "1st", // -- "nolim", no limiter. // uns_vis_name: Discretisation method of viscous term. // -- "std", "test", "aver", "new1", "new2". // gradientName: Gradient reconstruction method. -// -- "default", "ggcell", "ggnode", "lsq". +// -- "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. @@ -442,18 +451,18 @@ string str_limiter_name = "vanalbada"; // 3 -- Harten type, which is default used. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // It is used to scale the default Roe entropy fix coefficients. -// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 +// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0. -//int viscousType = 0; +//int viscousType = 0; //string viscousName = "Euler"; -//int viscousType = 1; +//int viscousType = 1; //string viscousName = "laminar"; -int viscousType = 3; +int viscousType = 3; string viscousName = "1eq-sa"; -//int viscousType = 4; +//int viscousType = 4; //string viscousName = "2eq-kw-menter-sst"; int DESType = 0; @@ -463,7 +472,7 @@ string uns_limiter_name = "vencat"; string uns_vis_name = "test"; string gradientName = "ggnode"; -int ivencat = 7; +int ivencat = 7; double venkatCoeff = 5.0; int reconmeth = 1; int limitVariables = 0; @@ -475,9 +484,9 @@ double roeEntropyScale = 1.0; double AusmpwPlusLimiter = 1.0; -//----------------------------------------------------------------------- -# Temporal Discretisation # -//----------------------------------------------------------------------- +#************************************************************************ +# Temporal Discretisation * +#************************************************************************ // iunsteady: Steady or unsteady. // 0 -- steady. // 1 -- unsteay. @@ -490,51 +499,57 @@ double AusmpwPlusLimiter = 1.0; // statisticalTimePeriod: Used as time period of statistic analysis. // when the value is negative, time period is treated as infinite. // statisticMethod: Statistic reynolds stress method. -// 0 -- tau = - ^2 -// 1 -- tau = +// 0 -- tau = - ^2 +// 1 -- tau = // min_sub_iter: The min sub iteration of unsteady simulation. // max_sub_iter: The max sub iteration of unsteady simulation. // tol_sub_iter: The tolerance of sub iteration of unsteady simulation. // tscheme: Temporal Discretisation method. -// 1 -- Runge-Kutta Multi-State. -// 2 -- Point implicit. -// 3 -- Full implicit. -// 4 -- LU-SGS. -// 5 -- Block LU-SGS. -// 6 -- Jacobian iteration. -// 7 -- Line LU-SGS. -// 8 -- Matrix LU-SGS. +// 1 -- Runge-Kutta Multi-State. +// 2 -- Point implicit. +// 3 -- Full implicit. +// 4 -- LU-SGS. +// 5 -- Block LU-SGS. +// 6 -- Jacobian iteration. +// 7 -- Line LU-SGS. +// 8 -- Matrix LU-SGS. +// 9 -- GMRES. // 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. +// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration. +// OriginalTscheme : Used for LUSGS and GMres hybrid computing. +// useLUSGSprecond: Initialize flow field for GMRES. +// 0 --Initialize by first order Jacobian matrix. +// 1 --Initialize by LUSGS. +// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field. // 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. +// 0 --Local. +// 1 --Global. // isUseLocalCFL: use variable number of CFL or not. -// 0 -- global unified CFL number. -// 1 -- local CFL number. +// 0 -- global unified CFL number. +// 1 -- local CFL number. // isUsePreTwall: use the previous temperatures on wall. 1 indicates yes, and 0 indicates no. // visl_min: Minimum value of laminar viscosity coefficient. // turbCFLScale: Turbulence model cfl number factor. // codeOfAleModel: Arbitrary Lagrangian-Eulerian method. -// 0 -- no ALE method. -// 1 -- ALE method for non-moving grids. -// 2 -- ALE method for moving grids. -// 3 -- ALE method for deforming grids. +// 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. +// 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; +int iunsteady = 0; double physicalTimeStep = 0.01; double physicalTimeStepDimensional = -0.001; int ifStartFromSteadyResults = 0; @@ -543,39 +558,42 @@ int ifStaticsReynoldsStress = 0; int startStatisticStep = 800000; double statisticalTimePeriod = -1.0; int statisticMethod = 0; -int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; +int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2. int methodOfDualTime = 3; int min_sub_iter = 50; int max_sub_iter = 50; double tol_sub_iter = 0.01; -int tscheme = 4; +int tscheme = 4; int iSimplifyViscousTerm = 1; int ifLocalTimeStep = 0; int isUseLocalCFL = 0; int isUsePreTwall = 0; -double CFLStart = 0.01; -double CFLEnd = 10.0; -int CFLVaryStep = 500; - +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; +double GMRESCFLScale = 1.0; +int OriginalTscheme = 9; +int useLUSGSprecond = 1; +int GMRESInitStep = 1000; double pMaxForCFL = 0.2; double pMinForCFL = 0.1; double deltaMaxForCFL = 0.2; double magnifyFactorForCFL = 1.1; double reduceFactorForCFL = 0.5; -double ktmax = 1.0e10; +double ktmax = 1.0e10; -int swapDq = 1; +int swapDq = 1; int nLUSGSSweeps = 1; double LUSGSTolerance = 0.01; -int order = 2; +int order = 2; double visl_min = 0.01; double turbCFLScale = 1.0; -double csrv = 2.0; +double csrv = 1.0; double timemax = 1.0e10; double dtsave = -1.0; int maxale = 10; @@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0]; //int RKStage = 4; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; - -//----------------------------------------------------------------------- -# File In or Out # -//----------------------------------------------------------------------- +#************************************************************************ +# 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. @@ -611,20 +628,18 @@ double lamda[] = [0.5, 1.0]; // 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. +// visualfile: The visualization file path of flowfield, write data for every default (intervalStepPlot) steps. // wall_aircoefile: The file path to save flowfield variables of wall, write data for every default steps. // nDumpSurfaceInfo = 0 the "wall_varfile" write the informations including heat flux. // nDumpSurfaceInfo = 1 the "wall_varfile" write the informations without heat flux. // nIsComputeWallDist: Whether to compute the wall distance. // 0 -- Compute wall distance. // 1 -- Not compute. -// -// protectionFile0 and protectionFile1 : Two continuation file of the data protection mechanism. -// wall_heatfluxfile : The file to output the MaxHeatFlux of wall. - -int numberOfGridGroups = 1; -string gridfile = "./grid/rae2822_hybrid2d__4.fts"; -string wallTemperaturefile= ""; +// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. +// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; +string wallTemperaturefile = ""; int nIsComputeWallDist = 0; int walldistMethod = 1; @@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0; string resSaveFile = "results/res.dat"; string turbresfile = "results/turbres.dat"; +string transitionResFile = "results/transitionRes.dat"; string aircoeffile = "results/aircoef.dat"; string restartNSFile = "results/flow.dat"; string turbfile = "results/turb.dat"; +string transitionFile = "results/transition.dat"; string visualfile = "results/tecflow.plt"; string wall_aircoefile = "results/wall_aircoef.dat"; @@ -645,10 +662,14 @@ string protectionFile0 = "results/flow0.dat"; string protectionFile1 = "results/flow1.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat"; -int nDumpSurfaceInfo = 0; -string wall_varfile = ""; +string protectionTurbFile0 = "results/turb0.dat"; +string protectionTurbFile1 = "results/turb1.dat"; -string jetDefineFile = "bin/jet.hypara"; +string protectionTransitionFile0 = "results/transition0.dat"; +string protectionTransitionFile1 = "results/transition1.dat"; + +int nDumpSurfaceInfo = 0; +string wall_varfile = ""; string sixDofFileName = "results/sixDofInfo.dat"; string derivativeFileName = "results/identify.dat"; @@ -659,7 +680,8 @@ int plotFieldType = 0; // visualfileType: The file type of visualfile. // 0 -- Tecplot binary. // 1 -- Tecplot ASCII. - +// 2 -- Ensight binary. +// 3 -- Ensight ASCII. int visualfileType = 1; // samplefileMode: The dump mode of sample file. @@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0]; // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), -// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), -// -- overlap iblank(iblank, 81) - -// -- specific heat ratio(gama, 56) +// -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52), +// -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58), +// -- overlap iblank(iblank, 81), +// -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62). // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Variables order must from small to big. //-----------the optional parameters list for the wall boundary condition---------------- // nVisualWallVariables: The number of visual variables on wall. // visualWallVariables : dumped variable types, listed as following: -// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), -// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), -// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), -// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) -// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) -// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) +// -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4), +// -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8), +// -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11), +// -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15), +// -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19), +// -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24). int nVisualVariables = 8; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; @@ -739,16 +761,18 @@ int dumpStandardModel = 0; // 1 -- Real cell where the probe is located. // nProbeVariables: Number of variables want to be dumped for probes monitered. // probeVariables : Variable types dumped, listed as following: -// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). +// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6), +// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9), +// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12). // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // probeVariables order must from small to big. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. -// 0 -- Take the value of probe's cell as probe real value. -// 1 -- Interpolation from probe's and neighbouring cell to probe. -// 2 -- Interpolation from probe's cell nodes to probe. +// 0 -- Take the value of probe's cell as probe real value. +// 1 -- Interpolation from probe's and neighbouring cell to probe. +// 2 -- Interpolation from probe's cell nodes to probe. int ifSetDataMonitor = 0; -int dataMonitorType = 0; +int dataMonitorType = 0; string probesDefineFile = "bin/probes_XYZ.dat"; //int dataMonitorType = 1; @@ -761,28 +785,26 @@ string probesDefineFile = "bin/probes_XYZ.dat"; int searchCellsMethod = 0; -int nProbeVariables = 7; -int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; -int probeVariablesInterpolationMethod = 0; -//----------------------------------------------------------------------- -# Turbulence Parameter # -//----------------------------------------------------------------------- +int nProbeVariables = 14; +int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]; +int probeVariablesInterpolationMethod = 0; + +#************************************************************************ +# Turbulence Parameter * +#************************************************************************ // turbInterval: Iteration number of turbulence. // kindOfTurbSource: Kinds of turbulent source. // 0 -- Original. // mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. -// transitionType: transition model type +// transitionType: transition model type // 0 -- none. // 2 -- gama-re-theta. -// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition -// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not - - +// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition. +// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not. int turbInterval = 1; int turbOrderStruct = 2; int kindOfTurbSource = 0; int mod_turb_res = 0; -double turb_relax = 1.0; double freeStreamViscosity = 1.0e-3; double muoo = 3.0; double kwoo = 5.0; @@ -790,29 +812,28 @@ int transitionType = 0; double turbIntensity = -1.0; int freeturbIntensitySRModify = 0; double freeDecayXLocation = 0.0; -int compressibleCorrection = 0; -int prandtlNumberCorrection = 0; +int compressibleCorrection = 0; int transitionMaFix = 1; -# maximum eddy viscosity (myt/my) max. +// maximum eddy viscosity (myt/my) max. double eddyViscosityLimit = 1.0e10; int monitor_vistmax = 0; -//----------------------------------------------------------------------- -# LES Parameter # -//----------------------------------------------------------------------- +#************************************************************************ +# LES Parameter * +#************************************************************************ // iLES: Create LESSolver or not. -// = 1 - Create LESSolver; -// != 1 - not. +// = 1 -- Create LESSolver; +// != 1 -- not. // amplitudeofDisturb: Amplitude of adding disturb. // disturbstep: Unsteady time step or steady iteration of adding random disturb. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter. -// = 0 - in only first sub-iter; -// != 0 - in every sub-iter. +// = 0 -- in only first sub-iter; +// != 0 -- in every sub-iter. // ipraddisturb: Add density and pressure disturb or not. // ibodyforce: Add body force in source flux of NS equations or not. -// = 0 - not; -// != 0 - Add body force. +// = 0 -- not; +// != 0 -- Add body force. // bodyforce: Body force in source flux of NS equations or not. // utau: friction velocity, using in DNSDisturb. // sgsmodel: subgrid scale model. @@ -820,23 +841,22 @@ int monitor_vistmax = 0; // = "dsmCom"; // = "wale"; // = "sigma". -// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); -// = 2 - pow(deltai * deltaj *deltak, 1/3); -// = 3 - Devloped by Scotti. -// wallDampingFunctionType: = 0 - no wall function; -// = 1 - van Driest; -// = 2 - developed by Dr. Deng Xiaobing; -// = 3 - developed by Piomelli. +// 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. +// = 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. +// filterDirection [3]: filter variables in i, j, k direction or not. // averageDirection[3]: average variables in i, j, k direction or not. // isotropicConstant: constant of isotropic part of SGS stress. - int iLES = 0; string sgsmodel = "smagorinsky"; int deltaFunctionType = 2; @@ -852,19 +872,16 @@ double testFilterScale = 2.0; int averageWidth = 1; int monitorNegativeConstant = 0; -//----------------------------------------------------------------------- -# Other Parameters for Hypersonic Non-equilibrium Gas # -//----------------------------------------------------------------------- +#************************************************************************ +# Other Parameters for Hypersonic Non-equilibrium Gas * +#************************************************************************ // dg_high_order: // 0 -- generic order accuracy. // 1 -- high order accuracy. // iapplication: // 0 -- gas model is fixed in the codes. // 1 -- gas model is imported from library files. -// isAdaptiveSolver: isAdaptiveSolver=0 indicates the generic Navier-Stokes solver, -// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver. -// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps. -// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual. +// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // nm: Equation number of the physics, but is out of commision now. // 4 -- for 2D. // 5 -- for 3D. @@ -875,7 +892,7 @@ int monitorNegativeConstant = 0; // 2 -- Argon. // 3 -- Nitrogen. // nEnergyRecycle: The type of EnergyModel Recycle. -// 0 -- not used . +// 0 -- not used. // 1 -- used. // nDensityModify: The type of densitymodify. // 0 -- not used. @@ -883,26 +900,25 @@ int monitorNegativeConstant = 0; // nchem: // 0 -- without chemical reaction flow. // 1 -- the chemical reaction flow is considered. -// nEquilibriumGas: the variable is valid when the condition of nchem=0 is satisfied. +// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // 0 -- perfect gas. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. -// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. -// the value equals to or is greater than 1, and 3 is for default value. -// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. -// the value equals to or is greater than 1, and 3 is for default value. -// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. -// the value equals to or is greater than 1, and 3 is for default value. -// nSlipBCModel : The computational model of slip boundary conditions. - -// 0 -- no slip. -// 1 -- the conventional Maxwell slip conditions. -// 2 -- the Gokcen slip conditions. -// 3 -- the Knudsen-layer correction of the standard slip conditions proposed by Lockerby, et al. -// 4 -- the Kogan simplified slip conditions. -// nMeanFreePathType : the method to the mean free-path for the slip conditions. For the mixture, 0 is suggested. -// 0 -- the equivalent mean free-path is calculated by the simple hard sphere model(HS). -// 1 -- calculated by the definition that includes the variables of the number density and the molecule diameter. -// 2 -- the equivalent mean free-path is calculated by the variable hard sphere model(VHS). +// nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. +// The value equals to or is greater than 1, and 3 is for default value. +// nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. +// The value equals to or is greater than 1, and 3 is for default value. +// nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. +// The value equals to or is greater than 1, and 3 is for default value. +// nSlipBCModel: The computational model of slip boundary conditions. +// 0 -- no slip. +// 1 -- the conventional Maxwell slip conditions. +// 2 -- the Gokcen slip conditions. +// 3 -- the Knudsen-layer correction of the standard slip conditions proposed by Lockerby, et al. +// 4 -- the Kogan simplified slip conditions. +// nMeanFreePathType: the method to the mean free-path for the slip conditions. For the mixture, 0 is suggested. +// 0 -- the equivalent mean free-path is calculated by the simple hard sphere model(HS). +// 1 -- calculated by the definition that includes the variables of the number density and the molecule diameter. +// 2 -- the equivalent mean free-path is calculated by the variable hard sphere model(VHS). // nchemsrc: // 0 -- the source terms are not computed. // 1 -- the source terms are computed. @@ -913,148 +929,151 @@ int monitorNegativeConstant = 0; // 1 -- One-temperature model. // 2 -- Two-temperature model. // 3 -- Three-temperature model. +// isUseNoneqCond: +// 0 -- compute the source terms without any conditions. +// 1 -- compute the source terms using the non-equilibrium condition. +// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value. // nIdealState: whether take all gas species as ideal gas for gas-mixture process. // 0 -- No. -// 1 -- Yes. -// nTEnergyModel: the method to computing temperature energy model. +// 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model. // 0 -- the energy term is computed using the conventional method. // 1 -- the energy term is computed using the polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method. // parkVDPower: the power of translational-rotational temperature in the Park V-D(vibration-dissociation) coupling model. // The value is in range of [0.0, 1.0], DPLR suggests 0.5, LAURA suggests 0.7, while 0.6 is given as default value. // catalyticCoef: -// 0.0 -- full non-catalytic wall boundary condition. -// 1.0 -- full catalytic wall boundary condition. -// in range of (0.0, 1.0) -- partial catalytic condition, the value indicates the catalytic coefficient. -// nIsSuperCatalytic : the super catalytic condition for the fully catalytic wall, and assigned with the value of 1. -// 0 -- equilibrium condition for the fully catalytic wall where the mass fractions are assigned with the values of the free stream. -// 1 -- super catalytic condition for the fully catalytic wall where all the atomic components combine into molecular components. -// nTemperatureJump : the method to calculate the temperature jump. -// 0 -- calculated by the variables of heat conductivity and constant volume specific heat for each energy mode. -// 1 -- the general method where the iteration is calculated with the translation-rotation temperature. -// nSurfGradMethod : the method to compute the surface heating ratio. -// 0 -- the gradient of variable is computed with the first-order difference method. -// 1 -- the gradient of variable is computed with the Green-Guass integral method. -// nRapidFlowfield : initialize the flowfield using the rapid engineering method when it is greater than zero. -// nSurfHeatMonitor : To exam the surface heating change or not. 0 is no, 1 is yes. -// nInitPressureStep : the steps to initialize the boundary variables when the rapid method is used. 100 is the default value. -// nDumpCFLNumber : 1 indicates dumping the CFL number to file, 0 denotes no dumping. +// 0.0 -- full non-catalytic wall boundary condition. +// 1.0 -- full catalytic wall boundary condition. +// in range of (0.0, 1.0) -- partial catalytic condition, the value indicates the catalytic coefficient. +// nIsSuperCatalytic: the super catalytic condition for the fully catalytic wall, and assigned with the value of 1. +// 0 -- equilibrium condition for the fully catalytic wall where the mass fractions are assigned with the values of the free stream. +// 1 -- super catalytic condition for the fully catalytic wall where all the atomic components combine into molecular components. +// nTemperatureJump: the method to calculate the temperature jump. +// 0 -- calculated by the variables of heat conductivity and constant volume specific heat for each energy mode. +// 1 -- the general method where the iteration is calculated with the translation-rotation temperature. +// nSurfGradMethod: the method to compute the surface heating ratio. +// 0 -- the gradient of variable is computed with the first-order difference method. +// 1 -- the gradient of variable is computed with the Green-Guass integral method. +// nRapidFlowfield: initialize the flowfield using the rapid engineering method when it is greater than zero. +// nSurfHeatMonitor: To exam the surface heating change or not. 0 is no, 1 is yes. +// nInitPressureStep: the steps to initialize the boundary variables when the rapid method is used. 100 is the default value. +// nDumpCFLNumber: 1 indicates dumping the CFL number to file, 0 denotes no dumping. // sigmaVelocity: the coordination coefficient of tangential momentum for computation of slip velocity. The value is in range of (0.0, 2.0]. // sigmaTemperature: the heat coordination coefficient for computation of slip temperature. The value is in range of (0.0, 2.0]. // sigmaMassFraction: the species coordination coefficient for computation of slip mass fractions. The value is in range of (0.0, 2.0]. // velocitySlipCorrectConstant: the correction constant to the velocity slip condition. For the diffuse reflection, 1.0 is used. -// 1.0 -- proposed by Maxwell. -// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. -// 1.146 -- proposed for an additional "fictitious" velocity slip. - -// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. -// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. -// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. -// nIsChemicalFreeze : the flag to freeze the chemical reactions. -// 0 -- not freeze, the chemical reaction sources will be calculated. -// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te - -//maxViscous: the maximum of Viscous. -//trTemperatureMin: the minimum value of trTemperature. -//veTemperatureMin: the minimum value of veTemperature. -//densityMin: the minimum value of density. -//tAdjustmentFactor: magnification of temperature, this value is in range of (1.0, 10.0]. -// nDebug: cout the Wrong place and abort -// 0 -- not used. -// 1 -- used. +// 1.0 -- proposed by Maxwell. +// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. +// 1.146 -- proposed for an additional "fictitious" velocity slip. +// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. +// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. +// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. +// nIsChemicalFreeze: the flag to freeze the chemical reactions. +// 0 -- not freeze, the chemical reaction sources will be calculated. +// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated. +// veTemperatureMin: The minimum of Tv and Te. +// maxViscous: the maximum of Viscous. +// trTemperatureMin: the minimum value of trTemperature. +// veTemperatureMin: the minimum value of veTemperature. +// densityMin: the minimum value of density. +// tAdjustmentFactor: magnification of temperature, this value is in range of (1.0, 10.0]. +// nDebug: cout the Wrong place and abort +// 0 -- not used. +// 1 -- used. // nSpeciesLimit: limitter of gas species -// 0 -- not used. -// 1 -- used. -// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction -// 0 -- method 0. -// 1 -- method 1. -// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid -// 0 -- not used. -// 1 -- used. -// nViscosityPeModified: Pe Modified for ViscosityCoef -// 0 -- not used. -// 1 -- used. -// nChemcalSourceModified: Modified on ChemcalSource -// 0 -- not used. -// 1 -- used. -// nChemcalSourceEsMethod: Modified on ChemcalSource -// 0 -- approximation algorithm 1 (Ori.) -// 1 -- approximation algorithm 2 (New) - +// 0 -- not used. +// 1 -- used. +// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction. +// 0 -- method 0. +// 1 -- method 1. +// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid. +// 0 -- not used. +// 1 -- used. +// nViscosityPeModified: Pe Modified for ViscosityCoef. +// 0 -- not used. +// 1 -- used. +// nChemcalSourceModified: Modified on ChemcalSource. +// 0 -- not used. +// 1 -- used. +// nChemcalSourceEsMethod: Modified on ChemcalSource. +// 0 -- approximation algorithm 1 (Ori). +// 1 -- approximation algorithm 2 (New). // nMaxStepTemperature: the iterative steps of temperature. - -// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs -// 0 -- not used -// 1 -- used - -// nDiagonalModified: Modified on Diagonal -// 0 -- not used -// 1 -- Ori. -// 2 -- new - -//nGradPrimtiveMethod: -// 0 -- Ori. -// 1 -- new +// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs. +// 0 -- not used. +// 1 -- used. +// nDiagonalModified: Modified on Diagonal. +// 0 -- not used. +// 1 -- new. +// nDiagonalModifiedTurb: Modified on Diagonal for turbulence. +// 0 -- not used. +// 1 -- new. +// nGradPrimtiveMethod: +// 0 -- Ori. +// 1 -- new. // nAblation: -// 0 -- The wall ablation is not computed. -// 1 -- The wall ablation is computed. +// 0 -- The wall ablation is not computed. +// 1 -- The wall ablation is computed. // isInjection: -// 0 -- The injection velocity of ablation wall is not computed. -// 1 -- The injection velocity of ablation wall is computed. +// 0 -- The injection velocity of ablation wall is not computed. +// 1 -- The injection velocity of ablation wall is computed. // nViscosityModel: -// 0 -- Blottner fitting method(N89). -// 1 -- Gupta fitting method(N90). +// 0 -- Blottner fitting method(N89). +// 1 -- Gupta fitting method(N90). // nContinueModel: The new continue model can switch different computation model. -// 0 -- Not use the new continue model. -// 1 -- use the new continue model. +// 0 -- Not use the new continue model. +// 1 -- use the new continue model. // nSutherland: -// 0 -- stands for selecting the Blotter curve fits mode. -// 1 -- stands for Sutherland relation. +// 0 -- stands for selecting the Blotter curve fits mode. +// 1 -- stands for Sutherland relation. // gasfile: Indicates the gas model, 9 models are provided, namely "Gu5", "Gu7", "Gu11", "Pa5", "Pa7", "Pa11", "DK5", "DK7", "DK11". -// "Gu" -- indicates the Gupta Model, three-Type Models are embeded in the library, namely, the 5-species-6-reactions, the 7-species-9-reactions, the 11-species-20-reactions. -// "Pa" -- indicates the Park Model, three-Type Models are embeded in the library, namely, the 5-species-17-reactions, the 7-species-22-reactions, the 11-species-48-reactions. -// "DK" -- indicates the Dunn-Kang Model, three-Type Models are embeded in the library, namely, the 5-species-11-reactions, the 7-species-15-reactions, the 11-species-26-reactions. -// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. -// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. -// "Gas-Mixture" -- indicates the process of mixing gas without reacting. -// for struct solver mixing two speciesSpeciesA, SpeciesB. -// for unstruct solver mixing multi-speciesO2 NO CO CO2 H2 N2 Air CH4. -// For self-definition model, the gasfile is used to indicate the file path of the new gas model. +// "Gu" -- indicates the Gupta Model, three-Type Models are embeded in the library, namely, the 5-species-6-reactions, the 7-species-9-reactions, the 11-species-20-reactions. +// "Pa" -- indicates the Park Model, three-Type Models are embeded in the library, namely, the 5-species-17-reactions, the 7-species-22-reactions, the 11-species-48-reactions. +// "DK" -- indicates the Dunn-Kang Model, three-Type Models are embeded in the library, namely, the 5-species-11-reactions, the 7-species-15-reactions, the 11-species-26-reactions. +// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. +// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. +// "Gas-Mixture" -- indicates the process of mixing gas without reacting. +// for struct solver mixing two species��SpeciesA, SpeciesB��. +// for unstruct solver mixing multi-species��O2 NO CO CO2 H2 N2 Air CH4��. +// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // ifStartFromPerfectGasResults: The chemical reaction simulation is start from perfect gas flowfield or not, 0 is for no and else is for yes. -// nIterFirstStep : the maximum number of iteration in the first step for the self-adaptive calculation. -// nIterSecondStep : the maximum number of iteration in the second step for the self-adaptive calculation. -// nIterThirdStep : the maximum number of iteration in the third step for the self-adaptive calculation. -// nEnergyAssembly : the vibration energy is computed with combined method which includes the fitting method and the molecular kinetic theory. -// 0 -- no, -// 1 -- yes. +// nIterFirstStep : the maximum number of iteration in the first step for the self-adaptive calculation. +// nIterSecondStep: the maximum number of iteration in the second step for the self-adaptive calculation. +// nIterThirdStep : the maximum number of iteration in the third step for the self-adaptive calculation. +// nEnergyAssembly: the vibration energy is computed with combined method which includes the fitting method and the molecular kinetic theory. +// 0 -- no, +// 1 -- yes. // nControlVariable: the variable to computing the residual error that determines the convergence is meet or not in the one-temperature model. -// 0 -- the density. -// 1 -- the translation temperature. -// 2 -- the vibration temperature. -// 3 -- the electron temperature. -// 4 -- the pressure. -// 5 -- the mass fraction of oxygen. -// 6 -- the mass fraction of nitrogen. +// 0 -- the density. +// 1 -- the translation temperature. +// 2 -- the vibration temperature. +// 3 -- the electron temperature. +// 4 -- the pressure. +// 5 -- the mass fraction of oxygen. +// 6 -- the mass fraction of nitrogen. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. -// useHyflowSetting : Setting for HyFLOW GUI. -// 0 -- PHengLEI -// 1 -- HyFLOW -// nProtectData : Use the continuation file data protection mechanism. -// 0 -- no -// 1 -- yes - +// nProtectData: Use the continuation file data protection mechanism. +// 0 -- no. +// 1 -- yes. +// nTvChange: Judge whether the Tv equals Ttr. +// 0 -- yes. +// 1 -- no. +// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions. +// nFraction: the initial fractions type of species. +// 0 -- mass fraction. +// 1 -- mole fraction. int dg_high_order = 0; int iapplication = 0; int isAdaptiveSolver = 0; -int nm = 5; +int nm = 5; int nEquilibriumGas = 0; -int nPCWCycleStep = 3; -int nRETCycleStep = 3; -int nSLIPCycleStep= 3; +int nPCWCycleStep = 3; +int nRETCycleStep = 3; +int nSLIPCycleStep = 3; int nIterFirstStep = 1000; int nIterSecondStep= 2000; int nIterThirdStep = 2000; @@ -1065,17 +1084,17 @@ double secondStepError = 0.001; double thirdStepError = 0.001; double predictCFLError = 0.1; -double refGama = 1.4; -double prl = 0.72; -double prt = 0.90; -double sc_l = 0.5; -double sc_t = 0.5; +double refGama = 1.4; +double prl = 0.72; +double prt = 0.90; +double sc_l = 0.5; +double sc_t = 0.5; -int nGasModel = 0; -int nchem = 0; -int nchemsrc = 1; -int nchemrad = 1; -int ntmodel = 1; +int nGasModel = 0; +int nchem = 0; +int nchemsrc = 1; +int nchemrad = 1; +int ntmodel = 1; int nIdealState = 0; int nEnergyRecycle = 1; @@ -1099,12 +1118,12 @@ double sigmaTemperature = 1.0; double sigmaMassFraction = 1.0; double velocitySlipCorrectConstant = 1.0; -double chemicalRelaxCorf = 1.0; +double chemicalRelaxCorf = 1.0; double chemicalSpectrumRadiusCoef = 1.0; double viscousSpectrumRadiusCoef = 1.5; double inviscidSpectrumRadiusCoef = 1.5; -double spectrumRadiusCoef = 0.5; -double staticPressureRelaxCorf = 0.2; +double spectrumRadiusCoef = 0.5; +double staticPressureRelaxCorf = 0.2; double maxViscous = 10000.0; double trTemperatureMin = 10.0; @@ -1114,31 +1133,35 @@ double densityMin = 1.0e-8; double densityMinFactor = 0.1; double tAdjustmentFactor = 10.0; double iniSpeedCoef = 1.0; +int iniSpeedMode = 0; -int nDebug = 0; -int nSpeciesLimit = 1; -int nTurblenceForChemical = 0; -int nViscosityFluxSublevelModified = 1; -int nViscosityPeModified = 0; -int nChemcalSourceModified = 2; -int nChemcalSourceEsMethod = 1; -int nMaxStepTemperature = 5; -int veTemperatureMinModified = 1; -int nDiagonalModified = 0; -int nGradPrimtiveMethod = 1; -int nInviscidFluxModify = 1; -int nQlLimitMethod = 2; -int nSpeciesForWallMethod = 1; -int nDensityForWallMethod = 0; +int nDebug = 0; +int nSpeciesLimit = 1; +int nTurblenceForChemical = 0; +int nViscosityFluxSublevelModified = 1; +int nViscosityPeModified = 0; +int nChemcalSourceModified = 2; +int nChemcalSourceEsMethod = 1; +int nMaxStepTemperature = 5; +int veTemperatureMinModified = 1; +int nDiagonalModified = 0; +int nDiagonalModifiedTurb = 0; +int nGradPrimtiveMethod = 1; +int nInviscidFluxModify = 1; +int nQlLimitMethod = 2; +int nSpeciesForWallMethod = 1; +int nDensityForWallMethod = 0; +int wallMultiTemperature = 0; -int nProtectData = 0; -int useHyflowSetting = 0; -int nAblation = 0; -int isInjection = 0; -int nViscosityModel = 0; -int nMarsModel = 0; -string gasfile = "DK5"; -//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +int nProtectData = 0; +int nAblation = 0; +int isInjection = 0; +int nViscosityModel = 0; +int nMarsModel = 0; +int nTvChange = 0; +int isMoleFractionType = 0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; string speciesName = "O, O2, NO, N, N2"; string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.767"; @@ -1152,16 +1175,16 @@ string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.767"; //string speciesName = "O, O2, NO, N, N2, C, CO, CO2"; //string initMassFraction = "0.0015, 0.0429, 0.0, 0.0, 0.0, 0.0, 0.0777, 0.8779"; -//string gasfile = "Pa"; +//string gasfile = "Pa"; //string speciesName = "O, O2, NO, N, NO+, C, C2, CO, CO2, CN, N2, e-"; //string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767, 0.0"; -//string gasfile = "Combustion-12"; +//string gasfile = "Combustion-12"; //string speciesName = "O, O2, NO, N, C, CO, CO2, H, H2, OH, H2O, N2"; //string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767"; //string gasfile = "Gas-Mixture"; -//string speciesName ="SpeciesA, SpeciesB"; +//string speciesName = "SpeciesA, SpeciesB"; //string initMassFraction = "1.0, 0.0"; int nSutherland = 0; double gamaSpeciesA = 1.4; @@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0; //string speciesName = "O2, N2"; //string initMassFraction = "1.0, 0.0"; +int nFraction = 0; int nContinueModel = 0; int nChemicalFlowStep = 0; int ifStartFromPerfectGasResults = 0; +int isUseNoneqCond = 0; +double frozenCondition = 0.01; + +int nLeakageMonitor = 0; +double totalLeakageVolume = 1000.0; +double monitorThresholdValue = 0.05; +double sprayFactor = 0.0; ######################################################################### // Multi-Grid parameters. @@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0; // 1 -- zero order. // 2 -- first-order. (default) // mgCorrectionLimit: Multi-grid correction limit. - int nMGLevel = 1; int MGCoarsestIteration = 1; int MGPreIteration = 1; @@ -1218,20 +1248,20 @@ 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"; +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 # -######################################################################### +#************************************************************************ +# High Order Struct Solver * +#************************************************************************ // isFVMOrFDM: -// 0 -- NSSolverStruct using Finite Volume Method. -// 1 -- NSSolverStruct using Finite Differ Method. +// 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) @@ -1273,30 +1303,48 @@ int allReduceStep = 1; // codeOfOversetGrid: Overlapping(overset) grid or not. // 0 -- NON-overlapping grid. // 1 -- Overlapping grid. -// oversetInterpolationMethod: the method of overset interpolation while field simulation +// oversetInterpolationMethod: the method of overset interpolation while field simulation. // 0 -- set the acceptor cell value by donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value. - -int codeOfOversetGrid = 0; -int oversetInterpolationMethod = 0; -int readOversetFileOrNot = 0; -int symetryOrNot = 0; -int readInAuxiliaryInnerGrid = 0; -int readInAuxiliaryOuterGrid = 0; -int readInSklFileOrNot = 0; -string auxiliaryInnerGrid0 = "./grid/aux-upper.fts"; -string auxiliaryInnerGrid1 = "./grid/aux-lower.fts"; -string auxiliaryInnerGrid2 = ""; -string oversetGridFileName = "./grid/iblank.ovs"; -double walldistMainZone = 1.0 -double toleranceForOversetSearch = 1.0e-3; -double toleranceForOversetBox = 1.0e-3; -int twoOrderInterpolationOrNot = 0; -int keyEnlargeOfActiveNodes = 0; -int outTecplotOverset = 0; -int outPutOversetVisualization = 0; - -int numberOfMovingBodies = 2; +// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated. +// 0 -- no. +// 1 -- yes. +// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in +// the current overset grid(only for three dimension). +// 0 -- no. +// 1 -- yes. +// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid. +// 0 -- no. +// 1 -- yes. +// walldistMainZone: The initial value of background grid which does not exist wall boundary condition. +// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell. +// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region. +// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary. +// 0 -- one layer. +// 1 -- two layers. +// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region. +// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure. +// 0 -- no. +// 1 -- yes. +int codeOfOversetGrid = 0; +int oversetInterpolationMethod = 0; +int readOversetFileOrNot = 0; +int symetryOrNot = 0; +int readInAuxiliaryInnerGrid = 0; +int readInAuxiliaryOuterGrid = 0; +int readInSklFileOrNot = 0; +string auxiliaryInnerGrid0 = "./grid/aux-upper.fts"; +string auxiliaryInnerGrid1 = "./grid/aux-lower.fts"; +string auxiliaryInnerGrid2 = ""; +string oversetGridFileName = "./grid/iblank.ovs"; +double walldistMainZone = 1.0 +double toleranceForOversetSearch = 1.0e-3; +double toleranceForOversetBox = 1.0e-3; +int twoOrderInterpolationOrNot = 0; +int keyEnlargeOfActiveNodes = 0; +int outTecplotOverset = 0; +int outPutOversetVisualization = 0; +int numberOfMovingBodies = 2; // ----------------- ALE configuration ------------------------------ int codeOfAleModel = 0; @@ -1306,36 +1354,42 @@ double referenceLength = 1.0; double referenceVelocity = 1.0; double referenceDensity = 1.0; -int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; -int strategyForGCLSource = 0; //0-present; 1-Ahn; +int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd. +int strategyForGCLSource = 0; // 0-present; 1-Ahn. -//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton +// 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton. int methodForKineticEquation = 0; double relaxParameterOfKinetic = 1.0; -######################################################################### -# motive information # -######################################################################### +#************************************************************************ +# motive information * +#************************************************************************ int numberOfMovingBodies = 1; ############################## body0 ############################## -//mass of parts -double mass_0 = 1.0; -//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz -double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; -//initial six DOF position information of parts. xc yc zc -double massCenter_0[] = 0.0 , 0.0, 0.0; -//initial six DOF position information of parts. angleX angleY angleZ -double attitudeAngle_0[] = 0.0 , 0.0, 0.0; -//initial six DOF move information of parts. vc vy vz -double massCenterVelocity_0[] = 0.0, 0.0, 0.0; -//initial six DOF move information of parts. omigX omigY omigZ -double angularVelocity_0[] = 0.0, 0.0, 0.0; -//the object that the parts belong to. -int fartherIndex_0 = -1; -//the assembly position of the parts. xc yc zc angleX angleY angleZ -double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0; -//the move pattern of the parts. +// mass of parts. +double mass_0 = 1.0; +// gravity of parts (along negative direction in Y-axis, eg. 9.8). +double gravity_0 = 0.0; +// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz. +double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; +// initial six DOF position information of parts. xc yc zc. +double massCenter_0[] = 0.0, 0.0, 0.0; +// if reset mass center while restart. +int resetMassCenter_0 = 0; +// position offset of parts. dx dy dz. +double massCenterDxyz_0[] = 0.0, 0.0, 0.0; +// initial six DOF position information of parts. angleX angleY angleZ. +double attitudeAngle_0[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. vc vy vz. +double massCenterVelocity_0[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. omigX omigY omigZ. +double angularVelocity_0[] = 0.0, 0.0, 0.0; +// the object that the parts belong to. +int fartherIndex_0 = -1; +// the assembly position of the parts. xc yc zc angleX angleY angleZ. +double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; +// the move pattern of the parts. // -1 given motion partten. // 0 still. // 1 six DOF motion. @@ -1346,51 +1400,68 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0 // 14 forced pitch motion. // 15 forced yaw motion. // 16 forced roll motion. -int RBDMethod_0 = 0; -double amplitude_0 = 0.0; -double reduceFrequency_0 = 0.0; -//direction of rotation +int RBDMethod_0 = 0; +double amplitude_0 = 0.0; +double reduceFrequency_0 = 0.0; +// direction of rotation. // 1 -- clockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis. -int direction_0 = -1; -double rotateFrequency_0 = 0.0; -//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; -//additional force (system axis) fX fY fZ -double addedForce_0[] = 0.0 ,0.0 ,0.0 ; -//additional moment of Force (system axis) mX mY mZ -double addedMoment_0[] = 0.0 ,0.0 ,0.0 ; -//the deformation method of the parts. -int morphing_0 = 0; - -// post indentify -int integralOrder = 4; +int direction_0 = -1; +double rotateFrequency_0 = 0.0; +//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; +// dimensional physical time for additional force(s). +double addedForceTime_0[] = 0.0; +// additional force(inertia system) fX fY fZ. +double addedForce_0[] = 0.0, 0.0, 0.0; +// additional moment(inertia system) mX mY mZ. +double addedMoment_0[] = 0.0, 0.0, 0.0; +// the deformation method of the parts. +int morphing_0 = 0; +// post indentify. +int integralOrder = 4; // ---------------- ATP read -------------------------------------------- -//@int inflowParaType = 0; +//@int inflowParaType = 0; //@double refReNumber = 6.5e6; //@double refDimensionalTemperature = 288.15; //@double freestream_vibration_temperature = 300.00; -//@double refDimensionalPressure = 0; -//@double height = 0; -//@int nsubsonicInlet = 0; -//@int nsubsonicOutlet = 0; -//@string inLetFileName = "./bin/subsonicInlet.hypara"; -//@string outLetFileName = "./bin/subsonicOutlet.hypara"; +//@double refDimensionalPressure = 0; +//@double height = 0; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@double refDimensionalVelocity = 0; //@double refDimensionalDensity = 0; - -######################################################################### -# Old Parameter # -######################################################################### +//@string weatherDataFilePath = "./WRFData/"; +//@double longitude = 110.95 +//@double latitude = 19.61; +#************************************************************************ +# Old Parameter * +#************************************************************************ int isPlotVolumeField = 0; +#************************************************************************ +# partial flow field setting Parameter * +#************************************************************************ +//int nPartialParameter = 0; // 0/1/2 +//int nNumberOfPartialField = 0; // +//int nStartGridIndex[] = [0]; +//int nEndGridIndex[] = [0]; -######################################################################### -# Incompressible Parameter # -######################################################################### +//double partialCFL[] = [0.0]; +//double partialSpeedCoef[] = [0.0]; +//double partialSpeed[] = [0.0]; +//double partialAttackd[] = [0.0]; +//double partialSlide[] = [0.0]; +//double partialPressure[] = [0.0]; +//double partialTemperature[] = [0.0]; +//double partialMassFractions[] = [0.0]; +#************************************************************************ +# Incompressible Parameter * +#************************************************************************ int isSolveEnergyEquation = 0; int isSolveTurbEquation = 0; -int isSolveSpeciesEquation = 0; - +int isSolveSpeciesEquation = 0; \ No newline at end of file diff --git a/L02_ThreeD_Channel_Turb_BGK_MPI_32CPU/bin/input.txt b/L02_ThreeD_Channel_Turb_BGK_MPI_32CPU/bin/input.txt new file mode 100644 index 0000000..4c52feb --- /dev/null +++ b/L02_ThreeD_Channel_Turb_BGK_MPI_32CPU/bin/input.txt @@ -0,0 +1,35 @@ +0 !MRT set 1, BGK set 0 +1 continue.plt !CONTI, resume :1 , new 0 //follows input datafile name //use ASCII文件 continue.plt +1 !LES yes: 1 , no: 0 +0 mesh_3d.dat !GEO read complex geo? yes:1, no:0 //follows input datafile name +0 ! MB multiblock LBM? yes:1, no:0 +0 2e-3 !CONV using converge criterion? yes:1, no:0 +128 !NX +128 ! NY +256 ! NZ +1 ! NX2 +1 ! NY2 +1 ! NZ2 +0 ! LowX +0 ! LowY +0 ! LowZ +4 ! x_np +4 ! y_np +2 ! z_np +5000 ! framerate +20000 !total steps to terminate +1.0 ! density +0.506 ! tau +(9.2e-8,0.0,0.0) ! Volumetric force +D3Q19 ! velocity set +ChannelTurb ! boundary condition +! note: in the following, boundary types: periodic,velocity, pressure +! are allowed. if "velocity" is applied, please strictly follow the format "velocity (%lf, %lf, %lf)". +periodic !xmin face +periodic !xmax face +periodic !ymin face +periodic !ymax face, +nonslip !zmin face +nonslip !zmax face +-------------------! initial velocity field +(0.0, 0.00, 0.0) diff --git a/H04_PBSolver_ThreeD_Pipe_Turb_Unstruct_1CPU/bin/key.hypara b/L02_ThreeD_Channel_Turb_BGK_MPI_32CPU/bin/key.hypara similarity index 91% rename from H04_PBSolver_ThreeD_Pipe_Turb_Unstruct_1CPU/bin/key.hypara rename to L02_ThreeD_Channel_Turb_BGK_MPI_32CPU/bin/key.hypara index 80060fd..1a572c7 100644 --- a/H04_PBSolver_ThreeD_Pipe_Turb_Unstruct_1CPU/bin/key.hypara +++ b/L02_ThreeD_Channel_Turb_BGK_MPI_32CPU/bin/key.hypara @@ -17,12 +17,12 @@ string defaultParaFile = "./bin/cfd_para.hypara"; int ndim = 3; int nparafile = 1; -int nsimutask = 0; -string parafilename = "./bin/cfd_para_incompressible.hypara" +//int nsimutask = 0; //string parafilename = "./bin/cfd_para_subsonic.hypara"; //string parafilename = "./bin/cfd_para_transonic.hypara"; //string parafilename = "./bin/cfd_para_supersonic.hypara"; //string parafilename = "./bin/cfd_para_hypersonic.hypara"; +//string parafilename = "./bin/cfd_para_incompressible.hypara"; //int nsimutask = 1; //string parafilename = "./bin/grid_para.hypara"; @@ -39,6 +39,9 @@ string parafilename = "./bin/cfd_para_incompressible.hypara" //int nsimutask = 1; //string parafilename = "./bin/grid_refine_para.hypara"; +int nsimutask = 13; +string parafilename = "./bin/cfd_para.hypara"; + //int nsimutask = 14; //string parafilename = "./bin/integrative_solver.hypara"; diff --git a/H05_PBSolver_ThreeD_Suboff_Laminar_Re225_1CPU/bin/cfd_para.hypara b/L03_ThreeD_Poiseuille_MRT_MPI_4CPU/bin/cfd_para.hypara similarity index 60% rename from H05_PBSolver_ThreeD_Suboff_Laminar_Re225_1CPU/bin/cfd_para.hypara rename to L03_ThreeD_Poiseuille_MRT_MPI_4CPU/bin/cfd_para.hypara index c344658..f903a5a 100644 --- a/H05_PBSolver_ThreeD_Suboff_Laminar_Re225_1CPU/bin/cfd_para.hypara +++ b/L03_ThreeD_Poiseuille_MRT_MPI_4CPU/bin/cfd_para.hypara @@ -8,23 +8,24 @@ // Platform for Hybrid Engineering Simulation of Flows + // China Aerodynamics Research and Development Center + // (C) Copyright, Since 2010 + +// PHengLEI 2212 + //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ########################################################################### # Default parameters for Grid conversion # ########################################################################### // gridtype: Grid type for generation, conversion, reconstruction, merging. -// 0 -- Unstructured grid. -// 1 -- Structured grid. -// 2 -- Hybrid grid, include both of unstructured and structured grid. -// gridobj: Task type of grid treatment. -// 0 -- Grid generation of typical case, such as cylinder, flat plate, etc. -// 1 -- Grid conversion, from other grid data to PHenglEI, such as Fluent, CGNS. -// 2 -- Grid refinement. -// 3 -- Grid merging, merge two blocks into one block. -// 4 -- Grid deformation, achieve unstructured grid deformation. -// 5 -- Grid repairing, repair the original grid in order to remove the negative volume cells. -// 6 -- Grid mirroring, mirror a symmetry grid to whole grid. -// 7 -- Grid type change, convert structured grid to unstructured grid. +// 0 -- Unstructured grid. +// 1 -- Structured grid. +// 2 -- Hybrid grid, include both of unstructured and structured grid. +// gridobj: Task type of grid treatment. +// 0 -- Grid generation of typical case, such as cylinder, flat plate, etc. +// 1 -- Grid conversion, from other grid data to PHenglEI, such as Fluent, CGNS. +// 2 -- Grid refinement. +// 3 -- Grid merging, merge two blocks into one block. +// 4 -- Grid deformation, achieve unstructured grid deformation. +// 5 -- Grid repairing, repair the original grid in order to remove the negative volume cells. +// 6 -- Grid mirroring, mirror a symmetry grid to whole grid. +// 7 -- Grid type change, convert structured grid to unstructured grid. // multiblock: Multi-block grid or not, only for structured grid conversion. // 0 -- Not. // 1 -- Yes. @@ -46,19 +47,24 @@ int gridobj = 1; int multiblock = 0; int iadapt = 0; int SymmetryFaceVector = 1; - int gridReorder = 0; int faceReorderMethod = 0; -// axisup: Type of Cartisien coordinates system, used in grid conversion. -// 1 -- Y upward. (default) -// 2 -- Z upward. -int axisup = 1; +// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating. +// axisRotateOrder : axis rotating order. +// 1 -- X-axis. +// 2 -- Y-axis. +// 3 -- Z-axis. +// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order. +int nAxisRotateTimes = 0; +int axisRotateOrder[] = [1, 2, 3]; +double axisRotateAngles[] = [0.0, 0.0, 0.0]; // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // 0 -- Interface. (default) // 1 -- Physical boundary condition, used in Hybrid solver. int omit_no_bound_bc = 0; +int omitRepeatInterface = 1; //----------------------------------------------------------------------- # Grid data type # @@ -87,10 +93,9 @@ int dumpOldGrid = 0; // from_gfile: path of original data file for unstructure grid convert from. // out_gfile: path of target file for grid convert to, *.fts type of file usually. int numberOfGridFile = 1; -string from_gfile = "./grid/rae2822_hybrid2d.cas"; -string from_gfile1= ""; - -string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; +string from_gfile = "./grid/rae2822_hybrid2d.cas"; +string from_gfile1 = ""; +string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; // ----------------- some advanced choices ------------------------------ // iunsteady: The Grid is for unsteady simulation or not. @@ -103,9 +108,9 @@ int fileformat = 0; // Parameters for hybrid solver. // mixgrid_uns: path of unstructure grid file for hybrid solver, *.fts type. -// mixgrid_str: path of structure grid file for hybrid solver, *.fts type. -string mixgrid_uns = "./grid/rae2822_uns2d_4.fts"; -string mixgrid_str = "./grid/flat_laminr_133_85_2d.fts"; +// mixgrid_str: path of structure grid file for hybrid solver, *.fts type. +string mixgrid_uns = "./grid/rae2822_uns2d_4.fts"; +string mixgrid_str = "./grid/flat_laminr_133_85_2d.fts"; // Some parameters for structured overlapping grid. int codeOfDigHoles = 1; @@ -119,31 +124,31 @@ string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; // 0 -- Not. (default) // 1 -- Yes. // geometryUnit: Geometry unit. -// 1 -- meter. -// 2 -- millimeter. -// 3 -- inch. +// 1 -- meter. +// 2 -- millimeter. +// 3 -- inch. // exclusiveCase: Parallel projection exclusive case. -// 0 -- NON case. -// 1 -- JSM-C2-NPOFF case. -// 2 -- CHNT. +// 0 -- NON case. +// 1 -- JSM-C2-NPOFF case. +// 2 -- CHNT. // projectOrgPoint: If the original wall points need to be projected or not. -int anisoRefine = 0; -int geometryUnit = 1; -int isProject = 0; -int readDist = 0; -int isDeform = 0; +int anisoRefine = 0; +int geometryUnit = 1; +int isProject = 0; +int readDist = 0; +int isDeform = 0; int exclusiveCase = 0; int projectOrgPoint = 0; string geometryFileName = "./grid/jsm.igs"; // ----------------- Grid Deform Parameters ----------------------------- // deformationMethod: Grid Deform. -// 1 -- SPRING. -// 2 -- RBF. +// 1 -- SPRING. +// 2 -- RBF. // stationalGridFile: Original grid file. // visualFileName : The visualization file path of deform grid. // nDeformStep : The max deform step. -// flapAngle : The max flap angle. +// flapAngle : The max flap angle. // rotatePostionZ : Rotate postion. // rotatePostionY : Rotate postion. // gridSlice : If dump slice grid. @@ -163,10 +168,10 @@ int sliceAxis = 1; double slicePosition = 13; // ----------------- RBF Parameters ------------------------------------- -// numberOfReferenceCP : Number of reference Control Points. -// influencePara : The RBF influence radius parameter. +// numberOfReferenceCP: Number of reference Control Points. +// influencePara : The RBF influence radius parameter. int numberOfReferenceCP = 40; -double influencePara = 25.0; +double influencePara = 25.0; // ----------------- Periodic Parameters -------------------------------- // Notice: Rotational periodicity only support rotation along the X axis! @@ -178,9 +183,8 @@ double influencePara = 25.0; which only support one direction. // rotationAngle: The relative angle between two periodic face. which is recorded in degrees. - int periodicType = 0; -double translationLength[] = [0.0,0.0,0.0]; +double translationLength[] = [0.0, 0.0, 0.0]; double rotationAngle = 0.0; ######################################################################### @@ -192,7 +196,6 @@ double rotationAngle = 0.0; // 2 -- refine structured grid. // maxproc: The number of partition zones that want to be divided into. // numberOfMultifile: The number of partition grid files that want to be dumped out. - int pgridtype = 0; int maxproc = 4; int numberOfMultifile = 1; @@ -201,20 +204,20 @@ int numberOfMultifile = 1; // 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. +// cellIndexOfMark : the cell index of mark, only for structured grid partition. int traceMark = 0; int blockIndexOfMark = 0; -int cellIndexOfMark[] = [185,30,1]; +int cellIndexOfMark[] = [185, 30, 1]; -// parallel Strategy: -//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. -//! -# 1 : random assigned for each zone or by some else ways. -int parallelStrategy = 1; +// parallelStrategy: +// 0 -- each zone is assigned to the one that defined in grid partition procedure. +// 1 -- random assigned for each zone or by some else ways. +int parallelStrategy = 1; //----------------------------------------------------------------------- # File path # //----------------------------------------------------------------------- -// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts). +// 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"; @@ -232,11 +235,10 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts"; // 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; +double parmetisBalance = 1.05; // numberOfMultigrid: Number of multi-grid levels, ONLY used for structured grid. // 1 -- single level. @@ -248,29 +250,35 @@ 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. +// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved. +// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. -// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. -// intervalStepRes: The step intervals for residual file 'res.dat' saved. -// 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; +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +int maxSimuStep = 20000; +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; int intervalStepSample = 1000; -int intervalStepForce = 100; -int intervalStepRes = 10; -int ifLowSpeedPrecon = 0; +int intervalStepForce = 100; +int intervalStepRes = 10; // compressible: // 0 -- incompressible flow. // 1 -- compressible flow. (default) int compressible = 1; +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) +// Kprec: The coefficient K for the cut-off velocity. +// 1.0~3.0 is suggested. (default, 3.0) +// preconFarfieldBCMethod: The precondition method for farfield boundary condition. +// 0 -- precondition far-field boundary based on riemann invariants. +// 1 -- Turkel's simplified far-field boundary condition. +int ifLowSpeedPrecon = 0; +double Kprec = 3.0; +int preconFarfieldBCMethod = 1; + //----------------------------------------------------------------------- # CFD Control Parameter # //----------------------------------------------------------------------- @@ -281,33 +289,36 @@ int compressible = 1; // 0 -- the nondimensional conditions. // 1 -- the flight conditions. // 2 -- the experiment conditions. -// 3 -- the subsonic boundary conditions. +// 3 -- the subsonic boundary conditions. (Useless!) // 4 -- the condition that the velocity, temperature and density are given. // 5 -- the condition that the velocity, temperature and pressure are given. +//flowInitMethod: Flow field initialization method. +// 0 -- The entire flow field is initialized according to Infinite velocity. +// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate. // refReNumber: Reynolds number, which is based unit length, unit of 1/m. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition. // freestream_vibration_temperature: Dimensional freestream vibration temperature. // refDimensionalPressure: Dimensional reference pressure, or the total pressure only for the experiment condition. // height: Fly height, unit of km. // wallTemperature: Temprature of the solid wall, minus value is for adiabatic boundary condition. -// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter.Common dimensions like: -// 1 dm = 0.1 m. -// 1 cm = 0.01 m. -// 1 mm = 0.001m. -// 1 inch = 0.0254m. -// 1 foot = 12 inches = 0.3048m. -// 1 yard = 3 feet = 0.9144m. +// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter. Common dimensions like: +// 1 dm = 0.1 m. +// 1 cm = 0.01 m. +// 1 mm = 0.001 m. +// 1 inch = 0.0254 m. +// 1 foot = 12 inches = 0.3048 m. +// 1 yard = 3 feet = 0.9144 m. // forceReferenceLength, forceReferenceLengthSpanWise, forceReferenceArea: Reference length, SpanWise length and area, independent of grid unit. // TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent of grid unit. // radiationCoef: The radiation coefficient on wall, it is used to compute the radiation heat flux on wall when the boundary // condition is radiation equilibrium temperature, and 0.8 is the default value. -// refMolecularWeight : the reference molecular weight of gas used for perfect gas. The unit is g/mol. +// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. - -int directionMethod = 0; +int directionMethod = 0; double refMachNumber = 0.73; double attackd = 2.79; double angleSlide = 0.00; +int flowInitMethod = 0; int inflowParaType = 0; double refReNumber = 6.5e6; @@ -321,29 +332,27 @@ double freestream_vibration_temperature = 300.00; //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; - -//The velocity, temperature and density are fixed. +// The velocity, temperature and density are fixed. //int inflowParaType = 4; //double refDimensionalVelocity = 1000.0; -//double refDimensionalDensity = 1.0e3; +//double refDimensionalDensity = 1.0e3; -//The velocity, temperature and pressure are fixed. +// The velocity, temperature and pressure are fixed. //int inflowParaType = 5; //double refDimensionalVelocity = 1000.0; //double refDimensionalPressure = 1.0e5; -//The MachNumber, temperature and pressure are fixed. +// The MachNumber, temperature and pressure are fixed. //int inflowParaType = 6; -//double refDimensionalTemperature = 293; +//double refDimensionalTemperature = 293.0; //double refDimensionalPressure = 8886.06; +// The velocity, temperature and pressure are read from file. +//int inflowParaType = 7; +//string weatherDataFilePath = "./WRFData/"; +//double longitude = 110.95 +//double latitude = 19.61; + double wallTemperature = -1.0; double radiationCoef = 0.8; @@ -357,41 +366,41 @@ double forceReferenceArea = 1.0; // unit of meter^2. double TorqueRefX = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter. +double knudsenLength = 1.0; // unit of meter. double refMolecularWeight = 28.9644; // unit of g/mol. //----------------------------------------------------------------------- # Spatial Discretisation # //----------------------------------------------------------------------- -#******************************************************************* -# Struct Solver * -#******************************************************************* +#************************************************************************ +# 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". +// -- "vanleer", "steger", "hlle", "lax_f", +// -- "roe", "modified_roe", // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // isWennScheme: If using WENN Scheme of struct grid. -// 0 -- NO. (default) -// 1 -- Yes. +// 0 -- NO. (default) +// 1 -- Yes. // str_limiter_name: Limiter of struct grid. -// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". -// -- "nolim", no limiter. -// -- "vanalbada_clz", clz supersonic version. -// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" - +// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth", +// -- "nolim", no limiter, +// -- "vanalbada_clz", clz supersonic version, +// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3". string inviscidSchemeName = "roe"; int isWennScheme = 0; -string str_limiter_name = "vanalbada"; +string str_limiter_name = "vanalbada"; -#******************************************************************* -# UnStruct Solver or Common * -#******************************************************************* +#************************************************************************ +# UnStruct Solver or Common * +#************************************************************************ // viscousType: Viscous model. -// 0 -- Euler. -// 1 -- Lamilar. -// 2 -- Algebraic. -// 3 -- 1eq turbulent. -// 4 -- 2eq turbulent. +// 0 -- Euler. +// 1 -- Lamilar. +// 2 -- Algebraic. +// 3 -- 1eq turbulent. +// 4 -- 2eq turbulent. // viscousName: Laminar or tubulent model. // -- "0eq-bl". // -- "1eq-sa". @@ -410,16 +419,16 @@ string str_limiter_name = "vanalbada"; // 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". +// -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle", // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // uns_limiter_name: Limiter of Unstruct grid. -// -- "barth", "vencat", "vanleer", "minmod". -// -- "vanalbada", "smooth", "nnd", "lpz", "1st". +// -- "barth", "vencat", "vanleer", "minmod", +// -- "vanalbada", "smooth", "nnd", "lpz", "1st", // -- "nolim", no limiter. // uns_vis_name: Discretisation method of viscous term. // -- "std", "test", "aver", "new1", "new2". // gradientName: Gradient reconstruction method. -// -- "default", "ggcell", "ggnode", "lsq". +// -- "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. @@ -442,18 +451,18 @@ string str_limiter_name = "vanalbada"; // 3 -- Harten type, which is default used. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // It is used to scale the default Roe entropy fix coefficients. -// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 +// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0. -//int viscousType = 0; +//int viscousType = 0; //string viscousName = "Euler"; -//int viscousType = 1; +//int viscousType = 1; //string viscousName = "laminar"; -int viscousType = 3; +int viscousType = 3; string viscousName = "1eq-sa"; -//int viscousType = 4; +//int viscousType = 4; //string viscousName = "2eq-kw-menter-sst"; int DESType = 0; @@ -463,7 +472,7 @@ string uns_limiter_name = "vencat"; string uns_vis_name = "test"; string gradientName = "ggnode"; -int ivencat = 7; +int ivencat = 7; double venkatCoeff = 5.0; int reconmeth = 1; int limitVariables = 0; @@ -475,9 +484,9 @@ double roeEntropyScale = 1.0; double AusmpwPlusLimiter = 1.0; -//----------------------------------------------------------------------- -# Temporal Discretisation # -//----------------------------------------------------------------------- +#************************************************************************ +# Temporal Discretisation * +#************************************************************************ // iunsteady: Steady or unsteady. // 0 -- steady. // 1 -- unsteay. @@ -490,51 +499,57 @@ double AusmpwPlusLimiter = 1.0; // statisticalTimePeriod: Used as time period of statistic analysis. // when the value is negative, time period is treated as infinite. // statisticMethod: Statistic reynolds stress method. -// 0 -- tau = - ^2 -// 1 -- tau = +// 0 -- tau = - ^2 +// 1 -- tau = // min_sub_iter: The min sub iteration of unsteady simulation. // max_sub_iter: The max sub iteration of unsteady simulation. // tol_sub_iter: The tolerance of sub iteration of unsteady simulation. // tscheme: Temporal Discretisation method. -// 1 -- Runge-Kutta Multi-State. -// 2 -- Point implicit. -// 3 -- Full implicit. -// 4 -- LU-SGS. -// 5 -- Block LU-SGS. -// 6 -- Jacobian iteration. -// 7 -- Line LU-SGS. -// 8 -- Matrix LU-SGS. +// 1 -- Runge-Kutta Multi-State. +// 2 -- Point implicit. +// 3 -- Full implicit. +// 4 -- LU-SGS. +// 5 -- Block LU-SGS. +// 6 -- Jacobian iteration. +// 7 -- Line LU-SGS. +// 8 -- Matrix LU-SGS. +// 9 -- GMRES. // 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. +// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration. +// OriginalTscheme : Used for LUSGS and GMres hybrid computing. +// useLUSGSprecond: Initialize flow field for GMRES. +// 0 --Initialize by first order Jacobian matrix. +// 1 --Initialize by LUSGS. +// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field. // 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. +// 0 --Local. +// 1 --Global. // isUseLocalCFL: use variable number of CFL or not. -// 0 -- global unified CFL number. -// 1 -- local CFL number. +// 0 -- global unified CFL number. +// 1 -- local CFL number. // isUsePreTwall: use the previous temperatures on wall. 1 indicates yes, and 0 indicates no. // visl_min: Minimum value of laminar viscosity coefficient. // turbCFLScale: Turbulence model cfl number factor. // codeOfAleModel: Arbitrary Lagrangian-Eulerian method. -// 0 -- no ALE method. -// 1 -- ALE method for non-moving grids. -// 2 -- ALE method for moving grids. -// 3 -- ALE method for deforming grids. +// 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. +// 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; +int iunsteady = 0; double physicalTimeStep = 0.01; double physicalTimeStepDimensional = -0.001; int ifStartFromSteadyResults = 0; @@ -543,39 +558,42 @@ int ifStaticsReynoldsStress = 0; int startStatisticStep = 800000; double statisticalTimePeriod = -1.0; int statisticMethod = 0; -int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; +int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2. int methodOfDualTime = 3; int min_sub_iter = 50; int max_sub_iter = 50; double tol_sub_iter = 0.01; -int tscheme = 4; +int tscheme = 4; int iSimplifyViscousTerm = 1; int ifLocalTimeStep = 0; int isUseLocalCFL = 0; int isUsePreTwall = 0; -double CFLStart = 0.01; -double CFLEnd = 10.0; -int CFLVaryStep = 500; - +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; +double GMRESCFLScale = 1.0; +int OriginalTscheme = 9; +int useLUSGSprecond = 1; +int GMRESInitStep = 1000; double pMaxForCFL = 0.2; double pMinForCFL = 0.1; double deltaMaxForCFL = 0.2; double magnifyFactorForCFL = 1.1; double reduceFactorForCFL = 0.5; -double ktmax = 1.0e10; +double ktmax = 1.0e10; -int swapDq = 1; +int swapDq = 1; int nLUSGSSweeps = 1; double LUSGSTolerance = 0.01; -int order = 2; +int order = 2; double visl_min = 0.01; double turbCFLScale = 1.0; -double csrv = 2.0; +double csrv = 1.0; double timemax = 1.0e10; double dtsave = -1.0; int maxale = 10; @@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0]; //int RKStage = 4; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; - -//----------------------------------------------------------------------- -# File In or Out # -//----------------------------------------------------------------------- +#************************************************************************ +# 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. @@ -611,20 +628,18 @@ double lamda[] = [0.5, 1.0]; // 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. +// visualfile: The visualization file path of flowfield, write data for every default (intervalStepPlot) steps. // wall_aircoefile: The file path to save flowfield variables of wall, write data for every default steps. // nDumpSurfaceInfo = 0 the "wall_varfile" write the informations including heat flux. // nDumpSurfaceInfo = 1 the "wall_varfile" write the informations without heat flux. // nIsComputeWallDist: Whether to compute the wall distance. // 0 -- Compute wall distance. // 1 -- Not compute. -// -// protectionFile0 and protectionFile1 : Two continuation file of the data protection mechanism. -// wall_heatfluxfile : The file to output the MaxHeatFlux of wall. - -int numberOfGridGroups = 1; -string gridfile = "./grid/rae2822_hybrid2d__4.fts"; -string wallTemperaturefile= ""; +// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. +// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; +string wallTemperaturefile = ""; int nIsComputeWallDist = 0; int walldistMethod = 1; @@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0; string resSaveFile = "results/res.dat"; string turbresfile = "results/turbres.dat"; +string transitionResFile = "results/transitionRes.dat"; string aircoeffile = "results/aircoef.dat"; string restartNSFile = "results/flow.dat"; string turbfile = "results/turb.dat"; +string transitionFile = "results/transition.dat"; string visualfile = "results/tecflow.plt"; string wall_aircoefile = "results/wall_aircoef.dat"; @@ -645,10 +662,14 @@ string protectionFile0 = "results/flow0.dat"; string protectionFile1 = "results/flow1.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat"; -int nDumpSurfaceInfo = 0; -string wall_varfile = ""; +string protectionTurbFile0 = "results/turb0.dat"; +string protectionTurbFile1 = "results/turb1.dat"; -string jetDefineFile = "bin/jet.hypara"; +string protectionTransitionFile0 = "results/transition0.dat"; +string protectionTransitionFile1 = "results/transition1.dat"; + +int nDumpSurfaceInfo = 0; +string wall_varfile = ""; string sixDofFileName = "results/sixDofInfo.dat"; string derivativeFileName = "results/identify.dat"; @@ -659,7 +680,8 @@ int plotFieldType = 0; // visualfileType: The file type of visualfile. // 0 -- Tecplot binary. // 1 -- Tecplot ASCII. - +// 2 -- Ensight binary. +// 3 -- Ensight ASCII. int visualfileType = 1; // samplefileMode: The dump mode of sample file. @@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0]; // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), -// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), -// -- overlap iblank(iblank, 81) - -// -- specific heat ratio(gama, 56) +// -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52), +// -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58), +// -- overlap iblank(iblank, 81), +// -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62). // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Variables order must from small to big. //-----------the optional parameters list for the wall boundary condition---------------- // nVisualWallVariables: The number of visual variables on wall. // visualWallVariables : dumped variable types, listed as following: -// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), -// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), -// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), -// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) -// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) -// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) +// -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4), +// -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8), +// -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11), +// -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15), +// -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19), +// -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24). int nVisualVariables = 8; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; @@ -739,16 +761,18 @@ int dumpStandardModel = 0; // 1 -- Real cell where the probe is located. // nProbeVariables: Number of variables want to be dumped for probes monitered. // probeVariables : Variable types dumped, listed as following: -// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). +// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6), +// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9), +// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12). // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // probeVariables order must from small to big. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. -// 0 -- Take the value of probe's cell as probe real value. -// 1 -- Interpolation from probe's and neighbouring cell to probe. -// 2 -- Interpolation from probe's cell nodes to probe. +// 0 -- Take the value of probe's cell as probe real value. +// 1 -- Interpolation from probe's and neighbouring cell to probe. +// 2 -- Interpolation from probe's cell nodes to probe. int ifSetDataMonitor = 0; -int dataMonitorType = 0; +int dataMonitorType = 0; string probesDefineFile = "bin/probes_XYZ.dat"; //int dataMonitorType = 1; @@ -761,28 +785,26 @@ string probesDefineFile = "bin/probes_XYZ.dat"; int searchCellsMethod = 0; -int nProbeVariables = 7; -int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; -int probeVariablesInterpolationMethod = 0; -//----------------------------------------------------------------------- -# Turbulence Parameter # -//----------------------------------------------------------------------- +int nProbeVariables = 14; +int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]; +int probeVariablesInterpolationMethod = 0; + +#************************************************************************ +# Turbulence Parameter * +#************************************************************************ // turbInterval: Iteration number of turbulence. // kindOfTurbSource: Kinds of turbulent source. // 0 -- Original. // mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. -// transitionType: transition model type +// transitionType: transition model type // 0 -- none. // 2 -- gama-re-theta. -// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition -// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not - - +// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition. +// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not. int turbInterval = 1; int turbOrderStruct = 2; int kindOfTurbSource = 0; int mod_turb_res = 0; -double turb_relax = 1.0; double freeStreamViscosity = 1.0e-3; double muoo = 3.0; double kwoo = 5.0; @@ -790,29 +812,28 @@ int transitionType = 0; double turbIntensity = -1.0; int freeturbIntensitySRModify = 0; double freeDecayXLocation = 0.0; -int compressibleCorrection = 0; -int prandtlNumberCorrection = 0; +int compressibleCorrection = 0; int transitionMaFix = 1; -# maximum eddy viscosity (myt/my) max. +// maximum eddy viscosity (myt/my) max. double eddyViscosityLimit = 1.0e10; int monitor_vistmax = 0; -//----------------------------------------------------------------------- -# LES Parameter # -//----------------------------------------------------------------------- +#************************************************************************ +# LES Parameter * +#************************************************************************ // iLES: Create LESSolver or not. -// = 1 - Create LESSolver; -// != 1 - not. +// = 1 -- Create LESSolver; +// != 1 -- not. // amplitudeofDisturb: Amplitude of adding disturb. // disturbstep: Unsteady time step or steady iteration of adding random disturb. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter. -// = 0 - in only first sub-iter; -// != 0 - in every sub-iter. +// = 0 -- in only first sub-iter; +// != 0 -- in every sub-iter. // ipraddisturb: Add density and pressure disturb or not. // ibodyforce: Add body force in source flux of NS equations or not. -// = 0 - not; -// != 0 - Add body force. +// = 0 -- not; +// != 0 -- Add body force. // bodyforce: Body force in source flux of NS equations or not. // utau: friction velocity, using in DNSDisturb. // sgsmodel: subgrid scale model. @@ -820,23 +841,22 @@ int monitor_vistmax = 0; // = "dsmCom"; // = "wale"; // = "sigma". -// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); -// = 2 - pow(deltai * deltaj *deltak, 1/3); -// = 3 - Devloped by Scotti. -// wallDampingFunctionType: = 0 - no wall function; -// = 1 - van Driest; -// = 2 - developed by Dr. Deng Xiaobing; -// = 3 - developed by Piomelli. +// 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. +// = 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. +// filterDirection [3]: filter variables in i, j, k direction or not. // averageDirection[3]: average variables in i, j, k direction or not. // isotropicConstant: constant of isotropic part of SGS stress. - int iLES = 0; string sgsmodel = "smagorinsky"; int deltaFunctionType = 2; @@ -852,19 +872,16 @@ double testFilterScale = 2.0; int averageWidth = 1; int monitorNegativeConstant = 0; -//----------------------------------------------------------------------- -# Other Parameters for Hypersonic Non-equilibrium Gas # -//----------------------------------------------------------------------- +#************************************************************************ +# Other Parameters for Hypersonic Non-equilibrium Gas * +#************************************************************************ // dg_high_order: // 0 -- generic order accuracy. // 1 -- high order accuracy. // iapplication: // 0 -- gas model is fixed in the codes. // 1 -- gas model is imported from library files. -// isAdaptiveSolver: isAdaptiveSolver=0 indicates the generic Navier-Stokes solver, -// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver. -// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps. -// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual. +// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // nm: Equation number of the physics, but is out of commision now. // 4 -- for 2D. // 5 -- for 3D. @@ -875,7 +892,7 @@ int monitorNegativeConstant = 0; // 2 -- Argon. // 3 -- Nitrogen. // nEnergyRecycle: The type of EnergyModel Recycle. -// 0 -- not used . +// 0 -- not used. // 1 -- used. // nDensityModify: The type of densitymodify. // 0 -- not used. @@ -883,26 +900,25 @@ int monitorNegativeConstant = 0; // nchem: // 0 -- without chemical reaction flow. // 1 -- the chemical reaction flow is considered. -// nEquilibriumGas: the variable is valid when the condition of nchem=0 is satisfied. +// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // 0 -- perfect gas. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. -// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. -// the value equals to or is greater than 1, and 3 is for default value. -// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. -// the value equals to or is greater than 1, and 3 is for default value. -// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. -// the value equals to or is greater than 1, and 3 is for default value. -// nSlipBCModel : The computational model of slip boundary conditions. - -// 0 -- no slip. -// 1 -- the conventional Maxwell slip conditions. -// 2 -- the Gokcen slip conditions. -// 3 -- the Knudsen-layer correction of the standard slip conditions proposed by Lockerby, et al. -// 4 -- the Kogan simplified slip conditions. -// nMeanFreePathType : the method to the mean free-path for the slip conditions. For the mixture, 0 is suggested. -// 0 -- the equivalent mean free-path is calculated by the simple hard sphere model(HS). -// 1 -- calculated by the definition that includes the variables of the number density and the molecule diameter. -// 2 -- the equivalent mean free-path is calculated by the variable hard sphere model(VHS). +// nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. +// The value equals to or is greater than 1, and 3 is for default value. +// nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. +// The value equals to or is greater than 1, and 3 is for default value. +// nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. +// The value equals to or is greater than 1, and 3 is for default value. +// nSlipBCModel: The computational model of slip boundary conditions. +// 0 -- no slip. +// 1 -- the conventional Maxwell slip conditions. +// 2 -- the Gokcen slip conditions. +// 3 -- the Knudsen-layer correction of the standard slip conditions proposed by Lockerby, et al. +// 4 -- the Kogan simplified slip conditions. +// nMeanFreePathType: the method to the mean free-path for the slip conditions. For the mixture, 0 is suggested. +// 0 -- the equivalent mean free-path is calculated by the simple hard sphere model(HS). +// 1 -- calculated by the definition that includes the variables of the number density and the molecule diameter. +// 2 -- the equivalent mean free-path is calculated by the variable hard sphere model(VHS). // nchemsrc: // 0 -- the source terms are not computed. // 1 -- the source terms are computed. @@ -913,148 +929,151 @@ int monitorNegativeConstant = 0; // 1 -- One-temperature model. // 2 -- Two-temperature model. // 3 -- Three-temperature model. +// isUseNoneqCond: +// 0 -- compute the source terms without any conditions. +// 1 -- compute the source terms using the non-equilibrium condition. +// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value. // nIdealState: whether take all gas species as ideal gas for gas-mixture process. // 0 -- No. -// 1 -- Yes. -// nTEnergyModel: the method to computing temperature energy model. +// 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model. // 0 -- the energy term is computed using the conventional method. // 1 -- the energy term is computed using the polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method. // parkVDPower: the power of translational-rotational temperature in the Park V-D(vibration-dissociation) coupling model. // The value is in range of [0.0, 1.0], DPLR suggests 0.5, LAURA suggests 0.7, while 0.6 is given as default value. // catalyticCoef: -// 0.0 -- full non-catalytic wall boundary condition. -// 1.0 -- full catalytic wall boundary condition. -// in range of (0.0, 1.0) -- partial catalytic condition, the value indicates the catalytic coefficient. -// nIsSuperCatalytic : the super catalytic condition for the fully catalytic wall, and assigned with the value of 1. -// 0 -- equilibrium condition for the fully catalytic wall where the mass fractions are assigned with the values of the free stream. -// 1 -- super catalytic condition for the fully catalytic wall where all the atomic components combine into molecular components. -// nTemperatureJump : the method to calculate the temperature jump. -// 0 -- calculated by the variables of heat conductivity and constant volume specific heat for each energy mode. -// 1 -- the general method where the iteration is calculated with the translation-rotation temperature. -// nSurfGradMethod : the method to compute the surface heating ratio. -// 0 -- the gradient of variable is computed with the first-order difference method. -// 1 -- the gradient of variable is computed with the Green-Guass integral method. -// nRapidFlowfield : initialize the flowfield using the rapid engineering method when it is greater than zero. -// nSurfHeatMonitor : To exam the surface heating change or not. 0 is no, 1 is yes. -// nInitPressureStep : the steps to initialize the boundary variables when the rapid method is used. 100 is the default value. -// nDumpCFLNumber : 1 indicates dumping the CFL number to file, 0 denotes no dumping. +// 0.0 -- full non-catalytic wall boundary condition. +// 1.0 -- full catalytic wall boundary condition. +// in range of (0.0, 1.0) -- partial catalytic condition, the value indicates the catalytic coefficient. +// nIsSuperCatalytic: the super catalytic condition for the fully catalytic wall, and assigned with the value of 1. +// 0 -- equilibrium condition for the fully catalytic wall where the mass fractions are assigned with the values of the free stream. +// 1 -- super catalytic condition for the fully catalytic wall where all the atomic components combine into molecular components. +// nTemperatureJump: the method to calculate the temperature jump. +// 0 -- calculated by the variables of heat conductivity and constant volume specific heat for each energy mode. +// 1 -- the general method where the iteration is calculated with the translation-rotation temperature. +// nSurfGradMethod: the method to compute the surface heating ratio. +// 0 -- the gradient of variable is computed with the first-order difference method. +// 1 -- the gradient of variable is computed with the Green-Guass integral method. +// nRapidFlowfield: initialize the flowfield using the rapid engineering method when it is greater than zero. +// nSurfHeatMonitor: To exam the surface heating change or not. 0 is no, 1 is yes. +// nInitPressureStep: the steps to initialize the boundary variables when the rapid method is used. 100 is the default value. +// nDumpCFLNumber: 1 indicates dumping the CFL number to file, 0 denotes no dumping. // sigmaVelocity: the coordination coefficient of tangential momentum for computation of slip velocity. The value is in range of (0.0, 2.0]. // sigmaTemperature: the heat coordination coefficient for computation of slip temperature. The value is in range of (0.0, 2.0]. // sigmaMassFraction: the species coordination coefficient for computation of slip mass fractions. The value is in range of (0.0, 2.0]. // velocitySlipCorrectConstant: the correction constant to the velocity slip condition. For the diffuse reflection, 1.0 is used. -// 1.0 -- proposed by Maxwell. -// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. -// 1.146 -- proposed for an additional "fictitious" velocity slip. - -// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. -// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. -// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. -// nIsChemicalFreeze : the flag to freeze the chemical reactions. -// 0 -- not freeze, the chemical reaction sources will be calculated. -// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te - -//maxViscous: the maximum of Viscous. -//trTemperatureMin: the minimum value of trTemperature. -//veTemperatureMin: the minimum value of veTemperature. -//densityMin: the minimum value of density. -//tAdjustmentFactor: magnification of temperature, this value is in range of (1.0, 10.0]. -// nDebug: cout the Wrong place and abort -// 0 -- not used. -// 1 -- used. +// 1.0 -- proposed by Maxwell. +// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. +// 1.146 -- proposed for an additional "fictitious" velocity slip. +// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. +// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. +// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. +// nIsChemicalFreeze: the flag to freeze the chemical reactions. +// 0 -- not freeze, the chemical reaction sources will be calculated. +// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated. +// veTemperatureMin: The minimum of Tv and Te. +// maxViscous: the maximum of Viscous. +// trTemperatureMin: the minimum value of trTemperature. +// veTemperatureMin: the minimum value of veTemperature. +// densityMin: the minimum value of density. +// tAdjustmentFactor: magnification of temperature, this value is in range of (1.0, 10.0]. +// nDebug: cout the Wrong place and abort +// 0 -- not used. +// 1 -- used. // nSpeciesLimit: limitter of gas species -// 0 -- not used. -// 1 -- used. -// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction -// 0 -- method 0. -// 1 -- method 1. -// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid -// 0 -- not used. -// 1 -- used. -// nViscosityPeModified: Pe Modified for ViscosityCoef -// 0 -- not used. -// 1 -- used. -// nChemcalSourceModified: Modified on ChemcalSource -// 0 -- not used. -// 1 -- used. -// nChemcalSourceEsMethod: Modified on ChemcalSource -// 0 -- approximation algorithm 1 (Ori.) -// 1 -- approximation algorithm 2 (New) - +// 0 -- not used. +// 1 -- used. +// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction. +// 0 -- method 0. +// 1 -- method 1. +// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid. +// 0 -- not used. +// 1 -- used. +// nViscosityPeModified: Pe Modified for ViscosityCoef. +// 0 -- not used. +// 1 -- used. +// nChemcalSourceModified: Modified on ChemcalSource. +// 0 -- not used. +// 1 -- used. +// nChemcalSourceEsMethod: Modified on ChemcalSource. +// 0 -- approximation algorithm 1 (Ori). +// 1 -- approximation algorithm 2 (New). // nMaxStepTemperature: the iterative steps of temperature. - -// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs -// 0 -- not used -// 1 -- used - -// nDiagonalModified: Modified on Diagonal -// 0 -- not used -// 1 -- Ori. -// 2 -- new - -//nGradPrimtiveMethod: -// 0 -- Ori. -// 1 -- new +// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs. +// 0 -- not used. +// 1 -- used. +// nDiagonalModified: Modified on Diagonal. +// 0 -- not used. +// 1 -- new. +// nDiagonalModifiedTurb: Modified on Diagonal for turbulence. +// 0 -- not used. +// 1 -- new. +// nGradPrimtiveMethod: +// 0 -- Ori. +// 1 -- new. // nAblation: -// 0 -- The wall ablation is not computed. -// 1 -- The wall ablation is computed. +// 0 -- The wall ablation is not computed. +// 1 -- The wall ablation is computed. // isInjection: -// 0 -- The injection velocity of ablation wall is not computed. -// 1 -- The injection velocity of ablation wall is computed. +// 0 -- The injection velocity of ablation wall is not computed. +// 1 -- The injection velocity of ablation wall is computed. // nViscosityModel: -// 0 -- Blottner fitting method(N89). -// 1 -- Gupta fitting method(N90). +// 0 -- Blottner fitting method(N89). +// 1 -- Gupta fitting method(N90). // nContinueModel: The new continue model can switch different computation model. -// 0 -- Not use the new continue model. -// 1 -- use the new continue model. +// 0 -- Not use the new continue model. +// 1 -- use the new continue model. // nSutherland: -// 0 -- stands for selecting the Blotter curve fits mode. -// 1 -- stands for Sutherland relation. +// 0 -- stands for selecting the Blotter curve fits mode. +// 1 -- stands for Sutherland relation. // gasfile: Indicates the gas model, 9 models are provided, namely "Gu5", "Gu7", "Gu11", "Pa5", "Pa7", "Pa11", "DK5", "DK7", "DK11". -// "Gu" -- indicates the Gupta Model, three-Type Models are embeded in the library, namely, the 5-species-6-reactions, the 7-species-9-reactions, the 11-species-20-reactions. -// "Pa" -- indicates the Park Model, three-Type Models are embeded in the library, namely, the 5-species-17-reactions, the 7-species-22-reactions, the 11-species-48-reactions. -// "DK" -- indicates the Dunn-Kang Model, three-Type Models are embeded in the library, namely, the 5-species-11-reactions, the 7-species-15-reactions, the 11-species-26-reactions. -// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. -// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. -// "Gas-Mixture" -- indicates the process of mixing gas without reacting. -// for struct solver mixing two speciesSpeciesA, SpeciesB. -// for unstruct solver mixing multi-speciesO2 NO CO CO2 H2 N2 Air CH4. -// For self-definition model, the gasfile is used to indicate the file path of the new gas model. +// "Gu" -- indicates the Gupta Model, three-Type Models are embeded in the library, namely, the 5-species-6-reactions, the 7-species-9-reactions, the 11-species-20-reactions. +// "Pa" -- indicates the Park Model, three-Type Models are embeded in the library, namely, the 5-species-17-reactions, the 7-species-22-reactions, the 11-species-48-reactions. +// "DK" -- indicates the Dunn-Kang Model, three-Type Models are embeded in the library, namely, the 5-species-11-reactions, the 7-species-15-reactions, the 11-species-26-reactions. +// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. +// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. +// "Gas-Mixture" -- indicates the process of mixing gas without reacting. +// for struct solver mixing two species��SpeciesA, SpeciesB��. +// for unstruct solver mixing multi-species��O2 NO CO CO2 H2 N2 Air CH4��. +// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // ifStartFromPerfectGasResults: The chemical reaction simulation is start from perfect gas flowfield or not, 0 is for no and else is for yes. -// nIterFirstStep : the maximum number of iteration in the first step for the self-adaptive calculation. -// nIterSecondStep : the maximum number of iteration in the second step for the self-adaptive calculation. -// nIterThirdStep : the maximum number of iteration in the third step for the self-adaptive calculation. -// nEnergyAssembly : the vibration energy is computed with combined method which includes the fitting method and the molecular kinetic theory. -// 0 -- no, -// 1 -- yes. +// nIterFirstStep : the maximum number of iteration in the first step for the self-adaptive calculation. +// nIterSecondStep: the maximum number of iteration in the second step for the self-adaptive calculation. +// nIterThirdStep : the maximum number of iteration in the third step for the self-adaptive calculation. +// nEnergyAssembly: the vibration energy is computed with combined method which includes the fitting method and the molecular kinetic theory. +// 0 -- no, +// 1 -- yes. // nControlVariable: the variable to computing the residual error that determines the convergence is meet or not in the one-temperature model. -// 0 -- the density. -// 1 -- the translation temperature. -// 2 -- the vibration temperature. -// 3 -- the electron temperature. -// 4 -- the pressure. -// 5 -- the mass fraction of oxygen. -// 6 -- the mass fraction of nitrogen. +// 0 -- the density. +// 1 -- the translation temperature. +// 2 -- the vibration temperature. +// 3 -- the electron temperature. +// 4 -- the pressure. +// 5 -- the mass fraction of oxygen. +// 6 -- the mass fraction of nitrogen. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. -// useHyflowSetting : Setting for HyFLOW GUI. -// 0 -- PHengLEI -// 1 -- HyFLOW -// nProtectData : Use the continuation file data protection mechanism. -// 0 -- no -// 1 -- yes - +// nProtectData: Use the continuation file data protection mechanism. +// 0 -- no. +// 1 -- yes. +// nTvChange: Judge whether the Tv equals Ttr. +// 0 -- yes. +// 1 -- no. +// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions. +// nFraction: the initial fractions type of species. +// 0 -- mass fraction. +// 1 -- mole fraction. int dg_high_order = 0; int iapplication = 0; int isAdaptiveSolver = 0; -int nm = 5; +int nm = 5; int nEquilibriumGas = 0; -int nPCWCycleStep = 3; -int nRETCycleStep = 3; -int nSLIPCycleStep= 3; +int nPCWCycleStep = 3; +int nRETCycleStep = 3; +int nSLIPCycleStep = 3; int nIterFirstStep = 1000; int nIterSecondStep= 2000; int nIterThirdStep = 2000; @@ -1065,17 +1084,17 @@ double secondStepError = 0.001; double thirdStepError = 0.001; double predictCFLError = 0.1; -double refGama = 1.4; -double prl = 0.72; -double prt = 0.90; -double sc_l = 0.5; -double sc_t = 0.5; +double refGama = 1.4; +double prl = 0.72; +double prt = 0.90; +double sc_l = 0.5; +double sc_t = 0.5; -int nGasModel = 0; -int nchem = 0; -int nchemsrc = 1; -int nchemrad = 1; -int ntmodel = 1; +int nGasModel = 0; +int nchem = 0; +int nchemsrc = 1; +int nchemrad = 1; +int ntmodel = 1; int nIdealState = 0; int nEnergyRecycle = 1; @@ -1099,12 +1118,12 @@ double sigmaTemperature = 1.0; double sigmaMassFraction = 1.0; double velocitySlipCorrectConstant = 1.0; -double chemicalRelaxCorf = 1.0; +double chemicalRelaxCorf = 1.0; double chemicalSpectrumRadiusCoef = 1.0; double viscousSpectrumRadiusCoef = 1.5; double inviscidSpectrumRadiusCoef = 1.5; -double spectrumRadiusCoef = 0.5; -double staticPressureRelaxCorf = 0.2; +double spectrumRadiusCoef = 0.5; +double staticPressureRelaxCorf = 0.2; double maxViscous = 10000.0; double trTemperatureMin = 10.0; @@ -1114,31 +1133,35 @@ double densityMin = 1.0e-8; double densityMinFactor = 0.1; double tAdjustmentFactor = 10.0; double iniSpeedCoef = 1.0; +int iniSpeedMode = 0; -int nDebug = 0; -int nSpeciesLimit = 1; -int nTurblenceForChemical = 0; -int nViscosityFluxSublevelModified = 1; -int nViscosityPeModified = 0; -int nChemcalSourceModified = 2; -int nChemcalSourceEsMethod = 1; -int nMaxStepTemperature = 5; -int veTemperatureMinModified = 1; -int nDiagonalModified = 0; -int nGradPrimtiveMethod = 1; -int nInviscidFluxModify = 1; -int nQlLimitMethod = 2; -int nSpeciesForWallMethod = 1; -int nDensityForWallMethod = 0; +int nDebug = 0; +int nSpeciesLimit = 1; +int nTurblenceForChemical = 0; +int nViscosityFluxSublevelModified = 1; +int nViscosityPeModified = 0; +int nChemcalSourceModified = 2; +int nChemcalSourceEsMethod = 1; +int nMaxStepTemperature = 5; +int veTemperatureMinModified = 1; +int nDiagonalModified = 0; +int nDiagonalModifiedTurb = 0; +int nGradPrimtiveMethod = 1; +int nInviscidFluxModify = 1; +int nQlLimitMethod = 2; +int nSpeciesForWallMethod = 1; +int nDensityForWallMethod = 0; +int wallMultiTemperature = 0; -int nProtectData = 0; -int useHyflowSetting = 0; -int nAblation = 0; -int isInjection = 0; -int nViscosityModel = 0; -int nMarsModel = 0; -string gasfile = "DK5"; -//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +int nProtectData = 0; +int nAblation = 0; +int isInjection = 0; +int nViscosityModel = 0; +int nMarsModel = 0; +int nTvChange = 0; +int isMoleFractionType = 0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; string speciesName = "O, O2, NO, N, N2"; string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.767"; @@ -1152,16 +1175,16 @@ string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.767"; //string speciesName = "O, O2, NO, N, N2, C, CO, CO2"; //string initMassFraction = "0.0015, 0.0429, 0.0, 0.0, 0.0, 0.0, 0.0777, 0.8779"; -//string gasfile = "Pa"; +//string gasfile = "Pa"; //string speciesName = "O, O2, NO, N, NO+, C, C2, CO, CO2, CN, N2, e-"; //string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767, 0.0"; -//string gasfile = "Combustion-12"; +//string gasfile = "Combustion-12"; //string speciesName = "O, O2, NO, N, C, CO, CO2, H, H2, OH, H2O, N2"; //string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767"; //string gasfile = "Gas-Mixture"; -//string speciesName ="SpeciesA, SpeciesB"; +//string speciesName = "SpeciesA, SpeciesB"; //string initMassFraction = "1.0, 0.0"; int nSutherland = 0; double gamaSpeciesA = 1.4; @@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0; //string speciesName = "O2, N2"; //string initMassFraction = "1.0, 0.0"; +int nFraction = 0; int nContinueModel = 0; int nChemicalFlowStep = 0; int ifStartFromPerfectGasResults = 0; +int isUseNoneqCond = 0; +double frozenCondition = 0.01; + +int nLeakageMonitor = 0; +double totalLeakageVolume = 1000.0; +double monitorThresholdValue = 0.05; +double sprayFactor = 0.0; ######################################################################### // Multi-Grid parameters. @@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0; // 1 -- zero order. // 2 -- first-order. (default) // mgCorrectionLimit: Multi-grid correction limit. - int nMGLevel = 1; int MGCoarsestIteration = 1; int MGPreIteration = 1; @@ -1218,20 +1248,20 @@ 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"; +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 # -######################################################################### +#************************************************************************ +# High Order Struct Solver * +#************************************************************************ // isFVMOrFDM: -// 0 -- NSSolverStruct using Finite Volume Method. -// 1 -- NSSolverStruct using Finite Differ Method. +// 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) @@ -1273,30 +1303,48 @@ int allReduceStep = 1; // codeOfOversetGrid: Overlapping(overset) grid or not. // 0 -- NON-overlapping grid. // 1 -- Overlapping grid. -// oversetInterpolationMethod: the method of overset interpolation while field simulation +// oversetInterpolationMethod: the method of overset interpolation while field simulation. // 0 -- set the acceptor cell value by donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value. - -int codeOfOversetGrid = 0; -int oversetInterpolationMethod = 0; -int readOversetFileOrNot = 0; -int symetryOrNot = 0; -int readInAuxiliaryInnerGrid = 0; -int readInAuxiliaryOuterGrid = 0; -int readInSklFileOrNot = 0; -string auxiliaryInnerGrid0 = "./grid/aux-upper.fts"; -string auxiliaryInnerGrid1 = "./grid/aux-lower.fts"; -string auxiliaryInnerGrid2 = ""; -string oversetGridFileName = "./grid/iblank.ovs"; -double walldistMainZone = 1.0 -double toleranceForOversetSearch = 1.0e-3; -double toleranceForOversetBox = 1.0e-3; -int twoOrderInterpolationOrNot = 0; -int keyEnlargeOfActiveNodes = 0; -int outTecplotOverset = 0; -int outPutOversetVisualization = 0; - -int numberOfMovingBodies = 2; +// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated. +// 0 -- no. +// 1 -- yes. +// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in +// the current overset grid(only for three dimension). +// 0 -- no. +// 1 -- yes. +// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid. +// 0 -- no. +// 1 -- yes. +// walldistMainZone: The initial value of background grid which does not exist wall boundary condition. +// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell. +// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region. +// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary. +// 0 -- one layer. +// 1 -- two layers. +// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region. +// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure. +// 0 -- no. +// 1 -- yes. +int codeOfOversetGrid = 0; +int oversetInterpolationMethod = 0; +int readOversetFileOrNot = 0; +int symetryOrNot = 0; +int readInAuxiliaryInnerGrid = 0; +int readInAuxiliaryOuterGrid = 0; +int readInSklFileOrNot = 0; +string auxiliaryInnerGrid0 = "./grid/aux-upper.fts"; +string auxiliaryInnerGrid1 = "./grid/aux-lower.fts"; +string auxiliaryInnerGrid2 = ""; +string oversetGridFileName = "./grid/iblank.ovs"; +double walldistMainZone = 1.0 +double toleranceForOversetSearch = 1.0e-3; +double toleranceForOversetBox = 1.0e-3; +int twoOrderInterpolationOrNot = 0; +int keyEnlargeOfActiveNodes = 0; +int outTecplotOverset = 0; +int outPutOversetVisualization = 0; +int numberOfMovingBodies = 2; // ----------------- ALE configuration ------------------------------ int codeOfAleModel = 0; @@ -1306,36 +1354,42 @@ double referenceLength = 1.0; double referenceVelocity = 1.0; double referenceDensity = 1.0; -int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; -int strategyForGCLSource = 0; //0-present; 1-Ahn; +int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd. +int strategyForGCLSource = 0; // 0-present; 1-Ahn. -//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton +// 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton. int methodForKineticEquation = 0; double relaxParameterOfKinetic = 1.0; -######################################################################### -# motive information # -######################################################################### +#************************************************************************ +# motive information * +#************************************************************************ int numberOfMovingBodies = 1; ############################## body0 ############################## -//mass of parts -double mass_0 = 1.0; -//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz -double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; -//initial six DOF position information of parts. xc yc zc -double massCenter_0[] = 0.0 , 0.0, 0.0; -//initial six DOF position information of parts. angleX angleY angleZ -double attitudeAngle_0[] = 0.0 , 0.0, 0.0; -//initial six DOF move information of parts. vc vy vz -double massCenterVelocity_0[] = 0.0, 0.0, 0.0; -//initial six DOF move information of parts. omigX omigY omigZ -double angularVelocity_0[] = 0.0, 0.0, 0.0; -//the object that the parts belong to. -int fartherIndex_0 = -1; -//the assembly position of the parts. xc yc zc angleX angleY angleZ -double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0; -//the move pattern of the parts. +// mass of parts. +double mass_0 = 1.0; +// gravity of parts (along negative direction in Y-axis, eg. 9.8). +double gravity_0 = 0.0; +// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz. +double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; +// initial six DOF position information of parts. xc yc zc. +double massCenter_0[] = 0.0, 0.0, 0.0; +// if reset mass center while restart. +int resetMassCenter_0 = 0; +// position offset of parts. dx dy dz. +double massCenterDxyz_0[] = 0.0, 0.0, 0.0; +// initial six DOF position information of parts. angleX angleY angleZ. +double attitudeAngle_0[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. vc vy vz. +double massCenterVelocity_0[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. omigX omigY omigZ. +double angularVelocity_0[] = 0.0, 0.0, 0.0; +// the object that the parts belong to. +int fartherIndex_0 = -1; +// the assembly position of the parts. xc yc zc angleX angleY angleZ. +double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; +// the move pattern of the parts. // -1 given motion partten. // 0 still. // 1 six DOF motion. @@ -1346,51 +1400,68 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0 // 14 forced pitch motion. // 15 forced yaw motion. // 16 forced roll motion. -int RBDMethod_0 = 0; -double amplitude_0 = 0.0; -double reduceFrequency_0 = 0.0; -//direction of rotation +int RBDMethod_0 = 0; +double amplitude_0 = 0.0; +double reduceFrequency_0 = 0.0; +// direction of rotation. // 1 -- clockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis. -int direction_0 = -1; -double rotateFrequency_0 = 0.0; -//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; -//additional force (system axis) fX fY fZ -double addedForce_0[] = 0.0 ,0.0 ,0.0 ; -//additional moment of Force (system axis) mX mY mZ -double addedMoment_0[] = 0.0 ,0.0 ,0.0 ; -//the deformation method of the parts. -int morphing_0 = 0; - -// post indentify -int integralOrder = 4; +int direction_0 = -1; +double rotateFrequency_0 = 0.0; +//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; +// dimensional physical time for additional force(s). +double addedForceTime_0[] = 0.0; +// additional force(inertia system) fX fY fZ. +double addedForce_0[] = 0.0, 0.0, 0.0; +// additional moment(inertia system) mX mY mZ. +double addedMoment_0[] = 0.0, 0.0, 0.0; +// the deformation method of the parts. +int morphing_0 = 0; +// post indentify. +int integralOrder = 4; // ---------------- ATP read -------------------------------------------- -//@int inflowParaType = 0; +//@int inflowParaType = 0; //@double refReNumber = 6.5e6; //@double refDimensionalTemperature = 288.15; //@double freestream_vibration_temperature = 300.00; -//@double refDimensionalPressure = 0; -//@double height = 0; -//@int nsubsonicInlet = 0; -//@int nsubsonicOutlet = 0; -//@string inLetFileName = "./bin/subsonicInlet.hypara"; -//@string outLetFileName = "./bin/subsonicOutlet.hypara"; +//@double refDimensionalPressure = 0; +//@double height = 0; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@double refDimensionalVelocity = 0; //@double refDimensionalDensity = 0; - -######################################################################### -# Old Parameter # -######################################################################### +//@string weatherDataFilePath = "./WRFData/"; +//@double longitude = 110.95 +//@double latitude = 19.61; +#************************************************************************ +# Old Parameter * +#************************************************************************ int isPlotVolumeField = 0; +#************************************************************************ +# partial flow field setting Parameter * +#************************************************************************ +//int nPartialParameter = 0; // 0/1/2 +//int nNumberOfPartialField = 0; // +//int nStartGridIndex[] = [0]; +//int nEndGridIndex[] = [0]; -######################################################################### -# Incompressible Parameter # -######################################################################### +//double partialCFL[] = [0.0]; +//double partialSpeedCoef[] = [0.0]; +//double partialSpeed[] = [0.0]; +//double partialAttackd[] = [0.0]; +//double partialSlide[] = [0.0]; +//double partialPressure[] = [0.0]; +//double partialTemperature[] = [0.0]; +//double partialMassFractions[] = [0.0]; +#************************************************************************ +# Incompressible Parameter * +#************************************************************************ int isSolveEnergyEquation = 0; int isSolveTurbEquation = 0; -int isSolveSpeciesEquation = 0; - +int isSolveSpeciesEquation = 0; \ No newline at end of file diff --git a/L03_ThreeD_Poiseuille_MRT_MPI_4CPU/bin/input.txt b/L03_ThreeD_Poiseuille_MRT_MPI_4CPU/bin/input.txt new file mode 100644 index 0000000..ec63d5b --- /dev/null +++ b/L03_ThreeD_Poiseuille_MRT_MPI_4CPU/bin/input.txt @@ -0,0 +1,35 @@ +1 !MRT set 1, BGK set 0 +0 continue.plt !CONTI, resume :1 , new 0 //follows input datafile name //use ASCII文件 continue.plt +0 !LES yes: 1 , no: 0 +0 mesh_3d.dat !GEO read complex geo? yes:1, no:0 //follows input datafile name +0 ! MB multiblock LBM? yes:1, no:0 +1 2e-3 !CONV using converge criterion? yes:1, no:0 +100 !NX +100 ! NY +100 ! NZ +1 ! NX2 +1 ! NY2 +1 ! NZ2 +0 ! LowX +0 ! LowY +0 ! LowZ +2 ! x_np +2 ! y_np +1 ! z_np +500 ! framerate +50000 !total steps to terminate +1.0 ! density +0.6 ! tau +(2.2e-7,0.0,0.0) ! Volumetric force +D3Q19 ! velocity set +Poiseuille ! boundary condition +! note: in the following, boundary types: periodic,velocity, pressure +! are allowed. if "velocity" is applied, please strictly follow the format "velocity (%lf, %lf, %lf)". +periodic !xmin face +periodic !xmax face +periodic !ymin face +periodic !ymax face, +nonslip !zmin face +nonslip !zmax face +-------------------! initial velocity field +(0.0, 0.00, 0.0) \ No newline at end of file diff --git a/H05_PBSolver_ThreeD_Suboff_Laminar_Re225_1CPU/bin/key.hypara b/L03_ThreeD_Poiseuille_MRT_MPI_4CPU/bin/key.hypara similarity index 91% rename from H05_PBSolver_ThreeD_Suboff_Laminar_Re225_1CPU/bin/key.hypara rename to L03_ThreeD_Poiseuille_MRT_MPI_4CPU/bin/key.hypara index 80060fd..1a572c7 100644 --- a/H05_PBSolver_ThreeD_Suboff_Laminar_Re225_1CPU/bin/key.hypara +++ b/L03_ThreeD_Poiseuille_MRT_MPI_4CPU/bin/key.hypara @@ -17,12 +17,12 @@ string defaultParaFile = "./bin/cfd_para.hypara"; int ndim = 3; int nparafile = 1; -int nsimutask = 0; -string parafilename = "./bin/cfd_para_incompressible.hypara" +//int nsimutask = 0; //string parafilename = "./bin/cfd_para_subsonic.hypara"; //string parafilename = "./bin/cfd_para_transonic.hypara"; //string parafilename = "./bin/cfd_para_supersonic.hypara"; //string parafilename = "./bin/cfd_para_hypersonic.hypara"; +//string parafilename = "./bin/cfd_para_incompressible.hypara"; //int nsimutask = 1; //string parafilename = "./bin/grid_para.hypara"; @@ -39,6 +39,9 @@ string parafilename = "./bin/cfd_para_incompressible.hypara" //int nsimutask = 1; //string parafilename = "./bin/grid_refine_para.hypara"; +int nsimutask = 13; +string parafilename = "./bin/cfd_para.hypara"; + //int nsimutask = 14; //string parafilename = "./bin/integrative_solver.hypara"; diff --git a/H04_PBSolver_ThreeD_Pipe_Turb_Unstruct_1CPU/bin/cfd_para.hypara b/L04_ThreeD_Spoiler_BGK_MPI_8CPU/bin/cfd_para.hypara similarity index 60% rename from H04_PBSolver_ThreeD_Pipe_Turb_Unstruct_1CPU/bin/cfd_para.hypara rename to L04_ThreeD_Spoiler_BGK_MPI_8CPU/bin/cfd_para.hypara index c344658..f903a5a 100644 --- a/H04_PBSolver_ThreeD_Pipe_Turb_Unstruct_1CPU/bin/cfd_para.hypara +++ b/L04_ThreeD_Spoiler_BGK_MPI_8CPU/bin/cfd_para.hypara @@ -8,23 +8,24 @@ // Platform for Hybrid Engineering Simulation of Flows + // China Aerodynamics Research and Development Center + // (C) Copyright, Since 2010 + +// PHengLEI 2212 + //+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ########################################################################### # Default parameters for Grid conversion # ########################################################################### // gridtype: Grid type for generation, conversion, reconstruction, merging. -// 0 -- Unstructured grid. -// 1 -- Structured grid. -// 2 -- Hybrid grid, include both of unstructured and structured grid. -// gridobj: Task type of grid treatment. -// 0 -- Grid generation of typical case, such as cylinder, flat plate, etc. -// 1 -- Grid conversion, from other grid data to PHenglEI, such as Fluent, CGNS. -// 2 -- Grid refinement. -// 3 -- Grid merging, merge two blocks into one block. -// 4 -- Grid deformation, achieve unstructured grid deformation. -// 5 -- Grid repairing, repair the original grid in order to remove the negative volume cells. -// 6 -- Grid mirroring, mirror a symmetry grid to whole grid. -// 7 -- Grid type change, convert structured grid to unstructured grid. +// 0 -- Unstructured grid. +// 1 -- Structured grid. +// 2 -- Hybrid grid, include both of unstructured and structured grid. +// gridobj: Task type of grid treatment. +// 0 -- Grid generation of typical case, such as cylinder, flat plate, etc. +// 1 -- Grid conversion, from other grid data to PHenglEI, such as Fluent, CGNS. +// 2 -- Grid refinement. +// 3 -- Grid merging, merge two blocks into one block. +// 4 -- Grid deformation, achieve unstructured grid deformation. +// 5 -- Grid repairing, repair the original grid in order to remove the negative volume cells. +// 6 -- Grid mirroring, mirror a symmetry grid to whole grid. +// 7 -- Grid type change, convert structured grid to unstructured grid. // multiblock: Multi-block grid or not, only for structured grid conversion. // 0 -- Not. // 1 -- Yes. @@ -46,19 +47,24 @@ int gridobj = 1; int multiblock = 0; int iadapt = 0; int SymmetryFaceVector = 1; - int gridReorder = 0; int faceReorderMethod = 0; -// axisup: Type of Cartisien coordinates system, used in grid conversion. -// 1 -- Y upward. (default) -// 2 -- Z upward. -int axisup = 1; +// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating. +// axisRotateOrder : axis rotating order. +// 1 -- X-axis. +// 2 -- Y-axis. +// 3 -- Z-axis. +// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order. +int nAxisRotateTimes = 0; +int axisRotateOrder[] = [1, 2, 3]; +double axisRotateAngles[] = [0.0, 0.0, 0.0]; // omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". // 0 -- Interface. (default) // 1 -- Physical boundary condition, used in Hybrid solver. int omit_no_bound_bc = 0; +int omitRepeatInterface = 1; //----------------------------------------------------------------------- # Grid data type # @@ -87,10 +93,9 @@ int dumpOldGrid = 0; // from_gfile: path of original data file for unstructure grid convert from. // out_gfile: path of target file for grid convert to, *.fts type of file usually. int numberOfGridFile = 1; -string from_gfile = "./grid/rae2822_hybrid2d.cas"; -string from_gfile1= ""; - -string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; +string from_gfile = "./grid/rae2822_hybrid2d.cas"; +string from_gfile1 = ""; +string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; // ----------------- some advanced choices ------------------------------ // iunsteady: The Grid is for unsteady simulation or not. @@ -103,9 +108,9 @@ int fileformat = 0; // Parameters for hybrid solver. // mixgrid_uns: path of unstructure grid file for hybrid solver, *.fts type. -// mixgrid_str: path of structure grid file for hybrid solver, *.fts type. -string mixgrid_uns = "./grid/rae2822_uns2d_4.fts"; -string mixgrid_str = "./grid/flat_laminr_133_85_2d.fts"; +// mixgrid_str: path of structure grid file for hybrid solver, *.fts type. +string mixgrid_uns = "./grid/rae2822_uns2d_4.fts"; +string mixgrid_str = "./grid/flat_laminr_133_85_2d.fts"; // Some parameters for structured overlapping grid. int codeOfDigHoles = 1; @@ -119,31 +124,31 @@ string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; // 0 -- Not. (default) // 1 -- Yes. // geometryUnit: Geometry unit. -// 1 -- meter. -// 2 -- millimeter. -// 3 -- inch. +// 1 -- meter. +// 2 -- millimeter. +// 3 -- inch. // exclusiveCase: Parallel projection exclusive case. -// 0 -- NON case. -// 1 -- JSM-C2-NPOFF case. -// 2 -- CHNT. +// 0 -- NON case. +// 1 -- JSM-C2-NPOFF case. +// 2 -- CHNT. // projectOrgPoint: If the original wall points need to be projected or not. -int anisoRefine = 0; -int geometryUnit = 1; -int isProject = 0; -int readDist = 0; -int isDeform = 0; +int anisoRefine = 0; +int geometryUnit = 1; +int isProject = 0; +int readDist = 0; +int isDeform = 0; int exclusiveCase = 0; int projectOrgPoint = 0; string geometryFileName = "./grid/jsm.igs"; // ----------------- Grid Deform Parameters ----------------------------- // deformationMethod: Grid Deform. -// 1 -- SPRING. -// 2 -- RBF. +// 1 -- SPRING. +// 2 -- RBF. // stationalGridFile: Original grid file. // visualFileName : The visualization file path of deform grid. // nDeformStep : The max deform step. -// flapAngle : The max flap angle. +// flapAngle : The max flap angle. // rotatePostionZ : Rotate postion. // rotatePostionY : Rotate postion. // gridSlice : If dump slice grid. @@ -163,10 +168,10 @@ int sliceAxis = 1; double slicePosition = 13; // ----------------- RBF Parameters ------------------------------------- -// numberOfReferenceCP : Number of reference Control Points. -// influencePara : The RBF influence radius parameter. +// numberOfReferenceCP: Number of reference Control Points. +// influencePara : The RBF influence radius parameter. int numberOfReferenceCP = 40; -double influencePara = 25.0; +double influencePara = 25.0; // ----------------- Periodic Parameters -------------------------------- // Notice: Rotational periodicity only support rotation along the X axis! @@ -178,9 +183,8 @@ double influencePara = 25.0; which only support one direction. // rotationAngle: The relative angle between two periodic face. which is recorded in degrees. - int periodicType = 0; -double translationLength[] = [0.0,0.0,0.0]; +double translationLength[] = [0.0, 0.0, 0.0]; double rotationAngle = 0.0; ######################################################################### @@ -192,7 +196,6 @@ double rotationAngle = 0.0; // 2 -- refine structured grid. // maxproc: The number of partition zones that want to be divided into. // numberOfMultifile: The number of partition grid files that want to be dumped out. - int pgridtype = 0; int maxproc = 4; int numberOfMultifile = 1; @@ -201,20 +204,20 @@ int numberOfMultifile = 1; // 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. +// cellIndexOfMark : the cell index of mark, only for structured grid partition. int traceMark = 0; int blockIndexOfMark = 0; -int cellIndexOfMark[] = [185,30,1]; +int cellIndexOfMark[] = [185, 30, 1]; -// parallel Strategy: -//! -# 0 : each zone is assigned to the one that defined in grid partition procedure. -//! -# 1 : random assigned for each zone or by some else ways. -int parallelStrategy = 1; +// parallelStrategy: +// 0 -- each zone is assigned to the one that defined in grid partition procedure. +// 1 -- random assigned for each zone or by some else ways. +int parallelStrategy = 1; //----------------------------------------------------------------------- # File path # //----------------------------------------------------------------------- -// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts). +// 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"; @@ -232,11 +235,10 @@ string partition_grid_file = "./grid/sphere_mixed__4.fts"; // 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; +double parmetisBalance = 1.05; // numberOfMultigrid: Number of multi-grid levels, ONLY used for structured grid. // 1 -- single level. @@ -248,29 +250,35 @@ 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. +// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved. +// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved. // intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. -// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. -// intervalStepRes: The step intervals for residual file 'res.dat' saved. -// 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; +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +int maxSimuStep = 20000; +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; int intervalStepSample = 1000; -int intervalStepForce = 100; -int intervalStepRes = 10; -int ifLowSpeedPrecon = 0; +int intervalStepForce = 100; +int intervalStepRes = 10; // compressible: // 0 -- incompressible flow. // 1 -- compressible flow. (default) int compressible = 1; +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) +// Kprec: The coefficient K for the cut-off velocity. +// 1.0~3.0 is suggested. (default, 3.0) +// preconFarfieldBCMethod: The precondition method for farfield boundary condition. +// 0 -- precondition far-field boundary based on riemann invariants. +// 1 -- Turkel's simplified far-field boundary condition. +int ifLowSpeedPrecon = 0; +double Kprec = 3.0; +int preconFarfieldBCMethod = 1; + //----------------------------------------------------------------------- # CFD Control Parameter # //----------------------------------------------------------------------- @@ -281,33 +289,36 @@ int compressible = 1; // 0 -- the nondimensional conditions. // 1 -- the flight conditions. // 2 -- the experiment conditions. -// 3 -- the subsonic boundary conditions. +// 3 -- the subsonic boundary conditions. (Useless!) // 4 -- the condition that the velocity, temperature and density are given. // 5 -- the condition that the velocity, temperature and pressure are given. +//flowInitMethod: Flow field initialization method. +// 0 -- The entire flow field is initialized according to Infinite velocity. +// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate. // refReNumber: Reynolds number, which is based unit length, unit of 1/m. // refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition. // freestream_vibration_temperature: Dimensional freestream vibration temperature. // refDimensionalPressure: Dimensional reference pressure, or the total pressure only for the experiment condition. // height: Fly height, unit of km. // wallTemperature: Temprature of the solid wall, minus value is for adiabatic boundary condition. -// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter.Common dimensions like: -// 1 dm = 0.1 m. -// 1 cm = 0.01 m. -// 1 mm = 0.001m. -// 1 inch = 0.0254m. -// 1 foot = 12 inches = 0.3048m. -// 1 yard = 3 feet = 0.9144m. +// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter. Common dimensions like: +// 1 dm = 0.1 m. +// 1 cm = 0.01 m. +// 1 mm = 0.001 m. +// 1 inch = 0.0254 m. +// 1 foot = 12 inches = 0.3048 m. +// 1 yard = 3 feet = 0.9144 m. // forceReferenceLength, forceReferenceLengthSpanWise, forceReferenceArea: Reference length, SpanWise length and area, independent of grid unit. // TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent of grid unit. // radiationCoef: The radiation coefficient on wall, it is used to compute the radiation heat flux on wall when the boundary // condition is radiation equilibrium temperature, and 0.8 is the default value. -// refMolecularWeight : the reference molecular weight of gas used for perfect gas. The unit is g/mol. +// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. // Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. - -int directionMethod = 0; +int directionMethod = 0; double refMachNumber = 0.73; double attackd = 2.79; double angleSlide = 0.00; +int flowInitMethod = 0; int inflowParaType = 0; double refReNumber = 6.5e6; @@ -321,29 +332,27 @@ double freestream_vibration_temperature = 300.00; //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; - -//The velocity, temperature and density are fixed. +// The velocity, temperature and density are fixed. //int inflowParaType = 4; //double refDimensionalVelocity = 1000.0; -//double refDimensionalDensity = 1.0e3; +//double refDimensionalDensity = 1.0e3; -//The velocity, temperature and pressure are fixed. +// The velocity, temperature and pressure are fixed. //int inflowParaType = 5; //double refDimensionalVelocity = 1000.0; //double refDimensionalPressure = 1.0e5; -//The MachNumber, temperature and pressure are fixed. +// The MachNumber, temperature and pressure are fixed. //int inflowParaType = 6; -//double refDimensionalTemperature = 293; +//double refDimensionalTemperature = 293.0; //double refDimensionalPressure = 8886.06; +// The velocity, temperature and pressure are read from file. +//int inflowParaType = 7; +//string weatherDataFilePath = "./WRFData/"; +//double longitude = 110.95 +//double latitude = 19.61; + double wallTemperature = -1.0; double radiationCoef = 0.8; @@ -357,41 +366,41 @@ double forceReferenceArea = 1.0; // unit of meter^2. double TorqueRefX = 0.0; // unit of meter. double TorqueRefY = 0.0; // unit of meter. double TorqueRefZ = 0.0; // unit of meter. +double knudsenLength = 1.0; // unit of meter. double refMolecularWeight = 28.9644; // unit of g/mol. //----------------------------------------------------------------------- # Spatial Discretisation # //----------------------------------------------------------------------- -#******************************************************************* -# Struct Solver * -#******************************************************************* +#************************************************************************ +# 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". +// -- "vanleer", "steger", "hlle", "lax_f", +// -- "roe", "modified_roe", // -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". // isWennScheme: If using WENN Scheme of struct grid. -// 0 -- NO. (default) -// 1 -- Yes. +// 0 -- NO. (default) +// 1 -- Yes. // str_limiter_name: Limiter of struct grid. -// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth". -// -- "nolim", no limiter. -// -- "vanalbada_clz", clz supersonic version. -// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3" - +// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth", +// -- "nolim", no limiter, +// -- "vanalbada_clz", clz supersonic version, +// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3". string inviscidSchemeName = "roe"; int isWennScheme = 0; -string str_limiter_name = "vanalbada"; +string str_limiter_name = "vanalbada"; -#******************************************************************* -# UnStruct Solver or Common * -#******************************************************************* +#************************************************************************ +# UnStruct Solver or Common * +#************************************************************************ // viscousType: Viscous model. -// 0 -- Euler. -// 1 -- Lamilar. -// 2 -- Algebraic. -// 3 -- 1eq turbulent. -// 4 -- 2eq turbulent. +// 0 -- Euler. +// 1 -- Lamilar. +// 2 -- Algebraic. +// 3 -- 1eq turbulent. +// 4 -- 2eq turbulent. // viscousName: Laminar or tubulent model. // -- "0eq-bl". // -- "1eq-sa". @@ -410,16 +419,16 @@ string str_limiter_name = "vanalbada"; // 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". +// -- "vanleer", "roe", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle", // -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". // uns_limiter_name: Limiter of Unstruct grid. -// -- "barth", "vencat", "vanleer", "minmod". -// -- "vanalbada", "smooth", "nnd", "lpz", "1st". +// -- "barth", "vencat", "vanleer", "minmod", +// -- "vanalbada", "smooth", "nnd", "lpz", "1st", // -- "nolim", no limiter. // uns_vis_name: Discretisation method of viscous term. // -- "std", "test", "aver", "new1", "new2". // gradientName: Gradient reconstruction method. -// -- "default", "ggcell", "ggnode", "lsq". +// -- "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. @@ -442,18 +451,18 @@ string str_limiter_name = "vanalbada"; // 3 -- Harten type, which is default used. // roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. // It is used to scale the default Roe entropy fix coefficients. -// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0 +// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0. -//int viscousType = 0; +//int viscousType = 0; //string viscousName = "Euler"; -//int viscousType = 1; +//int viscousType = 1; //string viscousName = "laminar"; -int viscousType = 3; +int viscousType = 3; string viscousName = "1eq-sa"; -//int viscousType = 4; +//int viscousType = 4; //string viscousName = "2eq-kw-menter-sst"; int DESType = 0; @@ -463,7 +472,7 @@ string uns_limiter_name = "vencat"; string uns_vis_name = "test"; string gradientName = "ggnode"; -int ivencat = 7; +int ivencat = 7; double venkatCoeff = 5.0; int reconmeth = 1; int limitVariables = 0; @@ -475,9 +484,9 @@ double roeEntropyScale = 1.0; double AusmpwPlusLimiter = 1.0; -//----------------------------------------------------------------------- -# Temporal Discretisation # -//----------------------------------------------------------------------- +#************************************************************************ +# Temporal Discretisation * +#************************************************************************ // iunsteady: Steady or unsteady. // 0 -- steady. // 1 -- unsteay. @@ -490,51 +499,57 @@ double AusmpwPlusLimiter = 1.0; // statisticalTimePeriod: Used as time period of statistic analysis. // when the value is negative, time period is treated as infinite. // statisticMethod: Statistic reynolds stress method. -// 0 -- tau = - ^2 -// 1 -- tau = +// 0 -- tau = - ^2 +// 1 -- tau = // min_sub_iter: The min sub iteration of unsteady simulation. // max_sub_iter: The max sub iteration of unsteady simulation. // tol_sub_iter: The tolerance of sub iteration of unsteady simulation. // tscheme: Temporal Discretisation method. -// 1 -- Runge-Kutta Multi-State. -// 2 -- Point implicit. -// 3 -- Full implicit. -// 4 -- LU-SGS. -// 5 -- Block LU-SGS. -// 6 -- Jacobian iteration. -// 7 -- Line LU-SGS. -// 8 -- Matrix LU-SGS. +// 1 -- Runge-Kutta Multi-State. +// 2 -- Point implicit. +// 3 -- Full implicit. +// 4 -- LU-SGS. +// 5 -- Block LU-SGS. +// 6 -- Jacobian iteration. +// 7 -- Line LU-SGS. +// 8 -- Matrix LU-SGS. +// 9 -- GMRES. // 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. +// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration. +// OriginalTscheme : Used for LUSGS and GMres hybrid computing. +// useLUSGSprecond: Initialize flow field for GMRES. +// 0 --Initialize by first order Jacobian matrix. +// 1 --Initialize by LUSGS. +// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field. // 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. +// 0 --Local. +// 1 --Global. // isUseLocalCFL: use variable number of CFL or not. -// 0 -- global unified CFL number. -// 1 -- local CFL number. +// 0 -- global unified CFL number. +// 1 -- local CFL number. // isUsePreTwall: use the previous temperatures on wall. 1 indicates yes, and 0 indicates no. // visl_min: Minimum value of laminar viscosity coefficient. // turbCFLScale: Turbulence model cfl number factor. // codeOfAleModel: Arbitrary Lagrangian-Eulerian method. -// 0 -- no ALE method. -// 1 -- ALE method for non-moving grids. -// 2 -- ALE method for moving grids. -// 3 -- ALE method for deforming grids. +// 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. +// 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; +int iunsteady = 0; double physicalTimeStep = 0.01; double physicalTimeStepDimensional = -0.001; int ifStartFromSteadyResults = 0; @@ -543,39 +558,42 @@ int ifStaticsReynoldsStress = 0; int startStatisticStep = 800000; double statisticalTimePeriod = -1.0; int statisticMethod = 0; -int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2; +int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2. int methodOfDualTime = 3; int min_sub_iter = 50; int max_sub_iter = 50; double tol_sub_iter = 0.01; -int tscheme = 4; +int tscheme = 4; int iSimplifyViscousTerm = 1; int ifLocalTimeStep = 0; int isUseLocalCFL = 0; int isUsePreTwall = 0; -double CFLStart = 0.01; -double CFLEnd = 10.0; -int CFLVaryStep = 500; - +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; +double GMRESCFLScale = 1.0; +int OriginalTscheme = 9; +int useLUSGSprecond = 1; +int GMRESInitStep = 1000; double pMaxForCFL = 0.2; double pMinForCFL = 0.1; double deltaMaxForCFL = 0.2; double magnifyFactorForCFL = 1.1; double reduceFactorForCFL = 0.5; -double ktmax = 1.0e10; +double ktmax = 1.0e10; -int swapDq = 1; +int swapDq = 1; int nLUSGSSweeps = 1; double LUSGSTolerance = 0.01; -int order = 2; +int order = 2; double visl_min = 0.01; double turbCFLScale = 1.0; -double csrv = 2.0; +double csrv = 1.0; double timemax = 1.0e10; double dtsave = -1.0; int maxale = 10; @@ -591,10 +609,9 @@ double lamda[] = [0.5, 1.0]; //int RKStage = 4; //double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; - -//----------------------------------------------------------------------- -# File In or Out # -//----------------------------------------------------------------------- +#************************************************************************ +# 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. @@ -611,20 +628,18 @@ double lamda[] = [0.5, 1.0]; // 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. +// visualfile: The visualization file path of flowfield, write data for every default (intervalStepPlot) steps. // wall_aircoefile: The file path to save flowfield variables of wall, write data for every default steps. // nDumpSurfaceInfo = 0 the "wall_varfile" write the informations including heat flux. // nDumpSurfaceInfo = 1 the "wall_varfile" write the informations without heat flux. // nIsComputeWallDist: Whether to compute the wall distance. // 0 -- Compute wall distance. // 1 -- Not compute. -// -// protectionFile0 and protectionFile1 : Two continuation file of the data protection mechanism. -// wall_heatfluxfile : The file to output the MaxHeatFlux of wall. - -int numberOfGridGroups = 1; -string gridfile = "./grid/rae2822_hybrid2d__4.fts"; -string wallTemperaturefile= ""; +// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. +// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; +string wallTemperaturefile = ""; int nIsComputeWallDist = 0; int walldistMethod = 1; @@ -632,10 +647,12 @@ int cellMethodOrNodeMethod = 0; string resSaveFile = "results/res.dat"; string turbresfile = "results/turbres.dat"; +string transitionResFile = "results/transitionRes.dat"; string aircoeffile = "results/aircoef.dat"; string restartNSFile = "results/flow.dat"; string turbfile = "results/turb.dat"; +string transitionFile = "results/transition.dat"; string visualfile = "results/tecflow.plt"; string wall_aircoefile = "results/wall_aircoef.dat"; @@ -645,10 +662,14 @@ string protectionFile0 = "results/flow0.dat"; string protectionFile1 = "results/flow1.dat"; string wall_heatfluxfile = "results/wall_heatflux.dat"; -int nDumpSurfaceInfo = 0; -string wall_varfile = ""; +string protectionTurbFile0 = "results/turb0.dat"; +string protectionTurbFile1 = "results/turb1.dat"; -string jetDefineFile = "bin/jet.hypara"; +string protectionTransitionFile0 = "results/transition0.dat"; +string protectionTransitionFile1 = "results/transition1.dat"; + +int nDumpSurfaceInfo = 0; +string wall_varfile = ""; string sixDofFileName = "results/sixDofInfo.dat"; string derivativeFileName = "results/identify.dat"; @@ -659,7 +680,8 @@ int plotFieldType = 0; // visualfileType: The file type of visualfile. // 0 -- Tecplot binary. // 1 -- Tecplot ASCII. - +// 2 -- Ensight binary. +// 3 -- Ensight ASCII. int visualfileType = 1; // samplefileMode: The dump mode of sample file. @@ -697,21 +719,21 @@ double upperPlotFieldBox[] = [1.0 1.0 1.0]; // -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), // -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), // -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), -// -- transition intermittency(intermittency, 51), -transition momentum thickness reynolds(MomentumThicknessReynolds, 52), -// -- overlap iblank(iblank, 81) - -// -- specific heat ratio(gama, 56) +// -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52), +// -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58), +// -- overlap iblank(iblank, 81), +// -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62). // Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! // Variables order must from small to big. //-----------the optional parameters list for the wall boundary condition---------------- // nVisualWallVariables: The number of visual variables on wall. // visualWallVariables : dumped variable types, listed as following: -// -coefficient of pressure(cp, 0), -coefficient of friction(cf, 1), yplus(2), -non-dimensional heat flux(Q_NonDim, 3), -dimensional heat flux(Q_Dim, 4), -// -pressure on wall(pw, 5), -temperature on wall(Tw, 6), -density on wall(rhow, 7), -heat flux of translational-rotational temperature term(Qtr, 8), -// -heat flux of species diffusion term(Qs, 9), -heat flux of vibrational temperature term(Qv, 10), -heat flux of electron temperature term(Qe, 11), -// -species mass fractions(Ns, 12), -x component of wall velocity(Vx, 13), -y component of wall velocity(Vy, 14), -z component of wall velocity(Vz, 15) -// -slip translational-rotational temperature(Tts, 16), -slip vibrational temperature(Tvs, 17), -slip electron temperature(Tes, 18), -absolute wall velocity(Vs, 19) -// -Stanton number(St, 20), -coefficient of heat rate(Ch, 21), -temperature jump(deltaT, 22), -Grid Reynolds number on wall(Re_w, 23) +// -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4), +// -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8), +// -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11), +// -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15), +// -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19), +// -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24). int nVisualVariables = 8; int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; @@ -739,16 +761,18 @@ int dumpStandardModel = 0; // 1 -- Real cell where the probe is located. // nProbeVariables: Number of variables want to be dumped for probes monitered. // probeVariables : Variable types dumped, listed as following: -// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6). +// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6), +// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9), +// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12). // Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! // probeVariables order must from small to big. // probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. -// 0 -- Take the value of probe's cell as probe real value. -// 1 -- Interpolation from probe's and neighbouring cell to probe. -// 2 -- Interpolation from probe's cell nodes to probe. +// 0 -- Take the value of probe's cell as probe real value. +// 1 -- Interpolation from probe's and neighbouring cell to probe. +// 2 -- Interpolation from probe's cell nodes to probe. int ifSetDataMonitor = 0; -int dataMonitorType = 0; +int dataMonitorType = 0; string probesDefineFile = "bin/probes_XYZ.dat"; //int dataMonitorType = 1; @@ -761,28 +785,26 @@ string probesDefineFile = "bin/probes_XYZ.dat"; int searchCellsMethod = 0; -int nProbeVariables = 7; -int probeVariables[] = [0, 1, 2, 3, 4, 5, 6]; -int probeVariablesInterpolationMethod = 0; -//----------------------------------------------------------------------- -# Turbulence Parameter # -//----------------------------------------------------------------------- +int nProbeVariables = 14; +int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]; +int probeVariablesInterpolationMethod = 0; + +#************************************************************************ +# Turbulence Parameter * +#************************************************************************ // turbInterval: Iteration number of turbulence. // kindOfTurbSource: Kinds of turbulent source. // 0 -- Original. // mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. -// transitionType: transition model type +// transitionType: transition model type // 0 -- none. // 2 -- gama-re-theta. -// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition -// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not - - +// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition. +// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not. int turbInterval = 1; int turbOrderStruct = 2; int kindOfTurbSource = 0; int mod_turb_res = 0; -double turb_relax = 1.0; double freeStreamViscosity = 1.0e-3; double muoo = 3.0; double kwoo = 5.0; @@ -790,29 +812,28 @@ int transitionType = 0; double turbIntensity = -1.0; int freeturbIntensitySRModify = 0; double freeDecayXLocation = 0.0; -int compressibleCorrection = 0; -int prandtlNumberCorrection = 0; +int compressibleCorrection = 0; int transitionMaFix = 1; -# maximum eddy viscosity (myt/my) max. +// maximum eddy viscosity (myt/my) max. double eddyViscosityLimit = 1.0e10; int monitor_vistmax = 0; -//----------------------------------------------------------------------- -# LES Parameter # -//----------------------------------------------------------------------- +#************************************************************************ +# LES Parameter * +#************************************************************************ // iLES: Create LESSolver or not. -// = 1 - Create LESSolver; -// != 1 - not. +// = 1 -- Create LESSolver; +// != 1 -- not. // amplitudeofDisturb: Amplitude of adding disturb. // disturbstep: Unsteady time step or steady iteration of adding random disturb. // iterdisturb: Add random disturb in every sub-iter or only first sub-iter. -// = 0 - in only first sub-iter; -// != 0 - in every sub-iter. +// = 0 -- in only first sub-iter; +// != 0 -- in every sub-iter. // ipraddisturb: Add density and pressure disturb or not. // ibodyforce: Add body force in source flux of NS equations or not. -// = 0 - not; -// != 0 - Add body force. +// = 0 -- not; +// != 0 -- Add body force. // bodyforce: Body force in source flux of NS equations or not. // utau: friction velocity, using in DNSDisturb. // sgsmodel: subgrid scale model. @@ -820,23 +841,22 @@ int monitor_vistmax = 0; // = "dsmCom"; // = "wale"; // = "sigma". -// deltaFunctionType: = 1 - MAX(deltai, deltaj, deltak); -// = 2 - pow(deltai * deltaj *deltak, 1/3); -// = 3 - Devloped by Scotti. -// wallDampingFunctionType: = 0 - no wall function; -// = 1 - van Driest; -// = 2 - developed by Dr. Deng Xiaobing; -// = 3 - developed by Piomelli. +// 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. +// = 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. +// filterDirection [3]: filter variables in i, j, k direction or not. // averageDirection[3]: average variables in i, j, k direction or not. // isotropicConstant: constant of isotropic part of SGS stress. - int iLES = 0; string sgsmodel = "smagorinsky"; int deltaFunctionType = 2; @@ -852,19 +872,16 @@ double testFilterScale = 2.0; int averageWidth = 1; int monitorNegativeConstant = 0; -//----------------------------------------------------------------------- -# Other Parameters for Hypersonic Non-equilibrium Gas # -//----------------------------------------------------------------------- +#************************************************************************ +# Other Parameters for Hypersonic Non-equilibrium Gas * +#************************************************************************ // dg_high_order: // 0 -- generic order accuracy. // 1 -- high order accuracy. // iapplication: // 0 -- gas model is fixed in the codes. // 1 -- gas model is imported from library files. -// isAdaptiveSolver: isAdaptiveSolver=0 indicates the generic Navier-Stokes solver, -// isAdaptiveSolver>0 indicates the HyFlow self-adaptive solver. -// 1 -- using HyFlow self-adaptive solver where the switch is controlled by the total iteration steps. -// 2 -- using HyFlow self-adaptive solver where the switch is controlled by variation of the key residual. +// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, // nm: Equation number of the physics, but is out of commision now. // 4 -- for 2D. // 5 -- for 3D. @@ -875,7 +892,7 @@ int monitorNegativeConstant = 0; // 2 -- Argon. // 3 -- Nitrogen. // nEnergyRecycle: The type of EnergyModel Recycle. -// 0 -- not used . +// 0 -- not used. // 1 -- used. // nDensityModify: The type of densitymodify. // 0 -- not used. @@ -883,26 +900,25 @@ int monitorNegativeConstant = 0; // nchem: // 0 -- without chemical reaction flow. // 1 -- the chemical reaction flow is considered. -// nEquilibriumGas: the variable is valid when the condition of nchem=0 is satisfied. +// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. // 0 -- perfect gas. // 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. -// nPCWCycleStep: the maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. -// the value equals to or is greater than 1, and 3 is for default value. -// nRETCycleStep: the maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. -// the value equals to or is greater than 1, and 3 is for default value. -// nSLIPCycleStep:the maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. -// the value equals to or is greater than 1, and 3 is for default value. -// nSlipBCModel : The computational model of slip boundary conditions. - -// 0 -- no slip. -// 1 -- the conventional Maxwell slip conditions. -// 2 -- the Gokcen slip conditions. -// 3 -- the Knudsen-layer correction of the standard slip conditions proposed by Lockerby, et al. -// 4 -- the Kogan simplified slip conditions. -// nMeanFreePathType : the method to the mean free-path for the slip conditions. For the mixture, 0 is suggested. -// 0 -- the equivalent mean free-path is calculated by the simple hard sphere model(HS). -// 1 -- calculated by the definition that includes the variables of the number density and the molecule diameter. -// 2 -- the equivalent mean free-path is calculated by the variable hard sphere model(VHS). +// nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. +// The value equals to or is greater than 1, and 3 is for default value. +// nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. +// The value equals to or is greater than 1, and 3 is for default value. +// nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. +// The value equals to or is greater than 1, and 3 is for default value. +// nSlipBCModel: The computational model of slip boundary conditions. +// 0 -- no slip. +// 1 -- the conventional Maxwell slip conditions. +// 2 -- the Gokcen slip conditions. +// 3 -- the Knudsen-layer correction of the standard slip conditions proposed by Lockerby, et al. +// 4 -- the Kogan simplified slip conditions. +// nMeanFreePathType: the method to the mean free-path for the slip conditions. For the mixture, 0 is suggested. +// 0 -- the equivalent mean free-path is calculated by the simple hard sphere model(HS). +// 1 -- calculated by the definition that includes the variables of the number density and the molecule diameter. +// 2 -- the equivalent mean free-path is calculated by the variable hard sphere model(VHS). // nchemsrc: // 0 -- the source terms are not computed. // 1 -- the source terms are computed. @@ -913,148 +929,151 @@ int monitorNegativeConstant = 0; // 1 -- One-temperature model. // 2 -- Two-temperature model. // 3 -- Three-temperature model. +// isUseNoneqCond: +// 0 -- compute the source terms without any conditions. +// 1 -- compute the source terms using the non-equilibrium condition. +// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value. // nIdealState: whether take all gas species as ideal gas for gas-mixture process. // 0 -- No. -// 1 -- Yes. -// nTEnergyModel: the method to computing temperature energy model. +// 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model. // 0 -- the energy term is computed using the conventional method. // 1 -- the energy term is computed using the polynomial fitting method. // 2 -- the energy term is computed using the piecewise polynomial fitting method. // parkVDPower: the power of translational-rotational temperature in the Park V-D(vibration-dissociation) coupling model. // The value is in range of [0.0, 1.0], DPLR suggests 0.5, LAURA suggests 0.7, while 0.6 is given as default value. // catalyticCoef: -// 0.0 -- full non-catalytic wall boundary condition. -// 1.0 -- full catalytic wall boundary condition. -// in range of (0.0, 1.0) -- partial catalytic condition, the value indicates the catalytic coefficient. -// nIsSuperCatalytic : the super catalytic condition for the fully catalytic wall, and assigned with the value of 1. -// 0 -- equilibrium condition for the fully catalytic wall where the mass fractions are assigned with the values of the free stream. -// 1 -- super catalytic condition for the fully catalytic wall where all the atomic components combine into molecular components. -// nTemperatureJump : the method to calculate the temperature jump. -// 0 -- calculated by the variables of heat conductivity and constant volume specific heat for each energy mode. -// 1 -- the general method where the iteration is calculated with the translation-rotation temperature. -// nSurfGradMethod : the method to compute the surface heating ratio. -// 0 -- the gradient of variable is computed with the first-order difference method. -// 1 -- the gradient of variable is computed with the Green-Guass integral method. -// nRapidFlowfield : initialize the flowfield using the rapid engineering method when it is greater than zero. -// nSurfHeatMonitor : To exam the surface heating change or not. 0 is no, 1 is yes. -// nInitPressureStep : the steps to initialize the boundary variables when the rapid method is used. 100 is the default value. -// nDumpCFLNumber : 1 indicates dumping the CFL number to file, 0 denotes no dumping. +// 0.0 -- full non-catalytic wall boundary condition. +// 1.0 -- full catalytic wall boundary condition. +// in range of (0.0, 1.0) -- partial catalytic condition, the value indicates the catalytic coefficient. +// nIsSuperCatalytic: the super catalytic condition for the fully catalytic wall, and assigned with the value of 1. +// 0 -- equilibrium condition for the fully catalytic wall where the mass fractions are assigned with the values of the free stream. +// 1 -- super catalytic condition for the fully catalytic wall where all the atomic components combine into molecular components. +// nTemperatureJump: the method to calculate the temperature jump. +// 0 -- calculated by the variables of heat conductivity and constant volume specific heat for each energy mode. +// 1 -- the general method where the iteration is calculated with the translation-rotation temperature. +// nSurfGradMethod: the method to compute the surface heating ratio. +// 0 -- the gradient of variable is computed with the first-order difference method. +// 1 -- the gradient of variable is computed with the Green-Guass integral method. +// nRapidFlowfield: initialize the flowfield using the rapid engineering method when it is greater than zero. +// nSurfHeatMonitor: To exam the surface heating change or not. 0 is no, 1 is yes. +// nInitPressureStep: the steps to initialize the boundary variables when the rapid method is used. 100 is the default value. +// nDumpCFLNumber: 1 indicates dumping the CFL number to file, 0 denotes no dumping. // sigmaVelocity: the coordination coefficient of tangential momentum for computation of slip velocity. The value is in range of (0.0, 2.0]. // sigmaTemperature: the heat coordination coefficient for computation of slip temperature. The value is in range of (0.0, 2.0]. // sigmaMassFraction: the species coordination coefficient for computation of slip mass fractions. The value is in range of (0.0, 2.0]. // velocitySlipCorrectConstant: the correction constant to the velocity slip condition. For the diffuse reflection, 1.0 is used. -// 1.0 -- proposed by Maxwell. -// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. -// 1.146 -- proposed for an additional "fictitious" velocity slip. - -// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. -// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. -// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. -// nIsChemicalFreeze : the flag to freeze the chemical reactions. -// 0 -- not freeze, the chemical reaction sources will be calculated. -// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated.// veTemperatureMin: The minimum of Tv and Te - -//maxViscous: the maximum of Viscous. -//trTemperatureMin: the minimum value of trTemperature. -//veTemperatureMin: the minimum value of veTemperature. -//densityMin: the minimum value of density. -//tAdjustmentFactor: magnification of temperature, this value is in range of (1.0, 10.0]. -// nDebug: cout the Wrong place and abort -// 0 -- not used. -// 1 -- used. +// 1.0 -- proposed by Maxwell. +// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. +// 1.146 -- proposed for an additional "fictitious" velocity slip. +// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. +// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. +// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. +// nIsChemicalFreeze: the flag to freeze the chemical reactions. +// 0 -- not freeze, the chemical reaction sources will be calculated. +// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated. +// veTemperatureMin: The minimum of Tv and Te. +// maxViscous: the maximum of Viscous. +// trTemperatureMin: the minimum value of trTemperature. +// veTemperatureMin: the minimum value of veTemperature. +// densityMin: the minimum value of density. +// tAdjustmentFactor: magnification of temperature, this value is in range of (1.0, 10.0]. +// nDebug: cout the Wrong place and abort +// 0 -- not used. +// 1 -- used. // nSpeciesLimit: limitter of gas species -// 0 -- not used. -// 1 -- used. -// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction -// 0 -- method 0. -// 1 -- method 1. -// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid -// 0 -- not used. -// 1 -- used. -// nViscosityPeModified: Pe Modified for ViscosityCoef -// 0 -- not used. -// 1 -- used. -// nChemcalSourceModified: Modified on ChemcalSource -// 0 -- not used. -// 1 -- used. -// nChemcalSourceEsMethod: Modified on ChemcalSource -// 0 -- approximation algorithm 1 (Ori.) -// 1 -- approximation algorithm 2 (New) - +// 0 -- not used. +// 1 -- used. +// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction. +// 0 -- method 0. +// 1 -- method 1. +// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid. +// 0 -- not used. +// 1 -- used. +// nViscosityPeModified: Pe Modified for ViscosityCoef. +// 0 -- not used. +// 1 -- used. +// nChemcalSourceModified: Modified on ChemcalSource. +// 0 -- not used. +// 1 -- used. +// nChemcalSourceEsMethod: Modified on ChemcalSource. +// 0 -- approximation algorithm 1 (Ori). +// 1 -- approximation algorithm 2 (New). // nMaxStepTemperature: the iterative steps of temperature. - -// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs -// 0 -- not used -// 1 -- used - -// nDiagonalModified: Modified on Diagonal -// 0 -- not used -// 1 -- Ori. -// 2 -- new - -//nGradPrimtiveMethod: -// 0 -- Ori. -// 1 -- new +// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs. +// 0 -- not used. +// 1 -- used. +// nDiagonalModified: Modified on Diagonal. +// 0 -- not used. +// 1 -- new. +// nDiagonalModifiedTurb: Modified on Diagonal for turbulence. +// 0 -- not used. +// 1 -- new. +// nGradPrimtiveMethod: +// 0 -- Ori. +// 1 -- new. // nAblation: -// 0 -- The wall ablation is not computed. -// 1 -- The wall ablation is computed. +// 0 -- The wall ablation is not computed. +// 1 -- The wall ablation is computed. // isInjection: -// 0 -- The injection velocity of ablation wall is not computed. -// 1 -- The injection velocity of ablation wall is computed. +// 0 -- The injection velocity of ablation wall is not computed. +// 1 -- The injection velocity of ablation wall is computed. // nViscosityModel: -// 0 -- Blottner fitting method(N89). -// 1 -- Gupta fitting method(N90). +// 0 -- Blottner fitting method(N89). +// 1 -- Gupta fitting method(N90). // nContinueModel: The new continue model can switch different computation model. -// 0 -- Not use the new continue model. -// 1 -- use the new continue model. +// 0 -- Not use the new continue model. +// 1 -- use the new continue model. // nSutherland: -// 0 -- stands for selecting the Blotter curve fits mode. -// 1 -- stands for Sutherland relation. +// 0 -- stands for selecting the Blotter curve fits mode. +// 1 -- stands for Sutherland relation. // gasfile: Indicates the gas model, 9 models are provided, namely "Gu5", "Gu7", "Gu11", "Pa5", "Pa7", "Pa11", "DK5", "DK7", "DK11". -// "Gu" -- indicates the Gupta Model, three-Type Models are embeded in the library, namely, the 5-species-6-reactions, the 7-species-9-reactions, the 11-species-20-reactions. -// "Pa" -- indicates the Park Model, three-Type Models are embeded in the library, namely, the 5-species-17-reactions, the 7-species-22-reactions, the 11-species-48-reactions. -// "DK" -- indicates the Dunn-Kang Model, three-Type Models are embeded in the library, namely, the 5-species-11-reactions, the 7-species-15-reactions, the 11-species-26-reactions. -// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. -// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. -// "Gas-Mixture" -- indicates the process of mixing gas without reacting. -// for struct solver mixing two speciesSpeciesA, SpeciesB. -// for unstruct solver mixing multi-speciesO2 NO CO CO2 H2 N2 Air CH4. -// For self-definition model, the gasfile is used to indicate the file path of the new gas model. +// "Gu" -- indicates the Gupta Model, three-Type Models are embeded in the library, namely, the 5-species-6-reactions, the 7-species-9-reactions, the 11-species-20-reactions. +// "Pa" -- indicates the Park Model, three-Type Models are embeded in the library, namely, the 5-species-17-reactions, the 7-species-22-reactions, the 11-species-48-reactions. +// "DK" -- indicates the Dunn-Kang Model, three-Type Models are embeded in the library, namely, the 5-species-11-reactions, the 7-species-15-reactions, the 11-species-26-reactions. +// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. +// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. +// "Gas-Mixture" -- indicates the process of mixing gas without reacting. +// for struct solver mixing two species��SpeciesA, SpeciesB��. +// for unstruct solver mixing multi-species��O2 NO CO CO2 H2 N2 Air CH4��. +// For self-definition model, the gasfile is used to indicate the file path of the new gas model. // speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. // initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. // ifStartFromPerfectGasResults: The chemical reaction simulation is start from perfect gas flowfield or not, 0 is for no and else is for yes. -// nIterFirstStep : the maximum number of iteration in the first step for the self-adaptive calculation. -// nIterSecondStep : the maximum number of iteration in the second step for the self-adaptive calculation. -// nIterThirdStep : the maximum number of iteration in the third step for the self-adaptive calculation. -// nEnergyAssembly : the vibration energy is computed with combined method which includes the fitting method and the molecular kinetic theory. -// 0 -- no, -// 1 -- yes. +// nIterFirstStep : the maximum number of iteration in the first step for the self-adaptive calculation. +// nIterSecondStep: the maximum number of iteration in the second step for the self-adaptive calculation. +// nIterThirdStep : the maximum number of iteration in the third step for the self-adaptive calculation. +// nEnergyAssembly: the vibration energy is computed with combined method which includes the fitting method and the molecular kinetic theory. +// 0 -- no, +// 1 -- yes. // nControlVariable: the variable to computing the residual error that determines the convergence is meet or not in the one-temperature model. -// 0 -- the density. -// 1 -- the translation temperature. -// 2 -- the vibration temperature. -// 3 -- the electron temperature. -// 4 -- the pressure. -// 5 -- the mass fraction of oxygen. -// 6 -- the mass fraction of nitrogen. +// 0 -- the density. +// 1 -- the translation temperature. +// 2 -- the vibration temperature. +// 3 -- the electron temperature. +// 4 -- the pressure. +// 5 -- the mass fraction of oxygen. +// 6 -- the mass fraction of nitrogen. // firstStepError : the residual error of the first step iteration for the self-adaptive calculation. // secondStepError : the residual error of the second step iteration for the self-adaptive calculation. // thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. -// useHyflowSetting : Setting for HyFLOW GUI. -// 0 -- PHengLEI -// 1 -- HyFLOW -// nProtectData : Use the continuation file data protection mechanism. -// 0 -- no -// 1 -- yes - +// nProtectData: Use the continuation file data protection mechanism. +// 0 -- no. +// 1 -- yes. +// nTvChange: Judge whether the Tv equals Ttr. +// 0 -- yes. +// 1 -- no. +// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions. +// nFraction: the initial fractions type of species. +// 0 -- mass fraction. +// 1 -- mole fraction. int dg_high_order = 0; int iapplication = 0; int isAdaptiveSolver = 0; -int nm = 5; +int nm = 5; int nEquilibriumGas = 0; -int nPCWCycleStep = 3; -int nRETCycleStep = 3; -int nSLIPCycleStep= 3; +int nPCWCycleStep = 3; +int nRETCycleStep = 3; +int nSLIPCycleStep = 3; int nIterFirstStep = 1000; int nIterSecondStep= 2000; int nIterThirdStep = 2000; @@ -1065,17 +1084,17 @@ double secondStepError = 0.001; double thirdStepError = 0.001; double predictCFLError = 0.1; -double refGama = 1.4; -double prl = 0.72; -double prt = 0.90; -double sc_l = 0.5; -double sc_t = 0.5; +double refGama = 1.4; +double prl = 0.72; +double prt = 0.90; +double sc_l = 0.5; +double sc_t = 0.5; -int nGasModel = 0; -int nchem = 0; -int nchemsrc = 1; -int nchemrad = 1; -int ntmodel = 1; +int nGasModel = 0; +int nchem = 0; +int nchemsrc = 1; +int nchemrad = 1; +int ntmodel = 1; int nIdealState = 0; int nEnergyRecycle = 1; @@ -1099,12 +1118,12 @@ double sigmaTemperature = 1.0; double sigmaMassFraction = 1.0; double velocitySlipCorrectConstant = 1.0; -double chemicalRelaxCorf = 1.0; +double chemicalRelaxCorf = 1.0; double chemicalSpectrumRadiusCoef = 1.0; double viscousSpectrumRadiusCoef = 1.5; double inviscidSpectrumRadiusCoef = 1.5; -double spectrumRadiusCoef = 0.5; -double staticPressureRelaxCorf = 0.2; +double spectrumRadiusCoef = 0.5; +double staticPressureRelaxCorf = 0.2; double maxViscous = 10000.0; double trTemperatureMin = 10.0; @@ -1114,31 +1133,35 @@ double densityMin = 1.0e-8; double densityMinFactor = 0.1; double tAdjustmentFactor = 10.0; double iniSpeedCoef = 1.0; +int iniSpeedMode = 0; -int nDebug = 0; -int nSpeciesLimit = 1; -int nTurblenceForChemical = 0; -int nViscosityFluxSublevelModified = 1; -int nViscosityPeModified = 0; -int nChemcalSourceModified = 2; -int nChemcalSourceEsMethod = 1; -int nMaxStepTemperature = 5; -int veTemperatureMinModified = 1; -int nDiagonalModified = 0; -int nGradPrimtiveMethod = 1; -int nInviscidFluxModify = 1; -int nQlLimitMethod = 2; -int nSpeciesForWallMethod = 1; -int nDensityForWallMethod = 0; +int nDebug = 0; +int nSpeciesLimit = 1; +int nTurblenceForChemical = 0; +int nViscosityFluxSublevelModified = 1; +int nViscosityPeModified = 0; +int nChemcalSourceModified = 2; +int nChemcalSourceEsMethod = 1; +int nMaxStepTemperature = 5; +int veTemperatureMinModified = 1; +int nDiagonalModified = 0; +int nDiagonalModifiedTurb = 0; +int nGradPrimtiveMethod = 1; +int nInviscidFluxModify = 1; +int nQlLimitMethod = 2; +int nSpeciesForWallMethod = 1; +int nDensityForWallMethod = 0; +int wallMultiTemperature = 0; -int nProtectData = 0; -int useHyflowSetting = 0; -int nAblation = 0; -int isInjection = 0; -int nViscosityModel = 0; -int nMarsModel = 0; -string gasfile = "DK5"; -//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +int nProtectData = 0; +int nAblation = 0; +int isInjection = 0; +int nViscosityModel = 0; +int nMarsModel = 0; +int nTvChange = 0; +int isMoleFractionType = 0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; string speciesName = "O, O2, NO, N, N2"; string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.767"; @@ -1152,16 +1175,16 @@ string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.767"; //string speciesName = "O, O2, NO, N, N2, C, CO, CO2"; //string initMassFraction = "0.0015, 0.0429, 0.0, 0.0, 0.0, 0.0, 0.0777, 0.8779"; -//string gasfile = "Pa"; +//string gasfile = "Pa"; //string speciesName = "O, O2, NO, N, NO+, C, C2, CO, CO2, CN, N2, e-"; //string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767, 0.0"; -//string gasfile = "Combustion-12"; +//string gasfile = "Combustion-12"; //string speciesName = "O, O2, NO, N, C, CO, CO2, H, H2, OH, H2O, N2"; //string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767"; //string gasfile = "Gas-Mixture"; -//string speciesName ="SpeciesA, SpeciesB"; +//string speciesName = "SpeciesA, SpeciesB"; //string initMassFraction = "1.0, 0.0"; int nSutherland = 0; double gamaSpeciesA = 1.4; @@ -1173,9 +1196,17 @@ double molecularWeightSpeciesB = 30.0; //string speciesName = "O2, N2"; //string initMassFraction = "1.0, 0.0"; +int nFraction = 0; int nContinueModel = 0; int nChemicalFlowStep = 0; int ifStartFromPerfectGasResults = 0; +int isUseNoneqCond = 0; +double frozenCondition = 0.01; + +int nLeakageMonitor = 0; +double totalLeakageVolume = 1000.0; +double monitorThresholdValue = 0.05; +double sprayFactor = 0.0; ######################################################################### // Multi-Grid parameters. @@ -1196,7 +1227,6 @@ int ifStartFromPerfectGasResults = 0; // 1 -- zero order. // 2 -- first-order. (default) // mgCorrectionLimit: Multi-grid correction limit. - int nMGLevel = 1; int MGCoarsestIteration = 1; int MGPreIteration = 1; @@ -1218,20 +1248,20 @@ 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"; +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 # -######################################################################### +#************************************************************************ +# High Order Struct Solver * +#************************************************************************ // isFVMOrFDM: -// 0 -- NSSolverStruct using Finite Volume Method. -// 1 -- NSSolverStruct using Finite Differ Method. +// 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) @@ -1273,30 +1303,48 @@ int allReduceStep = 1; // codeOfOversetGrid: Overlapping(overset) grid or not. // 0 -- NON-overlapping grid. // 1 -- Overlapping grid. -// oversetInterpolationMethod: the method of overset interpolation while field simulation +// oversetInterpolationMethod: the method of overset interpolation while field simulation. // 0 -- set the acceptor cell value by donor cell value. // 1 -- set the acceptor cell value by distance weight of donor cell value. - -int codeOfOversetGrid = 0; -int oversetInterpolationMethod = 0; -int readOversetFileOrNot = 0; -int symetryOrNot = 0; -int readInAuxiliaryInnerGrid = 0; -int readInAuxiliaryOuterGrid = 0; -int readInSklFileOrNot = 0; -string auxiliaryInnerGrid0 = "./grid/aux-upper.fts"; -string auxiliaryInnerGrid1 = "./grid/aux-lower.fts"; -string auxiliaryInnerGrid2 = ""; -string oversetGridFileName = "./grid/iblank.ovs"; -double walldistMainZone = 1.0 -double toleranceForOversetSearch = 1.0e-3; -double toleranceForOversetBox = 1.0e-3; -int twoOrderInterpolationOrNot = 0; -int keyEnlargeOfActiveNodes = 0; -int outTecplotOverset = 0; -int outPutOversetVisualization = 0; - -int numberOfMovingBodies = 2; +// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated. +// 0 -- no. +// 1 -- yes. +// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in +// the current overset grid(only for three dimension). +// 0 -- no. +// 1 -- yes. +// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid. +// 0 -- no. +// 1 -- yes. +// walldistMainZone: The initial value of background grid which does not exist wall boundary condition. +// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell. +// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region. +// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary. +// 0 -- one layer. +// 1 -- two layers. +// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region. +// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure. +// 0 -- no. +// 1 -- yes. +int codeOfOversetGrid = 0; +int oversetInterpolationMethod = 0; +int readOversetFileOrNot = 0; +int symetryOrNot = 0; +int readInAuxiliaryInnerGrid = 0; +int readInAuxiliaryOuterGrid = 0; +int readInSklFileOrNot = 0; +string auxiliaryInnerGrid0 = "./grid/aux-upper.fts"; +string auxiliaryInnerGrid1 = "./grid/aux-lower.fts"; +string auxiliaryInnerGrid2 = ""; +string oversetGridFileName = "./grid/iblank.ovs"; +double walldistMainZone = 1.0 +double toleranceForOversetSearch = 1.0e-3; +double toleranceForOversetBox = 1.0e-3; +int twoOrderInterpolationOrNot = 0; +int keyEnlargeOfActiveNodes = 0; +int outTecplotOverset = 0; +int outPutOversetVisualization = 0; +int numberOfMovingBodies = 2; // ----------------- ALE configuration ------------------------------ int codeOfAleModel = 0; @@ -1306,36 +1354,42 @@ double referenceLength = 1.0; double referenceVelocity = 1.0; double referenceDensity = 1.0; -int strategyForFaceNormalVelocity = 0; //0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd; -int strategyForGCLSource = 0; //0-present; 1-Ahn; +int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd. +int strategyForGCLSource = 0; // 0-present; 1-Ahn. -//0:1st-Admas-Bashforth; 1:2nd-Admas-Bashforth; 2:1st-Implicit-Euler; 3:2nd-Implicit Euler; 4:2nd-Adams-Moulton; 5:3rd-Adams-Moulton +// 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton. int methodForKineticEquation = 0; double relaxParameterOfKinetic = 1.0; -######################################################################### -# motive information # -######################################################################### +#************************************************************************ +# motive information * +#************************************************************************ int numberOfMovingBodies = 1; ############################## body0 ############################## -//mass of parts -double mass_0 = 1.0; -//mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz -double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; -//initial six DOF position information of parts. xc yc zc -double massCenter_0[] = 0.0 , 0.0, 0.0; -//initial six DOF position information of parts. angleX angleY angleZ -double attitudeAngle_0[] = 0.0 , 0.0, 0.0; -//initial six DOF move information of parts. vc vy vz -double massCenterVelocity_0[] = 0.0, 0.0, 0.0; -//initial six DOF move information of parts. omigX omigY omigZ -double angularVelocity_0[] = 0.0, 0.0, 0.0; -//the object that the parts belong to. -int fartherIndex_0 = -1; -//the assembly position of the parts. xc yc zc angleX angleY angleZ -double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0 ,0.0; -//the move pattern of the parts. +// mass of parts. +double mass_0 = 1.0; +// gravity of parts (along negative direction in Y-axis, eg. 9.8). +double gravity_0 = 0.0; +// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz. +double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; +// initial six DOF position information of parts. xc yc zc. +double massCenter_0[] = 0.0, 0.0, 0.0; +// if reset mass center while restart. +int resetMassCenter_0 = 0; +// position offset of parts. dx dy dz. +double massCenterDxyz_0[] = 0.0, 0.0, 0.0; +// initial six DOF position information of parts. angleX angleY angleZ. +double attitudeAngle_0[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. vc vy vz. +double massCenterVelocity_0[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. omigX omigY omigZ. +double angularVelocity_0[] = 0.0, 0.0, 0.0; +// the object that the parts belong to. +int fartherIndex_0 = -1; +// the assembly position of the parts. xc yc zc angleX angleY angleZ. +double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; +// the move pattern of the parts. // -1 given motion partten. // 0 still. // 1 six DOF motion. @@ -1346,51 +1400,68 @@ double configPamameter_0[] = 0.0 ,0.0 ,0.0 ,0.0 ,0.0 // 14 forced pitch motion. // 15 forced yaw motion. // 16 forced roll motion. -int RBDMethod_0 = 0; -double amplitude_0 = 0.0; -double reduceFrequency_0 = 0.0; -//direction of rotation +int RBDMethod_0 = 0; +double amplitude_0 = 0.0; +double reduceFrequency_0 = 0.0; +// direction of rotation. // 1 -- clockwise from the point of view along the positive x axis. // -1 -- anticlockwise from the point of view along the positive x axis. -int direction_0 = -1; -double rotateFrequency_0 = 0.0; -//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; -//additional force (system axis) fX fY fZ -double addedForce_0[] = 0.0 ,0.0 ,0.0 ; -//additional moment of Force (system axis) mX mY mZ -double addedMoment_0[] = 0.0 ,0.0 ,0.0 ; -//the deformation method of the parts. -int morphing_0 = 0; - -// post indentify -int integralOrder = 4; +int direction_0 = -1; +double rotateFrequency_0 = 0.0; +//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; +// dimensional physical time for additional force(s). +double addedForceTime_0[] = 0.0; +// additional force(inertia system) fX fY fZ. +double addedForce_0[] = 0.0, 0.0, 0.0; +// additional moment(inertia system) mX mY mZ. +double addedMoment_0[] = 0.0, 0.0, 0.0; +// the deformation method of the parts. +int morphing_0 = 0; +// post indentify. +int integralOrder = 4; // ---------------- ATP read -------------------------------------------- -//@int inflowParaType = 0; +//@int inflowParaType = 0; //@double refReNumber = 6.5e6; //@double refDimensionalTemperature = 288.15; //@double freestream_vibration_temperature = 300.00; -//@double refDimensionalPressure = 0; -//@double height = 0; -//@int nsubsonicInlet = 0; -//@int nsubsonicOutlet = 0; -//@string inLetFileName = "./bin/subsonicInlet.hypara"; -//@string outLetFileName = "./bin/subsonicOutlet.hypara"; +//@double refDimensionalPressure = 0; +//@double height = 0; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; //@double refDimensionalVelocity = 0; //@double refDimensionalDensity = 0; - -######################################################################### -# Old Parameter # -######################################################################### +//@string weatherDataFilePath = "./WRFData/"; +//@double longitude = 110.95 +//@double latitude = 19.61; +#************************************************************************ +# Old Parameter * +#************************************************************************ int isPlotVolumeField = 0; +#************************************************************************ +# partial flow field setting Parameter * +#************************************************************************ +//int nPartialParameter = 0; // 0/1/2 +//int nNumberOfPartialField = 0; // +//int nStartGridIndex[] = [0]; +//int nEndGridIndex[] = [0]; -######################################################################### -# Incompressible Parameter # -######################################################################### +//double partialCFL[] = [0.0]; +//double partialSpeedCoef[] = [0.0]; +//double partialSpeed[] = [0.0]; +//double partialAttackd[] = [0.0]; +//double partialSlide[] = [0.0]; +//double partialPressure[] = [0.0]; +//double partialTemperature[] = [0.0]; +//double partialMassFractions[] = [0.0]; +#************************************************************************ +# Incompressible Parameter * +#************************************************************************ int isSolveEnergyEquation = 0; int isSolveTurbEquation = 0; -int isSolveSpeciesEquation = 0; - +int isSolveSpeciesEquation = 0; \ No newline at end of file diff --git a/L04_ThreeD_Spoiler_BGK_MPI_8CPU/bin/input.txt b/L04_ThreeD_Spoiler_BGK_MPI_8CPU/bin/input.txt new file mode 100644 index 0000000..b6ed269 --- /dev/null +++ b/L04_ThreeD_Spoiler_BGK_MPI_8CPU/bin/input.txt @@ -0,0 +1,35 @@ +0 !MRT set 1, BGK set 0 +0 continue.plt !CONTI, resume :1 , new 0 //follows input datafile name //use ASCII文件 continue.plt +0 !LES yes: 1 , no: 0 +1 mesh_3d.dat !GEO read complex geo? yes:1, no:0 //follows input datafile name +0 ! MB multiblock LBM? yes:1, no:0 +0 2e-3 !CONV using converge criterion? yes:1, no:0 +100 !NX +300 ! NY +100 ! NZ +1 ! NX2 +1 ! NY2 +1 ! NZ2 +0 ! LowX +0 ! LowY +0 ! LowZ +2 ! x_np +2 ! y_np +2 ! z_np +400 ! framerate +2000 !total steps to terminate +1.0 ! density +0.56 ! tau +(0.0,0.0,0.0) ! Volumetric force +D3Q19 ! velocity set +3Dspoiler ! boundary condition +! note: in the following, boundary types: periodic,velocity, pressure +! are allowed. if "velocity" is applied, please strictly follow the format "velocity (%lf, %lf, %lf)". +velocity (0.00, 0.1, 0.0) !xmin face +velocity (0.00, 0.1, 0.0) !xmax face +velocity (0.00, 0.1, 0.0) !ymin face +pressure 1.0 !ymax face, +velocity (0.00, 0.1, 0.0) !zmin face +velocity (0.00, 0.1, 0.0) !zmax face +-------------------! initial velocity field +(0.0, 0.1, 0.0) \ No newline at end of file diff --git a/L04_ThreeD_Spoiler_BGK_MPI_8CPU/bin/key.hypara b/L04_ThreeD_Spoiler_BGK_MPI_8CPU/bin/key.hypara new file mode 100644 index 0000000..1a572c7 --- /dev/null +++ b/L04_ThreeD_Spoiler_BGK_MPI_8CPU/bin/key.hypara @@ -0,0 +1,55 @@ +string title = "PHengLEI Main Parameter Control File"; + +// IMPORTANT NOTICE: DON NOT MODIFY THE FOWLLOWING LINE. +string defaultParaFile = "./bin/cfd_para.hypara"; + +// ndim: Dimensional of the grid, 2 or 3. +// nparafile: the number of parameter files. +// nsimutask: simulation task type. +// 0 -- CFD Solver of NS or Turbulation. +// 1 -- Grid generation: for special typical cases, such as cylinder, flat plate, etc. +// Grid conversion: from other format to PHengLEI format (.fts). +// Grid reconstruction: such as grid adaptation. +// Grid merging: merge two blocks into one block. +// Grid repairing: repair the original grid in order to remove the negative volume cells. +// 2 -- Wall distance computation for turb-solver. +// 3 -- Grid partition. +int ndim = 3; +int nparafile = 1; + +//int nsimutask = 0; +//string parafilename = "./bin/cfd_para_subsonic.hypara"; +//string parafilename = "./bin/cfd_para_transonic.hypara"; +//string parafilename = "./bin/cfd_para_supersonic.hypara"; +//string parafilename = "./bin/cfd_para_hypersonic.hypara"; +//string parafilename = "./bin/cfd_para_incompressible.hypara"; + +//int nsimutask = 1; +//string parafilename = "./bin/grid_para.hypara"; + +//int nsimutask = 2; +//string parafilename = "./bin/cfd_para.hypara"; + +//int nsimutask = 3; +//string parafilename = "./bin/partition.hypara"; + +//int nsimutask = 1; +//string parafilename = "./bin/grid_deform_para.hypara"; + +//int nsimutask = 1; +//string parafilename = "./bin/grid_refine_para.hypara"; + +int nsimutask = 13; +string parafilename = "./bin/cfd_para.hypara"; + +//int nsimutask = 14; +//string parafilename = "./bin/integrative_solver.hypara"; + +//int nsimutask = 99; +//string parafilename = "./bin/post_processing.hypara"; + +// ---------------- Advanced Parameters, DO NOT care it ---------------- +int numberOfGridProcessor = 0; +// ATP read +//@string parafilename1 = "" +//@string parafilename2 = ""; diff --git a/L04_ThreeD_Spoiler_BGK_MPI_8CPU/mesh_3d.dat b/L04_ThreeD_Spoiler_BGK_MPI_8CPU/mesh_3d.dat new file mode 100644 index 0000000..d1ce06f --- /dev/null +++ b/L04_ThreeD_Spoiler_BGK_MPI_8CPU/mesh_3d.dat @@ -0,0 +1,1937 @@ + TITLE = "3D FE-SURFACE ZONES" + VARIABLES = "X", "Y", "Z" +ZONE T="TRIANGLES", N= 646 ,E= 1288, DATAPACKING=POINT, ZONETYPE=FETRIANGLE + 46.173165675999996 50.000000000000000 40.761204675000002 + 46.232179848000001 51.510759295000000 40.861010030999999 + 44.932443067999998 50.710878776000001 41.408462413000002 + 48.251382738000004 50.150051954999995 59.844786542999998 + 47.146359803999999 51.867895842999999 59.400409711999998 + 45.041987949000003 52.249442897000002 41.612025086000003 + 46.385309511999999 53.022693801000003 41.179720250000003 + 47.621705492000004 52.249116819999998 40.550915982999996 + 47.528806834000001 50.717467016000001 40.336747678999998 + 44.942039102000003 49.162758787000001 41.414194346999999 + 46.243516908000004 48.390864151000002 40.873143114999998 + 47.530868276000000 49.179877235999996 40.344390895000004 + 48.912146120999999 51.453944105000005 40.166250945000002 + 48.872004980000000 49.921942833999999 40.064128910000001 + 43.836236573000001 51.447597971999997 42.259684727000000 + 43.786089756999999 49.895405232000002 42.165692153999998 + 45.268188721000001 53.745803288000005 42.026360947000001 + 44.006812721000003 52.965755353999995 42.564544302999998 + 47.802943772999996 53.734695966000004 40.987509224999997 + 46.643240734000003 54.467160972999999 41.706831723000001 + 49.050218567999998 52.954220085000003 40.493660067000000 + 44.293378269999998 54.405286739000005 43.069782314000001 + 45.582099483999997 55.148070955000001 42.652924358999996 + 48.077967710999999 55.119129537999996 41.627407531000003 + 46.969467975000001 55.806622716000000 42.443611426000004 + 42.875066826999998 52.137828916000004 43.316811029999997 + 43.113368432999998 53.612446777999999 43.713145943000001 + 42.761545788999996 50.612052280000000 43.127578837000001 + 43.868053160999999 48.334212706999999 42.278317498999996 + 42.780605881000000 49.082324853000003 43.141558422000003 + 45.079228020999999 47.590585521999998 41.634551715000001 + 47.641171378999999 47.625966477999995 40.576630518999998 + 46.430018274999995 46.836842951999998 41.210820972999997 + 48.926948306000000 48.389856999999999 40.188985803000001 + 50.258695795000001 50.640356839999995 40.023877526999996 + 50.276109547000004 49.151253355999998 40.039910008000000 + 50.341653159000003 52.135211495000000 40.236591527999998 + 49.283526664999997 54.373901231000005 41.035868475999997 + 50.371354534000005 47.664714115999999 40.283594510000000 + 49.075116710000003 46.891486486000005 40.540521439999999 + 47.848161055999995 46.124376713000004 41.036232193000004 + 45.358766848999998 46.064229557000004 42.064720178000002 + 46.734326359999997 45.364782101999999 41.762880921000004 + 44.092781764000001 46.790376146000000 42.597089260000004 + 42.946606267999996 47.542368897999999 43.350963512000000 + 44.672717046999999 55.750548515999995 43.791034861000000 + 46.001191366000000 56.428406273999997 43.466614792000001 + 43.465012932000000 54.992644459000005 44.310760565999999 + 48.429725148000003 56.371402031999999 42.454175126000003 + 47.395653271000000 56.992442097000001 43.342438012000002 + 42.099967704000001 52.780950337999997 44.535953427000003 + 42.397712317000000 54.168969828000002 45.017539507999999 + 41.922462447000001 51.306177816999998 44.251323057999997 + 41.876772629999998 49.788470525999998 44.171755634999997 + 51.602575763000004 49.868554720999995 40.130122946000000 + 51.621271743999998 51.323779584999997 40.221498808999996 + 41.976429273999997 48.271540470000005 44.287317578000000 + 50.517009815000002 53.579500057000004 40.676916808999998 + 51.752835144000002 52.739915823000004 40.543762362999999 + 49.570068501000002 55.683733309000004 41.783532719000000 + 51.675815495999998 48.418026472999998 40.269172585000000 + 41.155555382000003 50.466813809000001 45.356953126999997 + 41.182906639999999 48.982334621000000 45.393133184999996 + 41.265921972000001 51.932646501000001 45.530015827000000 + 41.507205122000002 53.335304781000005 45.907546312000001 + 52.892749972000004 50.545322014000000 40.443085146999998 + 52.957850205000000 49.167547278000001 40.483795682000000 + 49.313048086999999 45.475712594000001 41.108491661999999 + 50.536677496999999 46.238551705999996 40.749946811000001 + 48.164971784000002 44.732662202000000 41.700131087000003 + 45.749939495999996 44.640915976999999 42.704987721000002 + 47.129222435000003 44.024597614999998 42.513131328000000 + 44.458667931999997 45.318030161999999 43.117210061000002 + 43.266874080999997 46.045570134000002 43.752800643000000 + 46.510680770000000 57.542715717999997 44.438337396999998 + 45.184816136000002 56.958613090000000 44.671612981999999 + 43.943354298000003 56.257800740999997 45.085025664000000 + 42.824542680000000 55.468933871000004 45.686813872999998 + 48.816350561999997 57.445848940000005 43.430501726000003 + 49.917495701999997 56.841335982000004 42.706899491999998 + 42.231499708000001 46.785436666999999 44.585483789000001 + 41.364566240999999 47.532748495999996 45.602051181999997 + 41.879712226000002 54.638581916999996 46.458180655000000 + 51.805873771000002 47.006799149000003 40.630924880999999 + 53.072453484000000 47.781106952999998 40.745998528999998 + 50.776157499999997 54.922660090999997 41.330225079999998 + 51.992977678999999 54.095033399000002 41.097262137999998 + 51.086984024000003 56.143876053000000 42.185190163999998 + 52.946469660000005 51.919394698000005 40.638683825000001 + 47.880024216999999 57.986144119000002 44.367309276000000 + 40.604608810000002 49.687391195000004 46.589882680999999 + 40.707711936999999 48.262748481000003 46.738813143000002 + 40.649506618000004 51.110040122000001 46.633089777999999 + 40.817873333000001 52.479852309000002 46.911491882000000 + 43.716343924000000 44.651947081000003 44.350752589999999 + 42.641979073999998 45.372608000000000 45.055632361999997 + 44.930298945000004 43.970091648999997 43.840589598000001 + 46.259431698000000 43.358640417000004 43.526941088000001 + 48.571011510000005 43.487473401000003 42.547148921000002 + 47.646452374999996 42.842587155000004 43.424876050999998 + 49.619103539000001 44.190275679999999 41.869685048000001 + 50.769780501000000 44.929541884999999 41.415252334000002 + 54.137289721000002 49.880133764999997 40.896788158000000 + 54.261036924999999 48.553012060000000 41.069726195999998 + 44.528638973000000 57.361940396000001 46.016779931000002 + 45.805817005000002 57.992697878000001 45.695861336000000 + 43.380345487000000 56.628241506999998 46.500487370000002 + 50.247224736000000 57.816144508999997 43.767282700000003 + 51.383908083999998 57.206594555999999 43.206636082000003 + 52.280563596999997 55.343006047999999 41.860508858000003 + 52.573798619000002 56.473117000000002 42.825439598000003 + 41.712990259000001 46.123276957000002 45.963109117000002 + 51.986370894000004 45.689413485000003 41.198115283000000 + 53.213629554999997 46.456188206999997 41.218543226999998 + 54.396910168000005 47.233774576999998 41.455108082000002 + 42.386665117000000 55.817198822000002 47.136902059000001 + 41.120894487000001 53.780449726000001 47.378991577000001 + 53.149709368000003 53.236053585000001 41.077708360999999 + 40.982520987000001 46.867032178000002 47.021815169999996 + 47.148134888000001 58.463882058999999 45.502271030999999 + 54.059790566000004 51.157842388999995 40.934819275999999 + 49.220261203999996 58.300461427000002 44.477831268000003 + 55.347938577999997 49.356908645000004 41.574681816999998 + 55.497482783999999 48.062733279000000 41.874442744999996 + 40.242114174000001 50.342920511000003 47.839891268999999 + 40.260085715999999 48.997840889999999 47.967822136999999 + 40.347615552000001 51.654021608000001 47.976219628999999 + 51.627766010999999 58.108373211000000 44.378197647000000 + 52.814015499999996 57.445057591000001 43.945874610000004 + 43.171443338000003 44.082005750999997 45.716525011000002 + 44.305360577999998 43.381618584999998 45.124745208000000 + 45.556207940999997 42.762906286000003 44.720114897000002 + 46.879089319999999 42.254910907999999 44.497863006999999 + 49.052336908000001 42.412414878999996 43.555584844000002 + 48.236138232999998 41.871792189000004 44.448330931000001 + 50.010902642000005 43.058386259000002 42.801814131000000 + 51.067173056000001 43.757229697000000 42.261204188999997 + 44.055185573999999 57.622460583999995 47.439282116000001 + 43.007529335999997 56.854837356000004 47.971069534999998 + 45.242206510000003 58.290105912000001 47.061029929000000 + 41.570651097999999 54.981888832999999 47.968532367999998 + 52.187306434000000 44.493919683999998 41.944022709000002 + 40.568396907999997 52.913698029999999 48.401492286000000 + 53.429974591000004 54.467142815000003 41.736834180000002 + 53.732260902999997 55.615271910000004 42.614950919000002 + 53.978526260999999 56.643525294000000 43.672686157999998 + 53.341707997000000 45.234128591000001 41.868612826000003 + 54.522332986999999 45.988982616999998 42.033806183999999 + 55.638063372000005 46.796574491000001 42.387490137000000 + 46.564741788999996 58.831946844000001 46.806926877999999 + 42.149968229000002 56.035141750999998 48.602121162000003 + 40.453978208999999 47.631251054000003 48.193761811000002 + 55.200178988000005 50.584722599999999 41.478483822000001 + 48.453812176000000 58.768404496999999 45.447595602999996 + 54.188368290000000 52.382237574000001 41.237436721000002 + 50.522527695000001 58.600923848999997 44.925448418000002 + 42.206393535000004 44.818462789000002 46.477022509000001 + 41.417326920000001 45.565641450000001 47.416555196000004 + 40.094600313000001 50.915489037000000 48.977778463999996 + 40.215969426000001 51.976587339999995 49.395146131000004 + 40.033067627999998 49.794167376000004 49.213938919000000 + 50.438222139000004 42.108634330000001 43.873474946999998 + 49.606358485000001 41.530402324999997 44.698022860999998 + 51.395562968000000 42.761224268999996 43.243334408999999 + 56.429902665000000 48.924973600000001 42.417080380000002 + 56.294581801999996 50.200399263999998 42.232240986999997 + 52.961316783000001 58.268038148000002 45.217725637000001 + 51.744355571000000 58.848667008999996 45.680472733000002 + 44.826114736000001 58.422718398000001 48.487146385999999 + 46.092546518999995 59.026732475000003 48.197249843000002 + 43.720065325999997 57.706488438000001 48.917199718999996 + 43.849013130000003 42.921570031999998 46.527077640000002 + 42.829765682000001 43.636949448999999 47.154068252999998 + 45.025316122999996 42.274267506000001 46.054676469000000 + 46.309181730999995 41.744209187999999 45.731536742000003 + 47.635531630999999 41.367561667000004 45.540145994000000 + 40.829830602999998 46.292399594000003 48.529730481000001 + 48.841396740999997 41.169881316000001 45.451742914999997 + 54.506560335000003 53.542484467999998 41.805995011999997 + 40.141079820000002 48.435085944999997 49.406083445000000 + 47.925987253000002 59.187204562000005 46.639383469999999 + 54.822393898000001 54.665121784999997 42.585072095999998 + 55.097895151000003 55.708582729000000 43.563887178000002 + 52.440749515000000 43.442902449000002 42.855266729000000 + 53.471199452000000 44.157381470000004 42.664157642999996 + 54.568084868000000 44.850970216000000 42.746029161999999 + 55.682234248000000 45.579574039000001 43.059391362000000 + 40.950394971999998 54.122169233999998 48.945310641999995 + 41.497448214000002 55.238743642999999 49.487966623999995 + 40.527571162000001 53.204805833999998 49.951922155999995 + 47.470142374999995 59.462251898000005 47.983664359000002 + 41.986455874000001 44.390538378000002 47.922248607000000 + 56.626043254999999 47.699007461999997 42.872519089999997 + 42.798215745999997 56.915726378999999 49.445895129999997 + 54.154502237999999 57.525014075000001 44.889787251999998 + 55.022629930999997 51.631860091000000 41.508226262000001 + 56.060654846999995 51.416105432999998 42.172924670000000 + 49.597308931000001 58.904807535000003 45.467644909000001 + 50.549984019999997 59.222190495000000 46.172635364000001 + 40.044526078000004 50.836946142000002 50.433659007000003 + 51.755466976999998 41.960340627999997 44.318256175999998 + 50.902722468000000 41.350245874999999 45.063721470000004 + 44.511025559000004 58.358184284000004 49.890843898000000 + 45.692661810000004 59.016503103000005 49.613335397000000 + 57.138067012999997 49.760768542999998 43.000659486000004 + 57.432755317000002 48.680706826000005 43.441523505999996 + 52.981398943999999 58.919798732000004 46.601698819999996 + 54.221541770999998 58.236129168000005 46.212552125000002 + 44.646538194999998 41.943302863000000 47.464240165000000 + 43.549735576000003 42.623825615000001 48.003467931000003 + 45.890081070000001 41.364323855999999 47.078756440999996 + 47.229582573999998 40.938636764000002 46.803676551999999 + 42.115103102999996 56.149578374000001 49.894706378999999 + 50.092559585000004 40.776149305000004 46.138392680999999 + 55.422880296000002 52.546307634000001 41.993209960999998 + 55.797711281000005 53.608260975999997 42.694728162000004 + 56.738963572999999 46.453217449999997 43.518742136000000 + 49.256704775999999 59.336253076999995 46.495447149000000 + 47.028165536000003 59.528753339000005 49.390853288999999 + 48.891953139000002 59.686561490999999 47.776768425000000 + 48.621172649999998 40.707694906000000 46.571895396000002 + 56.100303237999995 54.668977787000003 43.597895125000001 + 57.638505354999999 47.476167525999998 44.060007947000003 + 40.443467222999999 47.073561491999996 49.670395783000004 + 41.032551749000000 54.388615537999996 50.570022393000002 + 57.242891161000003 51.042992365000003 43.184378637999998 + 51.679851409000001 59.416321963000001 47.082641616000004 + 41.363769642000001 45.070332074999996 48.944585696000004 + 42.645067323999996 43.365956171000001 48.623617851999995 + 55.278989754000001 56.633554382000000 44.696395240999998 + 55.370292304000003 57.401171777000002 45.952455448000002 + 40.270798159000002 52.202942243999999 50.699769246999999 + 52.705882963999997 42.584991178999999 43.860306069000004 + 53.708346796000001 43.245068943999996 43.626690775000000 + 54.508892391000003 43.904365356000000 43.479790823999998 + 55.560408596999999 44.401283991000000 43.857017395000000 + 40.043667923999998 49.329361742000003 50.649381176999995 + 43.516016446000002 57.601410792999999 50.420132393999999 + 57.956279772000002 49.846367547000000 43.944093027000001 + 44.389262170999999 41.790424193999996 48.940525553000001 + 45.559542207000000 41.166249995000001 48.500935143000000 + 46.856620884999998 40.680436720000003 48.193094357000000 + 54.181182571000001 58.774181893000005 47.648097702000001 + 52.882382526000001 59.381087182000002 48.079824419000005 + 52.096601257000003 41.411433088000003 45.326587801999999 + 53.044051503999995 41.904001321999999 44.981179834999999 + 45.344276172000001 58.793357956000001 51.000545598000002 + 46.606369295999997 59.370243862999999 50.825712170000003 + 40.933263232000002 45.782307645000003 50.073181805000004 + 41.960708650000001 44.102781999999998 49.230185438999996 + 53.842847997000000 42.533028592000001 44.570740634000003 + 56.677448616999996 45.221923021999999 44.291965279999999 + 57.676704379000000 46.235227393999999 44.813990253000000 + 41.776950581000001 55.604170174000004 50.987286644000001 + 42.643350761999997 56.705515855000002 50.956958259000004 + 51.645786940999997 40.882076760000004 46.237705336000005 + 44.310081953000001 58.142562357000003 51.150439429999999 + 58.320235762999999 48.613095987999998 44.628764191000002 + 55.011123104999996 43.198774821000001 44.649113970999998 + 48.470334829999999 59.847925762000003 49.176299419000003 + 48.007300204000003 59.779728270999996 50.621339247999998 + 48.263384005999995 40.371458834999999 47.932305650000004 + 40.254494899000001 47.925847091000001 50.850305848000005 + 40.695450553000001 53.250581811000004 51.690880683000003 + 55.363958307000004 58.003057428000005 47.320630096999999 + 56.310385220000001 55.621419618000004 44.654096909000003 + 56.429450399000004 56.437666770999996 45.850468206999999 + 56.605530780999999 52.415068165999998 42.891244212000004 + 56.960910079000001 53.513581289000001 43.738971538000001 + 50.319384083999999 59.676674179000003 47.498006668000002 + 51.474705834000005 59.787013673000004 48.571852222000004 + 43.388297546000004 42.514060053999998 49.503921603999999 + 53.058997062000003 41.294172160999999 46.146287684000001 + 40.188037940000001 50.160530710000003 51.923442340000001 + 40.316016142999999 51.639659221999999 51.879354753000001 + 46.196404908000005 58.980348231999997 52.210432085999997 + 44.896401060000002 58.295167227999997 52.267923836000001 + 54.057299584999996 59.099573922000005 49.142052144000004 + 55.285387131000000 58.398672103999999 48.764285732000005 + 58.269337508999996 51.037648563000005 44.473577773999999 + 57.668237843000000 52.260313711999999 43.992578731000002 + 45.319316782000001 41.163585077000000 49.905258625999998 + 44.258426540000002 41.824892964000000 50.449398654999996 + 46.548691102999996 40.622363636999999 49.614768722000001 + 42.514380426000002 43.370184672999997 50.105111022000003 + 47.899972778999995 40.242981721999996 49.375116009999999 + 43.346149029999999 42.603692156999998 51.010394759000000 + 56.434141761999996 57.093870291000002 47.122705422999999 + 43.580809164999998 57.391535871999999 52.039408361000000 + 56.363144642000002 57.562479353000001 48.477076397000005 + 54.430205078000000 42.065975508000001 45.825729006000003 + 41.668239297000000 44.494361595000001 50.519335472000002 + 58.489278399000000 47.384743853000003 45.407333285000000 + 41.453671506999996 54.743134163000001 52.112568957000001 + 49.997336558000001 59.944848864999997 48.951203566000004 + 49.510426062999997 59.979807950000001 50.404661153999996 + 47.563784034999998 59.480035753999999 52.047870572999997 + 57.208157455999995 54.510735314000001 44.737326439000000 + 57.366076790999998 55.358925814000003 45.874127143999999 + 40.651905993000000 46.630543111999998 51.122452097999997 + 40.287584187000000 48.748553532999999 52.025551977999996 + 52.699950595000004 59.621104248999998 49.619710886999997 + 58.773372985999998 49.826086513999996 45.204410303000003 + 56.372267894000004 44.014898703000000 45.144820873000000 + 57.504969269000000 44.999971197999997 45.678524760000002 + 49.730187510999997 40.281814218999997 47.658191650999996 + 51.188337257000001 40.397598545999998 47.473789225000004 + 52.657213464000002 40.727279957999997 47.362599834000001 + 45.157193168999996 41.330137526000001 51.175034756999999 + 46.240707033999996 40.789659026000002 51.018496706000001 + 40.577499525000000 50.887383720000003 53.229401636999995 + 40.575705233000001 49.449097703999996 53.298359411999996 + 58.521394035000000 52.125315764999996 45.217858575999998 + 57.945126232000000 53.318591064000003 44.914538121999996 + 45.802347902000001 58.365806864000000 53.520368216999998 + 47.173185376999996 58.954066752000003 53.440030187000005 + 55.109830716000005 58.592785055000000 50.231678772999999 + 53.878288454000000 59.194620665000002 50.646397320999995 + 57.390485686000005 56.067712548000003 47.073639502999995 + 57.302988177000003 56.616677893000002 48.301195317999998 + 47.550640775000005 40.340255088999996 50.830642905000005 + 56.241891035999998 57.812054971999999 49.897075700000002 + 58.431739077000003 46.142727856999997 46.254705919000003 + 41.239378344999999 45.442039569000002 51.573691496999999 + 44.406837123999999 41.978742406000002 52.091878500999997 + 58.149677194999995 54.195438297999999 46.002368313000005 + 40.594714390000000 47.442860146000001 52.236434294999995 + 40.707053932999997 48.194263781000004 53.221873696000003 + 59.012860297000003 50.989641478999999 45.782304064000002 + 58.732447979000000 53.018265057000001 46.174502864000004 + 59.062778326000000 48.609977475000001 46.008272757000000 + 49.349629078999996 40.057960745000003 49.143919914999998 + 50.817561361000003 40.091975536999996 48.921739979999998 + 52.254345606000001 40.342880991999998 48.712374920000002 + 42.504821843000002 43.564961159999996 51.553248054000001 + 51.186979640000004 59.926302050000004 50.244145357999997 + 52.605097774000001 59.588856586999995 51.125741951999998 + 48.962331096000000 59.775818477000001 51.832107077000003 + 48.558188713999996 59.346885467999996 53.249140233999995 + 55.889310576000000 42.907876877000000 46.124718004000002 + 57.131979639000001 43.858728726999999 46.620702206000004 + 42.481354784000004 56.103976967000001 52.492275929000002 + 40.810306918000002 52.366375660000003 53.154331513000002 + 41.303456417999996 53.737297439999999 53.225327515000004 + 54.054141756999996 41.289973588000002 47.225225322000000 + 44.517874216999999 57.623518731000004 53.439223612999996 + 45.797491712999999 41.227359372999999 52.319418145000000 + 54.852206991999999 58.581707601000005 51.676419385000003 + 56.013919916999996 57.879845299999999 51.319395802000003 + 41.076439926999996 50.135207115000000 54.511296340000001 + 41.216031524000002 48.508063687000003 54.540487182000000 + 46.810168179000001 58.208619106000000 54.737461908000000 + 45.454717047000003 57.549445832000004 54.727184206000004 + 41.913209932999997 44.487123873000002 52.052321425000002 + 41.022186681999997 46.316829185000003 52.415185455000000 + 58.231445678000000 54.929739830000003 47.182027810000001 + 58.151714847999997 55.556754497000000 48.365367167999999 + 59.092352708999996 51.959477735000000 46.327185110000002 + 41.214247817000000 46.960294484999999 53.683849746999996 + 41.158567576999999 51.576859791000004 54.398020680000002 + 41.511422604000003 52.907105555000001 54.415064108999999 + 47.147993718999999 40.678961309999998 52.232554121999996 + 57.211933564999995 56.916968183999998 49.621099759000003 + 57.078372397999999 56.991018621999999 51.011089920000003 + 43.487710641000000 56.815181804000005 53.338170798999997 + 48.981641789999998 40.071560629000004 50.623729276999995 + 48.242696828999996 58.704006186000001 54.599147950999999 + 55.377684076999998 42.016695458999997 47.289398117000005 + 50.457481827999999 40.018888289000003 50.410023633000002 + 51.921557906000004 40.187966842000002 50.177821621000000 + 53.592150837999995 40.787861313000001 48.505693078999997 + 43.352294974000003 42.895427480000002 52.309343455000004 + 58.900978206000005 53.702780830999998 47.342557415999998 + 56.626377868999995 42.885587154999996 47.659861927000001 + 59.134438321000005 47.394708649999998 46.873581356999999 + 58.161420344000000 44.957134111000002 47.178524926000001 + 50.381357494000000 59.856120019000002 51.646652551999999 + 51.584375989999998 59.731853279999996 51.667568424999999 + 49.899929573000001 59.544164193000000 52.983105053999999 + 44.206380397000004 56.755488428000000 54.560410945000001 + 53.644795052999996 59.062978611999995 52.139599891000003 + 59.403909025000004 49.880453101000001 46.601146725999996 + 42.092848494999998 54.962143869000002 53.585259168000000 + 45.331875949999997 41.905850868000002 53.562775279000000 + 44.038469430999996 42.778200265999999 53.507956938999996 + 41.806463246000000 49.559137828000004 55.715907276999999 + 41.768755624000001 50.971507275999997 55.594889598999998 + 46.483800520999999 57.265469346000003 55.903329264999996 + 47.928555888000005 57.849613716000000 55.838894056000001 + 55.651542496000005 57.813158498000000 52.648513111000000 + 54.511251770000001 58.382198271999997 53.063879827999997 + 57.926021559999995 56.062906808999998 49.352432813999997 + 59.511636863000000 51.145431240999997 47.133512347999996 + 41.850952016000001 52.183513159000000 55.368918628000003 + 43.062190252000001 55.900566214000001 54.129178398999997 + 59.345435159000004 52.426980182999998 47.397576344000001 + 52.441786528000002 59.340978389000000 52.604573150999997 + 53.301403261000004 58.710984732000000 53.635860489999999 + 41.749273451999997 45.344276874999998 53.201523640000005 + 41.977063135999998 53.981404682000004 54.447572465000000 + 51.190656055000005 59.516948831000001 52.830198421999995 + 56.730135331000000 56.996413954000005 52.399056107999996 + 57.990167327999998 55.979617001000001 50.633566568999996 + 48.590030248000005 40.320474216999997 52.078164071000003 + 42.770674354000001 43.881924640000001 53.210296653000000 + 58.889021862999996 54.364763625999998 48.609270406000000 + 53.277315013999996 40.552788114000002 49.903077996000000 + 57.711088173999997 43.898542218000003 48.180293399999996 + 49.656441900000004 59.002884840999997 54.339358521000001 + 49.435648737000001 58.253449619000001 55.618013619999999 + 59.600921067000002 48.703095016999995 47.522026608000004 + 50.079386271000004 40.177503268999999 51.874101327999995 + 51.562459590000003 40.260907498000002 51.645842418000001 + 46.734817378999999 41.248790740000004 53.571402937000002 + 54.841822135000001 41.383095972999996 48.481539132999998 + 56.023996769999997 42.115732106999999 48.755097309000000 + 45.131897090999999 56.527638498999998 55.804438791999999 + 58.977059130000001 46.183486271000000 47.798493170000000 + 55.206642105000000 57.661815140000002 53.766625379000004 + 56.163316383000002 56.953393069000001 53.696465336999999 + 42.038906177000001 48.295584949000002 55.806544107999997 + 41.926527284000002 47.175421573000001 55.180810266000002 + 45.011510784999999 42.795121125999998 54.817125259999997 + 46.369778292999996 42.034495849999999 54.834483839000001 + 42.607802655000000 50.463248284999999 56.718691794999998 + 42.724054727000002 48.969248176000001 56.782195150000000 + 47.622043871999999 56.797319880000003 56.938426847000002 + 46.215349682999999 56.138278577000001 56.928055866000001 + 59.458168755000003 52.999273647999999 48.756054109000004 + 58.613956622000003 55.075909522000003 49.813201051000000 + 42.503472062000000 53.361041145000002 55.701356969999999 + 57.755551824999998 55.963775044999998 52.069976596000004 + 57.174350142999998 56.015392974000001 53.513366959999999 + 42.801535416000000 54.771324004999997 55.041485383000001 + 43.886208318999998 55.674357026999999 55.515725121000003 + 50.769709417000001 59.163381446000002 53.929374999000004 + 57.115887420999996 43.019323677999999 49.203567772000000 + 51.033484923000003 58.486817156000001 55.187084294000002 + 42.593123863999999 51.935924851999999 56.433535642999999 + 54.223082289000004 57.906052164999998 54.433950287000002 + 59.816468057000002 50.086133472000000 48.094865905999995 + 41.981883154000002 46.034124442000000 54.470082024000000 + 51.988344075000001 58.955402589000002 53.980860749000001 + 54.332455105000001 40.998226754000001 49.555127905999996 + 53.024829023999999 40.566477851999998 51.363476899999995 + 55.337924740999995 41.545936431999998 49.811934444000002 + 49.072505719999995 57.286755901999996 56.785495028000000 + 48.181442840000003 40.796479243999997 53.462377152999998 + 47.801717320000002 41.490765074000002 54.770793879999999 + 44.875576504000001 55.325280708000001 56.736591810000000 + 59.558597063999997 47.507606637999999 48.443980236000002 + 58.600497746000002 45.052328885000001 48.754211472999998 + 43.763744553000002 43.746373788000000 54.690551909000000 + 49.673411091999995 40.558533066000003 53.279030622000001 + 51.162712631000005 40.552198279000002 53.063844313000004 + 42.901870170999999 47.398624583000000 56.545945224000000 + 55.293080509999996 56.994541177999999 54.802050856999998 + 43.637024107000002 49.877385595999996 57.713462484000004 + 43.606115043999999 51.451807780999999 57.550529077000000 + 47.398375995999999 55.561488122000000 57.893123742000000 + 48.790900358000002 56.178199618999997 57.769680014999999 + 46.115395294999999 42.996605717999998 55.988515242999995 + 44.827442595000001 43.828645897000001 55.929505749000000 + 52.649578887000004 40.776412233999999 52.811611716000002 + 56.358134997000001 56.030472291999999 54.817418736999997 + 52.822933512999995 58.087695726999996 55.159479063999996 + 58.049480529000000 44.072056079999996 49.744375087999998 + 59.278912040000002 53.725356026000000 50.153342187999996 + 54.452497281999996 41.095954646999999 50.945116025000004 + 47.497557243000003 42.368330803999996 55.957802072000000 + 56.395324345999995 42.314479722000002 50.180567346000004 + 42.702208710999997 44.881692846999997 54.532678478000001 + 50.536885088999995 57.589946730000001 56.488795191999998 + 50.242003104999995 56.531089690999998 57.568771495999997 + 42.757979372000001 46.027333534999997 55.636582153999996 + 49.255003266999999 41.158311257000001 54.611888989000001 + 43.690108017000000 44.849846487000001 55.801825743999999 + 59.898518095000000 48.899462409000002 49.101024729000002 + 50.734318293000001 41.051244292000000 54.402334370999995 + 59.777478178999999 51.539815012999995 48.575257851000003 + 43.636008117000003 54.387314168000003 56.344374020000004 + 46.016502040999995 54.881002226999996 57.765794311000001 + 58.706828082000001 54.674266211999999 51.530483629999999 + 58.106909391000002 54.901962654999998 53.201371934000001 + 43.782749698000003 48.360361290000000 57.658810846999998 + 43.582962565000003 52.975352991000001 57.068868731999999 + 54.150263370000005 57.097609102999996 55.692034696000000 + 59.277819577999999 46.323375279000004 49.364001150000000 + 45.974386089999996 44.102174755999997 57.000720680000001 + 47.268557104999999 43.409175116000000 57.007156846000001 + 44.716386684000000 50.763919510999997 58.455758825000004 + 44.801487731999998 49.207710867999999 58.505747946000000 + 48.690953694000001 54.936116951000002 58.597740819999999 + 47.257749001999997 54.131265498000005 58.684048873999998 + 57.330624212000004 43.238754495999999 50.739937759000000 + 54.065968075000001 41.209493987000002 52.488957141000000 + 59.789725083999997 52.024579838000001 50.249718354999999 + 51.818028339999998 57.672485055999999 56.150426491000005 + 52.957302315999996 56.996972002000000 56.503594837999998 + 51.641049733000003 56.730232600999997 57.211860016999999 + 58.789207845999996 45.241619686999996 50.328088762999997 + 59.985191419000003 50.389560856999999 49.620270274999996 + 55.625864069999999 41.789228772999998 50.965861957000001 + 49.891126201999995 55.478685538999997 58.364935819999999 + 44.716401005999998 53.985849707000000 57.496438073000000 + 57.342060611000001 54.969042271999996 54.626312233000000 + 45.817552456000001 53.674400575000000 58.306979772999995 + 52.212806233999999 41.184381459000001 54.169935049999999 + 48.911792282000000 41.955310140999998 55.839415127999999 + 50.341552825000001 41.749238238000004 55.639882268999997 + 48.632612515999995 42.913720584000004 56.922058618000001 + 44.862535780000002 52.455694558000005 58.220463832999997 + 44.785381125000001 44.993176505999998 56.909375404999999 + 59.727548894000002 47.682189429000005 50.050464453000004 + 55.329173339999997 56.058167065999996 55.907497212999999 + 59.388783813000003 53.020415485000001 51.651614000999999 + 58.826350188999996 53.633978020000001 52.981567725000005 + 43.749081222000001 46.053160149000000 56.734127235000003 + 44.012262573999998 47.122172234000004 57.474296480000000 + 45.045123384999997 47.652908296000000 58.363035230999998 + 47.142141269000000 44.559126434000000 57.888570106000003 + 45.923437956000001 45.288926465999999 57.822239324999998 + 48.738882751999995 53.766893373999999 59.177150843000000 + 50.224266981000000 54.181955645000002 59.080801248000000 + 45.946391863000002 50.010670472000001 59.141561531000001 + 45.943080506000001 51.459003890999995 59.022899304999996 + 46.432646261999999 52.787389743999995 58.916526550000000 + 55.339692190999997 41.823958654000002 52.154074096999999 + 47.928361828999996 52.823161948999996 59.366860301000003 + 44.869167296000001 46.227319773000005 57.709827473000004 + 58.132363694999995 44.331575831000002 51.316673144999996 + 53.644242622000000 41.549708547999998 53.913064028000001 + 51.365829396999999 55.438083668000004 58.280202658999997 + 46.128193531000001 48.595700819000001 59.112467199999998 + 58.147657189000000 53.818781242000000 54.362635918999999 + 59.929970189999999 49.136781462000002 50.806564186000003 + 54.136670314000000 56.031257933999996 56.819962349999997 + 51.730278706000000 41.751933507000004 55.382892783999999 + 50.034960592000004 42.627122086000000 56.755697522999995 + 56.445534918000000 42.524200145999998 51.602340835999996 + 48.437670744000002 44.011241526999996 57.854546405999997 + 59.325326744000002 46.498069111000000 50.880205183000001 + 56.390540693999995 54.952312371000005 55.885201084999998 + 59.699881392000002 51.485675712000003 51.924855491999999 + 59.935892828000000 50.618828640000004 50.946089225000001 + 59.246081998999998 52.207144220000004 53.104590481000002 + 49.560128020000001 52.589605583000001 59.648857734000003 + 47.116687044000003 50.708139289999998 59.549086088999999 + 47.305967039999999 49.340752174999999 59.607683316999996 + 47.064301588999996 45.742867971000003 58.559118045999995 + 48.284028684999996 45.201474156000003 58.604045104999997 + 58.701449197000002 52.755727460999999 54.085431192000001 + 52.837695425999996 55.881589620000000 57.573267999999999 + 58.761426913999998 45.538916428000000 51.826508087000001 + 51.383157134000001 42.519315483000000 56.490472670999999 + 57.280459387999997 43.526750739999997 52.256536089000001 + 53.146936749999995 42.045864557000002 55.179625318999996 + 54.995607202000002 42.098376356000003 53.550810114000001 + 47.025490966000000 46.810285766999996 58.998778756999997 + 45.971705194999998 46.501555397000004 58.457761306999998 + 46.317842084999995 47.506685087999998 58.956846198999997 + 47.605856629000002 47.886199730000001 59.476282284999996 + 49.751194448999996 43.621144172999998 57.697291350000000 + 49.601838685000004 44.764713870000001 58.510772392000000 + 57.317612428000004 53.773957463999999 55.675367249000004 + 55.249616861999996 54.932455243000000 56.936310841000001 + 59.608647961999999 47.730796580000003 51.588899049999995 + 48.408959987000003 51.471929232999997 59.762275145000004 + 51.918973699999995 54.008077415000002 58.958395803999998 + 51.176006340000001 52.783291452000000 59.532591347000000 + 59.763498803000005 49.996038186000000 52.161961015000003 + 59.383898076000001 50.748316758000001 53.373792958999999 + 48.106032948999996 46.479038524000003 59.166008896999998 + 48.973858190000001 48.907296415000005 59.887013292999995 + 49.557224275999999 51.455114598999998 59.883652724000001 + 56.850080482999999 47.177628210000002 56.716443615999999 + 52.566588885000002 42.535995557999996 56.140135111999996 + 58.091559269000001 52.551410836999999 55.293106019999996 + 58.795339986000002 51.532551400999999 54.504806403000003 + 59.653529950999996 48.724843617000005 52.276694026000001 + 51.145233048000001 43.477601239999998 57.493113883999996 + 50.763400520000005 44.396409625000004 58.247241633000002 + 56.232866930000000 42.780931037000002 53.006062729999996 + 58.010884359000002 44.733322620999999 52.843913004000001 + 52.745957470000000 54.802194017000005 58.330585225000000 + 54.518486154000001 42.549367867999997 54.906257608000004 + 59.174214880000001 46.684636835999996 52.200488226000004 + 49.452430034999999 50.404676608999999 59.976793270999998 + 50.754265255999996 51.227545667000001 59.895666504000005 + 49.405538645000000 45.980105324999997 59.137125505000000 + 49.113011323999999 47.362321248000001 59.604993590999996 + 53.990058476000002 54.870077852999998 57.769284076999995 + 59.339807936000000 49.250025356999998 53.493640757999998 + 56.249728965999999 53.702557210999998 56.872551051000002 + 52.526134941999999 52.871198301000000 59.239851868999999 + 53.538792346000001 53.619817994999998 58.624028432999999 + 58.805403935000001 50.039885139999996 54.739543303000005 + 52.284451300000001 51.612853330000000 59.601040902000001 + 59.157829355000004 47.646388532000003 53.254946168000004 + 53.826229034000001 43.193516281000001 56.247539576999998 + 52.505788089999996 43.420769487000001 57.101742877999996 + 52.174584991000003 44.660204827999998 58.170542677000000 + 58.607516415999996 46.084585802999996 53.252720832000001 + 57.167873595000003 52.456165525999999 56.526012491000003 + 50.915022464000003 45.605288735999999 58.935840576000004 + 55.846571279999999 43.188039044000000 54.406221985999998 + 57.033518121000000 43.945946890999998 53.725327340999996 + 54.998401104999999 53.714685470999996 57.824135623000004 + 50.648105068000000 49.523369794000004 59.967586642000001 + 50.455642041000004 48.033801335999996 59.794205079999998 + 53.595254185999998 52.128038017999998 59.085460996999998 + 54.621549911999999 52.640197283999996 58.465851092000001 + 52.129535063999995 50.089941639999999 59.770209358999999 + 55.908485321000001 52.291453527000002 57.735569916999999 + 50.319022841999995 46.763101043999995 59.456252407000001 + 51.982870861999999 48.483346960999995 59.683387151000005 + 55.289349313999999 43.699814861000000 55.685987253000000 + 57.704057071999998 45.298716259000003 54.306441202000002 + 53.558916605999997 50.662567451000001 59.321755037000003 + 57.965155155000005 51.023042423999996 55.959000549999999 + 58.687085611000001 48.413649968000001 54.692338133000000 + 53.609748535000001 44.380070900000000 57.442184654000002 + 58.290268619000003 46.804581943000002 54.589199239999999 + 54.712938875999996 44.277076903000001 56.710913379000004 + 51.607851994000001 47.022569411999996 59.410086027999995 + 53.465179629000005 49.064500731999999 59.333668692000003 + 52.341741581999997 46.025447295999996 58.872382834999996 + 53.529984400000004 45.715937531000002 58.317813348000001 + 56.575220299999998 44.484258404000002 55.132550307999999 + 56.895696552000004 51.299773255000005 57.124602342999999 + 54.810533337999999 51.366845659999996 58.659705649999999 + 58.011826729999996 49.280021527000002 55.940729200999996 + 55.982553889999998 50.652605417000004 57.986435696000001 + 55.852990360000000 44.989477747000002 56.374729060999996 + 57.097599321000004 49.972622221000002 57.044383177000000 + 54.788777240999998 45.370794613999998 57.459093111000001 + 57.119851206000000 46.029085914999996 55.791334918000004 + 53.281807807999996 47.324016620999998 59.059185971000005 + 54.807265547000000 49.844048733000001 58.767318697999997 + 57.782507440000003 47.663639361999998 55.828721723000001 + 54.739683627000005 48.263516879999997 58.632498217999995 + 54.748151634999999 46.734283348999995 58.172524139000004 + 57.044065015000001 48.485917241999999 56.934601752999995 + 55.954012359000004 46.276117649000000 57.119159855999996 + 56.005827683000000 49.144036372999999 57.949676730000000 + 55.938433912000001 47.665867777999999 57.699794116999996 + 3 2 1 + 6 2 3 + 7 2 6 + 8 2 7 + 9 2 8 + 1 2 9 + 10 3 1 + 11 10 1 + 12 11 1 + 9 12 1 + 13 9 8 + 14 9 13 + 12 9 14 + 15 6 3 + 16 15 3 + 10 16 3 + 17 7 6 + 18 17 6 + 15 18 6 + 19 8 7 + 20 19 7 + 17 20 7 + 21 13 8 + 19 21 8 + 22 17 18 + 23 17 22 + 20 17 23 + 24 19 20 + 25 24 20 + 23 25 20 + 26 18 15 + 27 18 26 + 22 18 27 + 28 15 16 + 26 15 28 + 29 16 10 + 30 16 29 + 28 16 30 + 31 10 11 + 29 10 31 + 32 11 12 + 33 11 32 + 31 11 33 + 34 12 14 + 32 12 34 + 35 14 13 + 36 14 35 + 34 14 36 + 37 13 21 + 35 13 37 + 38 19 24 + 21 19 38 + 39 34 36 + 40 34 39 + 32 34 40 + 41 33 32 + 40 41 32 + 42 31 33 + 43 42 33 + 41 43 33 + 44 29 31 + 42 44 31 + 45 30 29 + 44 45 29 + 46 23 22 + 47 23 46 + 25 23 47 + 48 22 27 + 46 22 48 + 49 24 25 + 50 49 25 + 47 50 25 + 51 27 26 + 52 27 51 + 48 27 52 + 53 26 28 + 51 26 53 + 54 28 30 + 53 28 54 + 55 36 35 + 56 55 35 + 37 56 35 + 57 54 30 + 45 57 30 + 58 21 38 + 37 21 58 + 59 56 37 + 58 59 37 + 60 24 49 + 38 24 60 + 61 36 55 + 39 36 61 + 62 53 54 + 63 62 54 + 57 63 54 + 64 51 53 + 62 64 53 + 65 52 51 + 64 65 51 + 66 55 56 + 67 55 66 + 61 55 67 + 68 41 40 + 69 68 40 + 39 69 40 + 70 43 41 + 68 70 41 + 71 42 43 + 72 71 43 + 70 72 43 + 73 44 42 + 71 73 42 + 74 45 44 + 73 74 44 + 75 50 47 + 76 75 47 + 46 76 47 + 77 46 48 + 76 46 77 + 78 48 52 + 77 48 78 + 79 49 50 + 80 49 79 + 60 49 80 + 81 57 45 + 74 81 45 + 82 63 57 + 81 82 57 + 83 52 65 + 78 52 83 + 84 69 39 + 61 84 39 + 85 61 67 + 84 61 85 + 86 38 60 + 58 38 86 + 87 59 58 + 86 87 58 + 88 60 80 + 86 60 88 + 89 56 59 + 66 56 89 + 90 79 50 + 75 90 50 + 91 62 63 + 92 91 63 + 82 92 63 + 93 64 62 + 91 93 62 + 94 65 64 + 93 94 64 + 95 74 73 + 96 74 95 + 81 74 96 + 97 73 71 + 95 73 97 + 98 71 72 + 97 71 98 + 99 72 70 + 100 72 99 + 98 72 100 + 101 70 68 + 99 70 101 + 102 68 69 + 101 68 102 + 103 67 66 + 104 67 103 + 85 67 104 + 105 76 77 + 106 76 105 + 75 76 106 + 107 77 78 + 105 77 107 + 108 80 79 + 109 80 108 + 88 80 109 + 110 86 88 + 87 86 110 + 111 88 109 + 110 88 111 + 112 81 96 + 82 81 112 + 113 69 84 + 102 69 113 + 114 84 85 + 113 84 114 + 115 85 104 + 114 85 115 + 116 107 78 + 83 116 78 + 117 83 65 + 94 117 65 + 118 59 87 + 89 59 118 + 119 92 82 + 112 119 82 + 120 75 106 + 90 75 120 + 121 66 89 + 103 66 121 + 122 108 79 + 90 122 79 + 123 104 103 + 124 104 123 + 115 104 124 + 125 93 91 + 126 125 91 + 92 126 91 + 127 94 93 + 125 127 93 + 128 109 108 + 129 109 128 + 111 109 129 + 130 96 95 + 131 130 95 + 97 131 95 + 132 97 98 + 131 97 132 + 133 98 100 + 132 98 133 + 134 100 99 + 135 100 134 + 133 100 135 + 136 99 101 + 134 99 136 + 137 101 102 + 136 101 137 + 138 105 107 + 139 138 107 + 116 139 107 + 140 106 105 + 138 140 105 + 141 83 117 + 116 83 141 + 142 137 102 + 113 142 102 + 143 117 94 + 127 143 94 + 144 87 110 + 118 87 144 + 145 110 111 + 144 110 145 + 146 111 129 + 145 111 146 + 147 113 114 + 142 113 147 + 148 114 115 + 147 114 148 + 149 115 124 + 148 115 149 + 150 106 140 + 120 106 150 + 151 139 116 + 141 151 116 + 152 92 119 + 126 92 152 + 153 103 121 + 123 103 153 + 154 90 120 + 122 90 154 + 155 121 89 + 118 155 89 + 156 108 122 + 128 108 156 + 157 96 130 + 112 96 157 + 158 119 112 + 157 158 112 + 159 127 125 + 160 127 159 + 143 127 160 + 161 125 126 + 159 125 161 + 162 134 136 + 163 134 162 + 135 134 163 + 164 136 137 + 162 136 164 + 165 124 123 + 166 165 123 + 153 166 123 + 167 129 128 + 168 167 128 + 156 168 128 + 169 140 138 + 170 140 169 + 150 140 170 + 171 138 139 + 169 138 171 + 172 130 131 + 173 130 172 + 157 130 173 + 174 131 132 + 172 131 174 + 175 132 133 + 174 132 175 + 176 133 135 + 175 133 176 + 177 152 119 + 158 177 119 + 178 135 163 + 176 135 178 + 179 155 118 + 144 179 118 + 180 161 126 + 152 180 126 + 181 120 150 + 154 120 181 + 182 144 145 + 179 144 182 + 183 145 146 + 182 145 183 + 184 164 137 + 142 184 137 + 185 142 147 + 184 142 185 + 186 147 148 + 185 147 186 + 187 148 149 + 186 148 187 + 188 141 117 + 143 188 117 + 189 151 141 + 188 189 141 + 190 143 160 + 188 143 190 + 191 150 170 + 181 150 191 + 192 157 173 + 158 157 192 + 193 124 165 + 149 124 193 + 194 171 139 + 151 194 139 + 195 146 129 + 167 195 129 + 196 153 121 + 155 196 121 + 197 166 153 + 196 197 153 + 198 122 154 + 156 122 198 + 199 168 156 + 198 199 156 + 200 160 159 + 161 200 159 + 201 162 164 + 202 162 201 + 163 162 202 + 203 169 171 + 204 169 203 + 170 169 204 + 205 165 166 + 206 165 205 + 193 165 206 + 207 167 168 + 208 167 207 + 195 167 208 + 209 172 174 + 210 172 209 + 173 172 210 + 211 174 175 + 209 174 211 + 212 175 176 + 211 175 212 + 213 151 189 + 194 151 213 + 214 163 202 + 178 163 214 + 215 196 155 + 179 215 155 + 215 197 196 + 216 179 182 + 215 179 216 + 217 149 193 + 187 149 217 + 218 198 154 + 181 218 154 + 218 199 198 + 219 191 170 + 204 219 170 + 220 181 191 + 218 181 220 + 221 176 178 + 212 176 221 + 222 182 183 + 216 182 222 + 223 193 206 + 217 193 223 + 224 180 152 + 177 224 152 + 225 189 188 + 190 225 188 + 226 166 197 + 205 166 226 + 227 168 199 + 207 168 227 + 228 158 192 + 177 158 228 + 229 173 210 + 192 173 229 + 230 183 146 + 195 230 146 + 231 195 208 + 230 195 231 + 232 160 200 + 190 160 232 + 233 201 164 + 184 233 164 + 234 184 185 + 233 184 234 + 235 185 186 + 234 185 235 + 236 186 187 + 235 186 236 + 237 161 180 + 200 161 237 + 238 203 171 + 194 238 171 + 239 206 205 + 226 239 205 + 240 210 209 + 241 240 209 + 211 241 209 + 242 211 212 + 241 211 242 + 243 208 207 + 244 243 207 + 227 244 207 + 245 202 201 + 246 245 201 + 233 246 201 + 247 204 203 + 248 204 247 + 219 204 248 + 214 221 178 + 249 224 177 + 228 249 177 + 250 228 192 + 229 250 192 + 251 233 234 + 246 233 251 + 252 187 217 + 236 187 252 + 253 217 223 + 252 217 253 + 254 189 225 + 213 189 254 + 255 238 194 + 213 255 194 + 256 202 245 + 214 202 256 + 257 203 238 + 247 203 257 + 258 223 206 + 239 258 206 + 259 234 235 + 251 234 259 + 259 235 236 + 260 191 219 + 220 191 260 + 261 219 248 + 260 219 261 + 262 212 221 + 242 212 262 + 263 180 224 + 237 180 263 + 264 190 232 + 225 190 264 + 265 231 208 + 243 265 208 + 266 183 230 + 222 183 266 + 267 230 231 + 266 230 267 + 268 215 216 + 197 215 268 + 268 226 197 + 269 216 222 + 268 216 269 + 270 199 218 + 220 270 218 + 270 227 199 + 271 244 227 + 270 271 227 + 272 210 240 + 229 210 272 + 273 245 246 + 256 245 273 + 274 200 237 + 275 200 274 + 232 200 275 + 276 248 247 + 277 276 247 + 257 277 247 + 278 243 244 + 279 243 278 + 265 243 279 + 280 239 226 + 281 280 226 + 268 281 226 + 282 240 241 + 283 240 282 + 272 240 283 + 284 241 242 + 282 241 284 + 269 281 268 + 264 232 275 + 254 255 213 + 285 229 272 + 250 229 285 + 286 242 262 + 284 242 286 + 287 272 283 + 285 272 287 + 288 231 265 + 267 231 288 + 289 257 238 + 255 289 238 + 289 277 257 + 290 265 279 + 288 265 290 + 291 246 251 + 273 246 291 + 291 251 259 + 292 249 228 + 250 292 228 + 293 223 258 + 253 223 293 + 294 254 225 + 264 294 225 + 295 270 220 + 260 295 220 + 295 271 270 + 296 260 261 + 295 260 296 + 297 261 248 + 276 297 248 + 298 222 266 + 269 222 298 + 299 266 267 + 298 266 299 + 300 224 249 + 263 224 300 + 301 274 237 + 263 301 237 + 302 244 271 + 278 244 302 + 303 258 239 + 280 303 239 + 304 236 252 + 259 236 304 + 305 252 253 + 304 252 305 + 306 262 221 + 214 306 221 + 307 214 256 + 306 214 307 + 308 256 273 + 307 256 308 + 309 283 282 + 310 309 282 + 284 310 282 + 311 275 274 + 312 311 274 + 301 312 274 + 313 280 281 + 314 313 281 + 269 314 281 + 315 276 277 + 316 276 315 + 297 276 316 + 317 279 278 + 318 317 278 + 302 318 278 + 298 314 269 + 292 250 285 + 319 267 288 + 299 267 319 + 320 288 290 + 319 288 320 + 321 284 286 + 310 284 321 + 322 279 317 + 290 279 322 + 323 253 293 + 305 253 323 + 324 249 292 + 300 249 324 + 325 287 283 + 309 325 283 + 326 298 299 + 314 298 326 + 327 263 300 + 301 263 327 + 328 312 301 + 327 328 301 + 329 303 280 + 313 329 280 + 330 313 314 + 326 330 314 + 331 293 258 + 303 331 258 + 332 262 306 + 286 262 332 + 333 306 307 + 332 306 333 + 334 307 308 + 333 307 334 + 335 285 287 + 292 285 335 + 336 271 295 + 296 336 295 + 336 302 271 + 337 318 302 + 336 337 302 + 338 296 261 + 297 338 261 + 339 297 316 + 338 297 339 + 340 259 304 + 291 259 340 + 341 304 305 + 340 304 341 + 342 255 254 + 289 255 342 + 342 254 294 + 343 275 311 + 264 275 343 + 344 294 264 + 343 344 264 + 345 308 273 + 291 345 273 + 346 315 277 + 289 346 277 + 347 309 310 + 325 309 347 + 348 317 318 + 349 317 348 + 322 317 349 + 350 311 312 + 351 350 312 + 328 351 312 + 352 316 315 + 353 352 315 + 346 353 315 + 354 324 292 + 335 354 292 + 355 327 300 + 324 355 300 + 356 326 299 + 319 356 299 + 357 319 320 + 356 319 357 + 358 313 330 + 329 313 358 + 359 328 327 + 355 359 327 + 359 351 328 + 360 343 311 + 350 360 311 + 361 344 343 + 360 361 343 + 362 347 310 + 321 362 310 + 363 320 290 + 322 363 290 + 364 322 349 + 363 322 364 + 365 289 342 + 346 289 365 + 366 321 286 + 332 366 286 + 367 339 316 + 352 367 316 + 368 291 340 + 345 291 368 + 369 332 333 + 366 332 369 + 370 333 334 + 369 333 370 + 371 308 345 + 334 308 371 + 372 287 325 + 335 287 372 + 373 330 326 + 356 373 326 + 374 340 341 + 368 340 374 + 375 323 293 + 331 375 293 + 376 341 305 + 323 376 305 + 377 296 338 + 336 296 377 + 378 337 336 + 377 378 336 + 379 338 339 + 377 338 379 + 380 353 346 + 365 380 346 + 381 318 337 + 348 318 381 + 382 303 329 + 331 303 382 + 383 294 344 + 342 294 383 + 384 325 347 + 385 325 384 + 372 325 385 + 386 350 351 + 387 350 386 + 360 350 387 + 388 352 353 + 389 352 388 + 367 352 389 + 390 349 348 + 391 390 348 + 381 391 348 + 392 357 320 + 363 392 320 + 393 329 358 + 382 329 393 + 394 361 360 + 387 394 360 + 395 365 342 + 383 395 342 + 395 380 365 + 396 358 330 + 373 396 330 + 397 337 378 + 381 337 397 + 398 391 381 + 397 398 381 + 399 355 324 + 354 399 324 + 399 359 355 + 400 383 344 + 361 400 344 + 401 378 377 + 379 401 377 + 402 364 349 + 390 402 349 + 403 363 364 + 392 363 403 + 404 321 366 + 362 321 404 + 405 335 372 + 354 335 405 + 405 372 385 + 406 373 356 + 357 406 356 + 407 370 334 + 371 407 334 + 408 374 341 + 376 408 341 + 409 379 339 + 367 409 339 + 410 367 389 + 409 367 410 + 411 375 331 + 382 411 331 + 412 366 369 + 404 366 412 + 413 369 370 + 412 369 413 + 414 384 347 + 362 414 347 + 415 345 368 + 371 345 415 + 416 368 374 + 415 368 416 + 417 353 380 + 388 353 417 + 418 376 323 + 375 418 323 + 419 390 391 + 420 390 419 + 402 390 420 + 421 386 351 + 422 421 351 + 359 422 351 + 423 385 384 + 424 423 384 + 414 424 384 + 425 387 386 + 426 425 386 + 421 426 386 + 427 389 388 + 428 427 388 + 417 428 388 + 397 378 401 + 405 399 354 + 393 358 396 + 429 396 373 + 406 429 373 + 430 406 357 + 392 430 357 + 430 392 403 + 431 400 361 + 394 431 361 + 432 364 402 + 403 364 432 + 433 402 420 + 432 402 433 + 434 395 383 + 400 434 383 + 435 380 395 + 434 435 395 + 435 417 380 + 436 401 379 + 409 436 379 + 437 374 408 + 416 374 437 + 438 409 410 + 436 409 438 + 439 394 387 + 425 439 387 + 440 419 391 + 398 440 391 + 441 411 382 + 393 441 382 + 442 359 399 + 422 359 442 + 443 398 397 + 401 443 397 + 444 371 415 + 407 371 444 + 445 413 370 + 407 445 370 + 446 415 416 + 444 415 446 + 447 410 389 + 427 447 389 + 448 362 404 + 414 362 448 + 449 424 414 + 448 449 414 + 450 428 417 + 435 450 417 + 451 375 411 + 418 375 451 + 452 408 376 + 418 452 376 + 453 405 385 + 423 453 385 + 454 404 412 + 448 404 454 + 455 412 413 + 454 412 455 + 456 421 422 + 426 421 456 + 457 420 419 + 440 457 419 + 458 425 426 + 459 425 458 + 439 425 459 + 460 427 428 + 461 427 460 + 447 427 461 + 462 423 424 + 463 423 462 + 453 423 463 + 436 443 401 + 431 394 439 + 434 400 431 + 464 413 445 + 455 413 464 + 465 433 420 + 457 465 420 + 466 440 398 + 443 466 398 + 467 437 408 + 452 467 408 + 443 436 438 + 468 429 406 + 430 468 406 + 469 445 407 + 444 469 407 + 469 444 446 + 470 424 449 + 462 424 470 + 471 446 416 + 437 471 416 + 472 399 405 + 442 399 472 + 472 405 453 + 473 410 447 + 438 410 473 + 474 447 461 + 473 447 474 + 475 456 422 + 442 475 422 + 476 449 448 + 454 476 448 + 477 453 463 + 472 453 477 + 478 451 411 + 441 478 411 + 479 454 455 + 476 454 479 + 480 396 429 + 393 396 480 + 480 441 393 + 481 435 434 + 431 481 434 + 481 450 435 + 482 428 450 + 460 428 482 + 483 430 403 + 468 430 483 + 483 403 432 + 484 432 433 + 483 432 484 + 485 458 426 + 456 485 426 + 486 439 459 + 431 439 486 + 487 457 440 + 466 487 440 + 488 418 451 + 452 418 488 + 489 463 462 + 490 489 462 + 470 490 462 + 491 459 458 + 492 491 458 + 485 492 458 + 493 461 460 + 494 493 460 + 482 494 460 + 481 431 486 + 438 466 443 + 475 442 472 + 475 472 477 + 495 437 467 + 471 437 495 + 496 464 445 + 469 496 445 + 497 480 429 + 468 497 429 + 498 438 473 + 466 438 498 + 499 487 466 + 498 499 466 + 500 473 474 + 498 473 500 + 501 452 488 + 467 452 501 + 502 441 480 + 478 441 502 + 503 446 471 + 469 446 503 + 504 461 493 + 474 461 504 + 505 450 481 + 486 505 481 + 505 482 450 + 506 484 433 + 465 506 433 + 507 494 482 + 505 507 482 + 508 479 455 + 464 508 455 + 509 470 449 + 476 509 449 + 510 476 479 + 509 476 510 + 511 490 470 + 509 511 470 + 512 486 459 + 491 512 459 + 513 477 463 + 489 513 463 + 514 488 451 + 478 514 451 + 515 457 487 + 465 457 515 + 516 468 483 + 497 468 516 + 517 483 484 + 516 483 517 + 518 456 475 + 477 518 475 + 519 485 456 + 518 519 456 + 520 492 485 + 519 520 485 + 521 489 490 + 522 489 521 + 513 489 522 + 523 493 494 + 524 493 523 + 504 493 524 + 525 491 492 + 526 491 525 + 512 491 526 + 513 518 477 + 502 480 497 + 500 499 498 + 505 486 512 + 512 507 505 + 527 512 526 + 507 512 527 + 528 469 503 + 496 469 528 + 527 494 507 + 529 523 494 + 527 529 494 + 530 513 522 + 518 513 530 + 530 519 518 + 530 520 519 + 531 495 467 + 501 531 467 + 532 508 464 + 496 532 464 + 533 474 504 + 500 474 533 + 533 504 524 + 534 492 520 + 525 492 534 + 535 517 484 + 506 535 484 + 536 514 478 + 502 536 478 + 537 487 499 + 515 487 537 + 538 479 508 + 510 479 538 + 539 511 509 + 510 539 509 + 540 503 471 + 495 540 471 + 541 521 490 + 511 541 490 + 542 488 514 + 501 488 542 + 543 465 515 + 506 465 543 + 544 497 516 + 545 497 544 + 502 497 545 + 546 516 517 + 544 516 546 + 547 524 523 + 529 547 523 + 548 526 525 + 549 548 525 + 534 549 525 + 550 522 521 + 551 550 521 + 541 551 521 + 545 536 502 + 540 528 503 + 552 517 535 + 546 517 552 + 553 499 500 + 537 499 553 + 553 500 533 + 554 501 542 + 531 501 554 + 555 510 538 + 539 510 555 + 556 495 531 + 540 495 556 + 557 538 508 + 532 557 508 + 5 526 548 + 527 526 5 + 5 529 527 + 558 532 496 + 528 558 496 + 560 530 522 + 550 560 522 + 560 520 530 + 561 534 520 + 560 561 520 + 562 549 534 + 561 562 534 + 563 541 511 + 539 563 511 + 564 551 541 + 563 564 541 + 565 535 506 + 543 565 506 + 566 543 515 + 537 566 515 + 567 514 536 + 542 514 567 + 568 547 529 + 5 568 529 + 569 533 524 + 570 569 524 + 547 570 524 + 571 545 544 + 572 571 544 + 546 572 544 + 573 550 551 + 559 550 573 + 560 550 559 + 4 548 549 + 574 4 549 + 562 574 549 + 561 560 559 + 548 568 5 + 568 548 4 + 577 555 538 + 557 577 538 + 559 562 561 + 562 559 573 + 578 552 535 + 565 578 535 + 579 572 546 + 552 579 546 + 571 536 545 + 580 567 536 + 571 580 536 + 581 539 555 + 563 539 581 + 582 564 563 + 581 582 563 + 583 558 528 + 540 583 528 + 583 540 556 + 584 556 531 + 554 584 531 + 585 533 569 + 553 533 585 + 586 557 532 + 558 586 532 + 587 542 567 + 554 542 587 + 588 4 574 + 568 4 588 + 575 547 568 + 588 575 568 + 589 570 547 + 575 589 547 + 590 573 551 + 564 590 551 + 591 574 562 + 573 591 562 + 592 566 537 + 553 592 537 + 593 571 572 + 580 571 593 + 594 543 566 + 565 543 594 + 595 569 570 + 596 569 595 + 585 569 596 + 585 592 553 + 590 591 573 + 578 579 552 + 592 585 596 + 589 575 588 + 597 593 572 + 579 597 572 + 598 595 570 + 589 598 570 + 599 567 580 + 587 567 599 + 599 580 593 + 600 557 586 + 577 557 600 + 601 581 555 + 577 601 555 + 602 582 581 + 601 602 581 + 603 584 554 + 587 603 554 + 604 565 594 + 578 565 604 + 605 564 582 + 590 564 605 + 606 586 558 + 583 606 558 + 607 583 556 + 584 607 556 + 608 566 592 + 594 566 608 + 609 588 574 + 589 588 609 + 610 574 591 + 609 574 610 + 611 596 595 + 598 611 595 + 608 592 596 + 607 606 583 + 600 601 577 + 599 603 587 + 605 582 602 + 612 596 611 + 608 596 612 + 613 598 589 + 609 613 589 + 614 594 608 + 612 614 608 + 614 604 594 + 615 591 590 + 610 591 615 + 615 590 605 + 616 609 610 + 613 609 616 + 617 600 586 + 606 617 586 + 618 584 603 + 607 584 618 + 619 611 598 + 613 619 598 + 620 579 578 + 597 579 620 + 620 578 604 + 621 593 597 + 599 593 621 + 622 602 601 + 600 622 601 + 623 599 621 + 603 599 623 + 623 618 603 + 624 600 617 + 622 600 624 + 625 610 615 + 616 610 625 + 625 615 605 + 626 613 616 + 619 613 626 + 627 605 602 + 625 605 627 + 628 602 622 + 627 602 628 + 629 606 607 + 617 606 629 + 629 607 618 + 630 604 614 + 620 604 630 + 631 612 611 + 619 631 611 + 631 614 612 + 632 597 620 + 621 597 632 + 633 630 614 + 631 633 614 + 634 624 617 + 629 634 617 + 635 632 620 + 630 635 620 + 636 622 624 + 628 622 636 + 637 629 618 + 634 629 637 + 637 618 623 + 638 626 616 + 625 638 616 + 638 625 627 + 638 627 628 + 639 631 619 + 626 639 619 + 640 623 621 + 632 640 621 + 640 637 623 + 636 624 634 + 639 633 631 + 635 630 633 + 641 626 638 + 639 626 641 + 642 638 628 + 641 638 642 + 642 628 636 + 643 632 635 + 640 632 643 + 644 634 637 + 636 634 644 + 644 642 636 + 576 644 637 + 640 576 637 + 576 640 643 + 645 639 641 + 633 639 645 + 645 635 633 + 645 643 635 + 646 641 642 + 645 641 646 + 646 642 644 + 643 645 646 + 646 576 643 + 646 644 576 diff --git a/L05_TwoD_Cavity_BGK_OMP_1CPU/bin/cfd_para.hypara b/L05_TwoD_Cavity_BGK_OMP_1CPU/bin/cfd_para.hypara new file mode 100644 index 0000000..f903a5a --- /dev/null +++ b/L05_TwoD_Cavity_BGK_OMP_1CPU/bin/cfd_para.hypara @@ -0,0 +1,1467 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// PPPPP H H EEEEE N N GGGGG L EEEEE III + +// P P H H E NN N G L E I + +// PPPPP HHHHH EEEEE N N N G GG L EEEEE I + +// P H H E N N N G G L E I + +// P H H EEEEE N N GGGGG LLLLL EEEEE III + +//------------------------------------------------------------------------+ +// Platform for Hybrid Engineering Simulation of Flows + +// China Aerodynamics Research and Development Center + +// (C) Copyright, Since 2010 + +// PHengLEI 2212 + +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +########################################################################### +# Default parameters for Grid conversion # +########################################################################### +// gridtype: Grid type for generation, conversion, reconstruction, merging. +// 0 -- Unstructured grid. +// 1 -- Structured grid. +// 2 -- Hybrid grid, include both of unstructured and structured grid. +// gridobj: Task type of grid treatment. +// 0 -- Grid generation of typical case, such as cylinder, flat plate, etc. +// 1 -- Grid conversion, from other grid data to PHenglEI, such as Fluent, CGNS. +// 2 -- Grid refinement. +// 3 -- Grid merging, merge two blocks into one block. +// 4 -- Grid deformation, achieve unstructured grid deformation. +// 5 -- Grid repairing, repair the original grid in order to remove the negative volume cells. +// 6 -- Grid mirroring, mirror a symmetry grid to whole grid. +// 7 -- Grid type change, convert structured grid to unstructured grid. +// multiblock: Multi-block grid or not, only for structured grid conversion. +// 0 -- Not. +// 1 -- Yes. +// iadapt: Adaptation number for unstructure grid. +// SymmetryFaceVector: The vector of symmetry face. +// 0 -- X axis. +// 1 -- Y axis. +// 2 -- Z axis. +// gridReorder: Reorder cell and face of grid or not, only for 3D unstructured grid conversion, +// which is CGNS type. +// 0 -- Not. +// 1 -- Yes. +// faceReorderMethod: the reorder method face of unstructured grid. +// 0 -- BSFCELLFACEORG. +// 1 -- BSFCELLFACELEFT. +// 2 -- BSFCELLFACERIGHT. +int gridtype = 0; +int gridobj = 1; +int multiblock = 0; +int iadapt = 0; +int SymmetryFaceVector = 1; +int gridReorder = 0; +int faceReorderMethod = 0; + +// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating. +// axisRotateOrder : axis rotating order. +// 1 -- X-axis. +// 2 -- Y-axis. +// 3 -- Z-axis. +// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order. +int nAxisRotateTimes = 0; +int axisRotateOrder[] = [1, 2, 3]; +double axisRotateAngles[] = [0.0, 0.0, 0.0]; + +// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". +// 0 -- Interface. (default) +// 1 -- Physical boundary condition, used in Hybrid solver. +int omit_no_bound_bc = 0; +int omitRepeatInterface = 1; + +//----------------------------------------------------------------------- +# Grid data type # +//----------------------------------------------------------------------- +// from_gtype/to_gtype: Type of grid data type in grid conversion process. +// -1 -- MULTI_TYPE. +// 1 -- PHengLEI, *.fts. +// 2 -- CGNS, *.cgns. +// 3 -- Plot3D type of structured grid, *.dat/*.grd. +// 4 -- Fieldview type of unstructured grid, *.dat/*.inp. +// 5 -- Fluent, *.cas/*.msh. +// 6 -- Ustar, mgrid.in. +// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. +// 8 -- GMSH, *.msh. +// 9 -- Gridgen type of structured grid, *.dat/*.grd. +// dumpOldGrid: If dump out the old grid file. +// 0 -- Not. (default) +// 1 -- Yes. +int from_gtype = 2; +int to_gtype = 1; +int dumpOldGrid = 0; + +//----------------------------------------------------------------------- +# File path # +//----------------------------------------------------------------------- +// from_gfile: path of original data file for unstructure grid convert from. +// out_gfile: path of target file for grid convert to, *.fts type of file usually. +int numberOfGridFile = 1; +string from_gfile = "./grid/rae2822_hybrid2d.cas"; +string from_gfile1 = ""; +string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; + +// ----------------- some advanced choices ------------------------------ +// iunsteady: The Grid is for unsteady simulation or not. +int iunsteady = 0; + +// fileformat: Ustar Grid file format. +// 0 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// Parameters for hybrid solver. +// mixgrid_uns: path of unstructure grid file for hybrid solver, *.fts type. +// mixgrid_str: path of structure grid file for hybrid solver, *.fts type. +string mixgrid_uns = "./grid/rae2822_uns2d_4.fts"; +string mixgrid_str = "./grid/flat_laminr_133_85_2d.fts"; + +// Some parameters for structured overlapping grid. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Grid Refine Parameters ----------------------------- +// anisoRefine: If refine grid by anisoRefine type. +// 0 -- Not. (default) +// 1 -- Yes. +// geometryUnit: Geometry unit. +// 1 -- meter. +// 2 -- millimeter. +// 3 -- inch. +// exclusiveCase: Parallel projection exclusive case. +// 0 -- NON case. +// 1 -- JSM-C2-NPOFF case. +// 2 -- CHNT. +// projectOrgPoint: If the original wall points need to be projected or not. +int anisoRefine = 0; +int geometryUnit = 1; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; +int projectOrgPoint = 0; +string geometryFileName = "./grid/jsm.igs"; + +// ----------------- Grid Deform Parameters ----------------------------- +// deformationMethod: Grid Deform. +// 1 -- SPRING. +// 2 -- RBF. +// stationalGridFile: Original grid file. +// visualFileName : The visualization file path of deform grid. +// nDeformStep : The max deform step. +// flapAngle : The max flap angle. +// rotatePostionZ : Rotate postion. +// rotatePostionY : Rotate postion. +// gridSlice : If dump slice grid. +// sliceAxis : Grid slice axis. +// slicePosition : Grid slice position. +int nDeformStep = 40; +double flapAngle = 10.0; +double rotatePostionZ = 4.00003; +double rotatePostionY = 3.05; + +int deformationMethod = 2; +string stationalGridFile = "./grid/Segment2Brid.fts"; +string visualFileName = "./results/deformedGrid.dat" + +int gridSlice = 1; +int sliceAxis = 1; +double slicePosition = 13; + +// ----------------- RBF Parameters ------------------------------------- +// numberOfReferenceCP: Number of reference Control Points. +// influencePara : The RBF influence radius parameter. +int numberOfReferenceCP = 40; +double influencePara = 25.0; + +// ----------------- Periodic Parameters -------------------------------- +// Notice: Rotational periodicity only support rotation along the X axis! +// periodicType: Which periodic boundary is used. +// 0 -- without Periodic Boundary. +// 1 -- Translational periodicity. +// 2 -- Rotational periodicity. +// translationLength[]: The relative distance between two periodic face + which only support one direction. +// rotationAngle: The relative angle between two periodic face. + which is recorded in degrees. +int periodicType = 0; +double translationLength[] = [0.0, 0.0, 0.0]; +double rotationAngle = 0.0; + +######################################################################### +# Default parameters for Partition # +######################################################################### +// pgridtype: The grid type. +// 0 -- unstruct grid. +// 1 -- struct grid. +// 2 -- refine structured grid. +// maxproc: The number of partition zones that want to be divided into. +// numberOfMultifile: The number of partition grid files that want to be dumped out. +int pgridtype = 0; +int maxproc = 4; +int numberOfMultifile = 1; + +// traceMark: Trace mark or not, only for structured grid partition. +// 0 -- Not. +// 1 -- Yes. +// blockIndexOfMark: the block index of mark, only for structured grid partition. +// cellIndexOfMark : the cell index of mark, only for structured grid partition. +int traceMark = 0; +int blockIndexOfMark = 0; +int cellIndexOfMark[] = [185, 30, 1]; + +// parallelStrategy: +// 0 -- each zone is assigned to the one that defined in grid partition procedure. +// 1 -- random assigned for each zone or by some else ways. +int parallelStrategy = 1; + +//----------------------------------------------------------------------- +# File path # +//----------------------------------------------------------------------- +// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts). +// partition_grid_file: Target partition grid file(PHengLEI type, *.fts). +string original_grid_file = "./grid/sphere_mixed.fts"; +string partition_grid_file = "./grid/sphere_mixed__4.fts"; + +// ------------------ Sompe advanced parameters ------------------------- +// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". +// 0 -- Interface. (default) +// 1 -- Physical boundary condition, used in Hybrid solver. +// npartmethod: Method of interface reconstruction, default is 1. +// parallelPartitionMethod: Method of parallel partition, this is set only when execute parallel partition. It would be skipped when serial partition. +// 1 -- Using ParMetis for homogeneous MPI. +// 2 -- Using Metis for homogeneous MPI. +// 3 -- using METIS partition for homogeneous OpenMP. +// parmetisBalance: Used to specify the imbalance tolerance. +// 1 -- perfect balance. +// maxproc -- perfect imbalance. +// 1.05 -- recommended. +int omit_no_bound_bc = 0; +int npartmethod = 1; +int parallelPartitionMethod = 2; +double parmetisBalance = 1.05; + +// numberOfMultigrid: Number of multi-grid levels, ONLY used for structured grid. +// 1 -- single level. +// 2 -- 2 level. +// N -- N level, ..., et al. +int numberOfMultigrid = 1; + +######################################################################### +# Default parameters for CFD simulation # +######################################################################### +// maxSimuStep: The max simulation step, don't care simulation is restart or not. +// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved. +// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved. +// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +int maxSimuStep = 20000; +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepSample = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 1; + +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) +// Kprec: The coefficient K for the cut-off velocity. +// 1.0~3.0 is suggested. (default, 3.0) +// preconFarfieldBCMethod: The precondition method for farfield boundary condition. +// 0 -- precondition far-field boundary based on riemann invariants. +// 1 -- Turkel's simplified far-field boundary condition. +int ifLowSpeedPrecon = 0; +double Kprec = 3.0; +int preconFarfieldBCMethod = 1; + +//----------------------------------------------------------------------- +# CFD Control Parameter # +//----------------------------------------------------------------------- +// refMachNumber: Mach number. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// inflowParaType: The type of inflow parameters. +// 0 -- the nondimensional conditions. +// 1 -- the flight conditions. +// 2 -- the experiment conditions. +// 3 -- the subsonic boundary conditions. (Useless!) +// 4 -- the condition that the velocity, temperature and density are given. +// 5 -- the condition that the velocity, temperature and pressure are given. +//flowInitMethod: Flow field initialization method. +// 0 -- The entire flow field is initialized according to Infinite velocity. +// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate. +// refReNumber: Reynolds number, which is based unit length, unit of 1/m. +// refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition. +// freestream_vibration_temperature: Dimensional freestream vibration temperature. +// refDimensionalPressure: Dimensional reference pressure, or the total pressure only for the experiment condition. +// height: Fly height, unit of km. +// wallTemperature: Temprature of the solid wall, minus value is for adiabatic boundary condition. +// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter. Common dimensions like: +// 1 dm = 0.1 m. +// 1 cm = 0.01 m. +// 1 mm = 0.001 m. +// 1 inch = 0.0254 m. +// 1 foot = 12 inches = 0.3048 m. +// 1 yard = 3 feet = 0.9144 m. +// forceReferenceLength, forceReferenceLengthSpanWise, forceReferenceArea: Reference length, SpanWise length and area, independent of grid unit. +// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent of grid unit. +// radiationCoef: The radiation coefficient on wall, it is used to compute the radiation heat flux on wall when the boundary +// condition is radiation equilibrium temperature, and 0.8 is the default value. +// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. +// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. +int directionMethod = 0; +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; +int flowInitMethod = 0; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 300.00; + +//int inflowParaType = 1; +//double height = 0.001; + +//int inflowParaType = 2; +//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). +//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). + +// The velocity, temperature and density are fixed. +//int inflowParaType = 4; +//double refDimensionalVelocity = 1000.0; +//double refDimensionalDensity = 1.0e3; + +// The velocity, temperature and pressure are fixed. +//int inflowParaType = 5; +//double refDimensionalVelocity = 1000.0; +//double refDimensionalPressure = 1.0e5; + +// The MachNumber, temperature and pressure are fixed. +//int inflowParaType = 6; +//double refDimensionalTemperature = 293.0; +//double refDimensionalPressure = 8886.06; + +// The velocity, temperature and pressure are read from file. +//int inflowParaType = 7; +//string weatherDataFilePath = "./WRFData/"; +//double longitude = 110.95 +//double latitude = 19.61; + +double wallTemperature = -1.0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; +double gridTranslationVector[] = [0.0, 0.0, 0.0]; + +int numberOfAerodynamicForceComponents = 1; +double forceReferenceLengthSpanWise = 1.0; // unit of meter. +double forceReferenceLength = 1.0; // unit of meter. +double forceReferenceArea = 1.0; // unit of meter^2. +double TorqueRefX = 0.0; // unit of meter. +double TorqueRefY = 0.0; // unit of meter. +double TorqueRefZ = 0.0; // unit of meter. +double knudsenLength = 1.0; // unit of meter. +double refMolecularWeight = 28.9644; // unit of g/mol. + +//----------------------------------------------------------------------- +# Spatial Discretisation # +//----------------------------------------------------------------------- +#************************************************************************ +# Struct Solver * +#************************************************************************ +// inviscidSchemeName: Spatial discretisation scheme of struct grid. +// Using this when solve structered grid or hybrid. +// -- "vanleer", "steger", "hlle", "lax_f", +// -- "roe", "modified_roe", +// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". +// isWennScheme: If using WENN Scheme of struct grid. +// 0 -- NO. (default) +// 1 -- Yes. +// str_limiter_name: Limiter of struct grid. +// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth", +// -- "nolim", no limiter, +// -- "vanalbada_clz", clz supersonic version, +// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3". +string inviscidSchemeName = "roe"; +int isWennScheme = 0; +string str_limiter_name = "vanalbada"; + +#************************************************************************ +# UnStruct Solver or Common * +#************************************************************************ +// viscousType: Viscous model. +// 0 -- Euler. +// 1 -- 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", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle", +// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". +// uns_limiter_name: Limiter of Unstruct grid. +// -- "barth", "vencat", "vanleer", "minmod", +// -- "vanalbada", "smooth", "nnd", "lpz", "1st", +// -- "nolim", no limiter. +// uns_vis_name: Discretisation method of viscous term. +// -- "std", "test", "aver", "new1", "new2". +// gradientName: Gradient reconstruction method. +// -- "default", "ggcell", "ggnode", "lsq". +// ivencat: Variation of vencat limiter. +// 0 -- org method, it is independent of grid scale. +// 1 -- new method, it is dependent of grid scale. +// 4 -- Ustar limiter model, without grid size unitary. +// 7 -- default used. +// venkatCoeff: Cofficient of vencat, when using vencat limter. +// limitVariables: Limit model (It is useful only if limitVector is 0). +// 0 -- limit only for pressure and denstiny, then get the min value. +// 1 -- limit for every variables, then get the min value. +// limitVector: +// 0 -- Each variable use the same limiter coefficient. +// 1 -- Each variable use the respective limiter coefficients. +// reconmeth: +// 0 -- When reconstruct face value, Q+, Q- use respective limiter coefficients. +// 1 -- Q+, Q- use the min limiter coefficients of left and right cell. +// skewnessAngle: The skewness angle of grid cells. +// roeEntropyFixMethod: Entropy fix (correction) method. +// 1 -- direct fix, which limits the minimum eigenvalue directly. +// 2 -- multi-dimensional fix, which is derived from structured solver and now is only valid for struct solver. +// 3 -- Harten type, which is default used. +// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. +// It is used to scale the default Roe entropy fix coefficients. +// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0. + +//int viscousType = 0; +//string viscousName = "Euler"; + +//int viscousType = 1; +//string viscousName = "laminar"; + +int viscousType = 3; +string viscousName = "1eq-sa"; + +//int viscousType = 4; +//string viscousName = "2eq-kw-menter-sst"; + +int DESType = 0; + +string uns_scheme_name = "roe"; +string uns_limiter_name = "vencat"; +string uns_vis_name = "test"; +string gradientName = "ggnode"; + +int ivencat = 7; +double venkatCoeff = 5.0; +int reconmeth = 1; +int limitVariables = 0; +int limitVector = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 1.0; + +double AusmpwPlusLimiter = 1.0; + +#************************************************************************ +# Temporal Discretisation * +#************************************************************************ +// iunsteady: Steady or unsteady. +// 0 -- steady. +// 1 -- unsteay. +// physicalTimeStep: The nondimensional physical time step. +// ifStartFromSteadyResults: The unsteady simulation is start from steady flowfield or not, 0 is for no and else is for yes. +// ifStaticsFlowField: Statistical variables for unsteady simulation. +// ifStaticsReynoldsStress: Statistical Reynolds stress for unsteady simulation. +// startStatisticStep: Outer step when start statistics. +// when the value is larger than "maxSimuStep", it is useless. +// statisticalTimePeriod: Used as time period of statistic analysis. +// when the value is negative, time period is treated as infinite. +// statisticMethod: Statistic reynolds stress method. +// 0 -- tau = - ^2 +// 1 -- tau = +// min_sub_iter: The min sub iteration of unsteady simulation. +// max_sub_iter: The max sub iteration of unsteady simulation. +// tol_sub_iter: The tolerance of sub iteration of unsteady simulation. +// tscheme: Temporal Discretisation method. +// 1 -- Runge-Kutta Multi-State. +// 2 -- Point implicit. +// 3 -- Full implicit. +// 4 -- LU-SGS. +// 5 -- Block LU-SGS. +// 6 -- Jacobian iteration. +// 7 -- Line LU-SGS. +// 8 -- Matrix LU-SGS. +// 9 -- GMRES. +// 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. +// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration. +// OriginalTscheme : Used for LUSGS and GMres hybrid computing. +// useLUSGSprecond: Initialize flow field for GMRES. +// 0 --Initialize by first order Jacobian matrix. +// 1 --Initialize by LUSGS. +// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field. +// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) +// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. +// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. +// LUSGSTolerance: Sub iter tolerance of LU-SGS or Block LU-SGS. +// ifLocalTimeStep: Time step method. +// 0 --Local. +// 1 --Global. +// isUseLocalCFL: use variable number of CFL or not. +// 0 -- global unified CFL number. +// 1 -- local CFL number. +// isUsePreTwall: use the previous temperatures on wall. 1 indicates yes, and 0 indicates no. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// codeOfAleModel: Arbitrary Lagrangian-Eulerian method. +// 0 -- no ALE method. +// 1 -- ALE method for non-moving grids. +// 2 -- ALE method for moving grids. +// 3 -- ALE method for deforming grids. +// wallFunctionType: The type of wall function to implement. +// 0 -- no wall function. (default) +// 1 -- standard wall function. +// 2 -- Pab3D wall function. +// RKStage: The number of Runge-Kutta step. +// lamda: Cofficient of Runge-Kutta step. +int iunsteady = 0; +double physicalTimeStep = 0.01; +double physicalTimeStepDimensional = -0.001; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int ifStaticsReynoldsStress = 0; +int startStatisticStep = 800000; +double statisticalTimePeriod = -1.0; +int statisticMethod = 0; +int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2. + +int methodOfDualTime = 3; +int min_sub_iter = 50; +int max_sub_iter = 50; +double tol_sub_iter = 0.01; + +int tscheme = 4; +int iSimplifyViscousTerm = 1; +int ifLocalTimeStep = 0; +int isUseLocalCFL = 0; +int isUsePreTwall = 0; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; +double GMRESCFLScale = 1.0; +int OriginalTscheme = 9; +int useLUSGSprecond = 1; +int GMRESInitStep = 1000; +double pMaxForCFL = 0.2; +double pMinForCFL = 0.1; +double deltaMaxForCFL = 0.2; +double magnifyFactorForCFL = 1.1; +double reduceFactorForCFL = 0.5; + +double ktmax = 1.0e10; + +int swapDq = 1; + +int nLUSGSSweeps = 1; +double LUSGSTolerance = 0.01; +int order = 2; + +double visl_min = 0.01; +double turbCFLScale = 1.0; +double csrv = 1.0; +double timemax = 1.0e10; +double dtsave = -1.0; +int maxale = 10; +double dtau = 0.001; + +int wallFunctionType = 0; + +int RKStage = 2; +double lamda[] = [0.5, 1.0]; + +//int RKStage = 1; +//double lamda[] = 1.0; + +//int RKStage = 4; +//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; +#************************************************************************ +# File In or Out * +#************************************************************************ +// numberOfGridGroups: The number of grid groups. +// gridfile: The partitioned Grid file path, using relative path, +// which is relative to the working directory. +// IMPORTANT WARNING: The file index should be ignored, +// e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts, +// please use 'rae2822_hybrid2d__4.fts' here! +// plotFieldType: If dump out the field results to visulization. +// walldistMethod: The method to compute wall distance. +// 0 -- accurate but not fast enough. +// 1 -- fast but not accurate enough. +// 2 -- super fast but more non-accurate! +// resSaveFile: The file path to save the residual convergence process, write data for every default (intervalStepRes) steps. +// turbresfile: The file path to save the residual convergence process of turbulence, write data for every default (intervalStepRes) steps. +// aircoeffile: The file path to save the aerodynamic force coefficients convergence process, write data for every default (intervalStepForce) steps. +// restartNSFile: The file path to write restart flowfield variables, write data for every default (intervalStepFlow) steps. +// turbfile: The file path to write restart flowfield variables of turbulence , write data for every default(intervalStepFlow) steps. +// visualfile: The visualization file path of flowfield, write data for every default (intervalStepPlot) steps. +// wall_aircoefile: The file path to save flowfield variables of wall, write data for every default steps. +// nDumpSurfaceInfo = 0 the "wall_varfile" write the informations including heat flux. +// nDumpSurfaceInfo = 1 the "wall_varfile" write the informations without heat flux. +// nIsComputeWallDist: Whether to compute the wall distance. +// 0 -- Compute wall distance. +// 1 -- Not compute. +// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. +// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; +string wallTemperaturefile = ""; + +int nIsComputeWallDist = 0; +int walldistMethod = 1; +int cellMethodOrNodeMethod = 0; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string transitionResFile = "results/transitionRes.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "results/flow.dat"; +string turbfile = "results/turb.dat"; +string transitionFile = "results/transition.dat"; + +string visualfile = "results/tecflow.plt"; +string wall_aircoefile = "results/wall_aircoef.dat"; +string samplefile = "results/sample.dat"; + +string protectionFile0 = "results/flow0.dat"; +string protectionFile1 = "results/flow1.dat"; +string wall_heatfluxfile = "results/wall_heatflux.dat"; + +string protectionTurbFile0 = "results/turb0.dat"; +string protectionTurbFile1 = "results/turb1.dat"; + +string protectionTransitionFile0 = "results/transition0.dat"; +string protectionTransitionFile1 = "results/transition1.dat"; + +int nDumpSurfaceInfo = 0; +string wall_varfile = ""; + +string sixDofFileName = "results/sixDofInfo.dat"; +string derivativeFileName = "results/identify.dat"; +string hysteresisFileName = "results/force_beta.plt"; + +int plotFieldType = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. +// 2 -- Ensight binary. +// 3 -- Ensight ASCII. +int visualfileType = 1; + +// samplefileMode: The dump mode of sample file. +// 0 -- dump out every probe/line/surface data for all step intervals. +// 1 -- dump out all probe/line/surface data for every step intervals. +int samplefileMode = 0; + +// visualSlice: The slice of tecflow. +// 0 -- Do not save slice data. +// 1 -- comput and save it to sliceFile. +// sliceAxis: Normal vector of slice. +// 1 -- X_DIR. +// 2 -- Y_DIR. +// 3 -- Z_DIR. +// slicePostion: Coordinate of slice. + +int visualSlice = 0; +int sliceAxis = 1; +double slicePostion = -0.5; +string sliceFile = "results/Slice.plt"; +int dumpWallFaceCenter = 0; + +// min-max box of the visual block. +double lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [1.0 1.0 1.0]; + +//-----------the optional parameters list for the flow field output---------------- +// nVisualVariables: Number of variables want to be dumped for tecplot visualization. +// visualVariables : Variable types dumped, listed as following: +// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6), +// -- viscosityLaminar(7), viscosityTurbulent(8), +// -- vorticity_x(9), vorticity_y(10), vorticity_z(11), vorticityMagnitude(12), +// -- strain_rate(13), Q_criteria(14), Cp(15), timeStep(16), volume(17), +// -- modeledTKE(18), modeleddissipationrate(19), SSTF1(20), SSTF2(21), +// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), +// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), +// -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52), +// -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58), +// -- overlap iblank(iblank, 81), +// -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62). +// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! +// Variables order must from small to big. +//-----------the optional parameters list for the wall boundary condition---------------- +// nVisualWallVariables: The number of visual variables on wall. +// visualWallVariables : dumped variable types, listed as following: +// -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4), +// -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8), +// -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11), +// -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15), +// -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19), +// -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24). +int nVisualVariables = 8; +int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; + +int nVisualWallVariables = 9; +int visualWallVariables[] = [0, 1, 2, 3, 4, 5, 9, 10, 11]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +// ifSetDataMonitor: Whether to set the data monitor. +// 0 -- No. +// 1 -- Yes. +// dataMonitorType: The type of data Monitor. +// 0 -- Probes data monitor. +// 1 -- Lines data monitor. +// 2 -- Surfaces data monitor. +// probesDefineFile: Probes location information file. +// nLines: The number of lines need to be monitored. +// linesDefineFile: Lines location information file. +// nSurfaces: The number of surfaces need to be monitored. +// surfacesDefineFile: Surfaces location information file. +// searchCellsMethod: method to search the cell of each probe. +// 0 -- Nearest cell to the probe. +// 1 -- Real cell where the probe is located. +// nProbeVariables: Number of variables want to be dumped for probes monitered. +// probeVariables : Variable types dumped, listed as following: +// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6), +// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9), +// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12). +// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! +// probeVariables order must from small to big. +// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. +// 0 -- Take the value of probe's cell as probe real value. +// 1 -- Interpolation from probe's and neighbouring cell to probe. +// 2 -- Interpolation from probe's cell nodes to probe. +int ifSetDataMonitor = 0; + +int dataMonitorType = 0; +string probesDefineFile = "bin/probes_XYZ.dat"; + +//int dataMonitorType = 1; +//int nLines = 1; +//string linesDefineFile = "bin/lines_XYZ.dat"; + +//int dataMonitorType = 2; +//int nSurfaces = 4; +//string surfacesDefineFile = "bin/surfaces_XYZ.dat"; + +int searchCellsMethod = 0; + +int nProbeVariables = 14; +int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]; +int probeVariablesInterpolationMethod = 0; + +#************************************************************************ +# Turbulence Parameter * +#************************************************************************ +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. +// transitionType: transition model type +// 0 -- none. +// 2 -- gama-re-theta. +// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition. +// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not. +int turbInterval = 1; +int turbOrderStruct = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double freeStreamViscosity = 1.0e-3; +double muoo = 3.0; +double kwoo = 5.0; +int transitionType = 0; +double turbIntensity = -1.0; +int freeturbIntensitySRModify = 0; +double freeDecayXLocation = 0.0; +int compressibleCorrection = 0; +int transitionMaFix = 1; + +// maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +int monitor_vistmax = 0; + +#************************************************************************ +# LES Parameter * +#************************************************************************ +// iLES: Create LESSolver or not. +// = 1 -- Create LESSolver; +// != 1 -- not. +// amplitudeofDisturb: Amplitude of adding disturb. +// disturbstep: Unsteady time step or steady iteration of adding random disturb. +// iterdisturb: Add random disturb in every sub-iter or only first sub-iter. +// = 0 -- in only first sub-iter; +// != 0 -- in every sub-iter. +// ipraddisturb: Add density and pressure disturb or not. +// ibodyforce: Add body force in source flux of NS equations or not. +// = 0 -- not; +// != 0 -- Add body force. +// bodyforce: Body force in source flux of NS equations or not. +// utau: friction velocity, using in DNSDisturb. +// sgsmodel: subgrid scale model. +// = "smagorinsky"; +// = "dsmCom"; +// = "wale"; +// = "sigma". +// deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak); +// = 2 -- pow(deltai * deltaj *deltak, 1/3); +// = 3 -- Devloped by Scotti. +// wallDampingFunctionType: = 0 -- no wall function; +// = 1 -- van Driest; +// = 2 -- developed by Dr. Deng Xiaobing; +// = 3 -- developed by Piomelli. +// turbViscousCutType: turbulent viscosity cut type. +// = 0 -- mu_total = mut + mul; +// = 1 -- mu_total = max(mut-mul, 0) + mul; +// = 2 -- mu_total = max(mut , 0) + mul. +// smagConstant: constant of smagorinsky model. +// waleConstant: constant of wale model. +// filterDirection [3]: filter variables in i, j, k direction or not. +// averageDirection[3]: average variables in i, j, k direction or not. +// isotropicConstant: constant of isotropic part of SGS stress. +int iLES = 0; +string sgsmodel = "smagorinsky"; +int deltaFunctionType = 2; +int wallDampingFunctionType = 1; +int turbViscousCutType = 2; +double smagConstant = 0.1; +double isotropicConstant = 0.0; +double waleConstant = 0.6; +double sigmaConstant = 1.35; +int filterDirection[] = [1, 1, 0]; +int averageDirection[] = [0, 0, 0]; +double testFilterScale = 2.0; +int averageWidth = 1; +int monitorNegativeConstant = 0; + +#************************************************************************ +# Other Parameters for Hypersonic Non-equilibrium Gas * +#************************************************************************ +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- gas model is fixed in the codes. +// 1 -- gas model is imported from library files. +// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nGasModel: The type of gas. less than and equal to 1 represents the mixture gas. +// Otherwise, the pure gas with one component is used for perfect gas. +// 0 -- Earth gas. +// 1 -- Mars gas. +// 2 -- Argon. +// 3 -- Nitrogen. +// nEnergyRecycle: The type of EnergyModel Recycle. +// 0 -- not used. +// 1 -- used. +// nDensityModify: The type of densitymodify. +// 0 -- not used. +// 1 -- used. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. +// 0 -- perfect gas. +// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. +// nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. +// The value equals to or is greater than 1, and 3 is for default value. +// nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. +// The value equals to or is greater than 1, and 3 is for default value. +// nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. +// The value equals to or is greater than 1, and 3 is for default value. +// nSlipBCModel: The computational model of slip boundary conditions. +// 0 -- no slip. +// 1 -- the conventional Maxwell slip conditions. +// 2 -- the Gokcen slip conditions. +// 3 -- the Knudsen-layer correction of the standard slip conditions proposed by Lockerby, et al. +// 4 -- the Kogan simplified slip conditions. +// nMeanFreePathType: the method to the mean free-path for the slip conditions. For the mixture, 0 is suggested. +// 0 -- the equivalent mean free-path is calculated by the simple hard sphere model(HS). +// 1 -- calculated by the definition that includes the variables of the number density and the molecule diameter. +// 2 -- the equivalent mean free-path is calculated by the variable hard sphere model(VHS). +// nchemsrc: +// 0 -- the source terms are not computed. +// 1 -- the source terms are computed. +// nchemrad: +// 0 -- compute the spectrum radius without considering chemical reaction flow. +// 1 -- compute the spectrum radius that need to count the contribution from chemical reaction flow. +// ntmodel: The thermodynamic temperature model. +// 1 -- One-temperature model. +// 2 -- Two-temperature model. +// 3 -- Three-temperature model. +// isUseNoneqCond: +// 0 -- compute the source terms without any conditions. +// 1 -- compute the source terms using the non-equilibrium condition. +// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value. +// nIdealState: whether take all gas species as ideal gas for gas-mixture process. +// 0 -- No. +// 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model. +// 0 -- the energy term is computed using the conventional method. +// 1 -- the energy term is computed using the polynomial fitting method. +// 2 -- the energy term is computed using the piecewise polynomial fitting method. +// parkVDPower: the power of translational-rotational temperature in the Park V-D(vibration-dissociation) coupling model. +// The value is in range of [0.0, 1.0], DPLR suggests 0.5, LAURA suggests 0.7, while 0.6 is given as default value. +// catalyticCoef: +// 0.0 -- full non-catalytic wall boundary condition. +// 1.0 -- full catalytic wall boundary condition. +// in range of (0.0, 1.0) -- partial catalytic condition, the value indicates the catalytic coefficient. +// nIsSuperCatalytic: the super catalytic condition for the fully catalytic wall, and assigned with the value of 1. +// 0 -- equilibrium condition for the fully catalytic wall where the mass fractions are assigned with the values of the free stream. +// 1 -- super catalytic condition for the fully catalytic wall where all the atomic components combine into molecular components. +// nTemperatureJump: the method to calculate the temperature jump. +// 0 -- calculated by the variables of heat conductivity and constant volume specific heat for each energy mode. +// 1 -- the general method where the iteration is calculated with the translation-rotation temperature. +// nSurfGradMethod: the method to compute the surface heating ratio. +// 0 -- the gradient of variable is computed with the first-order difference method. +// 1 -- the gradient of variable is computed with the Green-Guass integral method. +// nRapidFlowfield: initialize the flowfield using the rapid engineering method when it is greater than zero. +// nSurfHeatMonitor: To exam the surface heating change or not. 0 is no, 1 is yes. +// nInitPressureStep: the steps to initialize the boundary variables when the rapid method is used. 100 is the default value. +// nDumpCFLNumber: 1 indicates dumping the CFL number to file, 0 denotes no dumping. +// sigmaVelocity: the coordination coefficient of tangential momentum for computation of slip velocity. The value is in range of (0.0, 2.0]. +// sigmaTemperature: the heat coordination coefficient for computation of slip temperature. The value is in range of (0.0, 2.0]. +// sigmaMassFraction: the species coordination coefficient for computation of slip mass fractions. The value is in range of (0.0, 2.0]. +// velocitySlipCorrectConstant: the correction constant to the velocity slip condition. For the diffuse reflection, 1.0 is used. +// 1.0 -- proposed by Maxwell. +// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. +// 1.146 -- proposed for an additional "fictitious" velocity slip. +// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. +// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. +// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. +// nIsChemicalFreeze: the flag to freeze the chemical reactions. +// 0 -- not freeze, the chemical reaction sources will be calculated. +// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated. +// veTemperatureMin: The minimum of Tv and Te. +// maxViscous: the maximum of Viscous. +// trTemperatureMin: the minimum value of trTemperature. +// veTemperatureMin: the minimum value of veTemperature. +// densityMin: the minimum value of density. +// tAdjustmentFactor: magnification of temperature, this value is in range of (1.0, 10.0]. +// nDebug: cout the Wrong place and abort +// 0 -- not used. +// 1 -- used. +// nSpeciesLimit: limitter of gas species +// 0 -- not used. +// 1 -- used. +// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction. +// 0 -- method 0. +// 1 -- method 1. +// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid. +// 0 -- not used. +// 1 -- used. +// nViscosityPeModified: Pe Modified for ViscosityCoef. +// 0 -- not used. +// 1 -- used. +// nChemcalSourceModified: Modified on ChemcalSource. +// 0 -- not used. +// 1 -- used. +// nChemcalSourceEsMethod: Modified on ChemcalSource. +// 0 -- approximation algorithm 1 (Ori). +// 1 -- approximation algorithm 2 (New). +// nMaxStepTemperature: the iterative steps of temperature. +// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs. +// 0 -- not used. +// 1 -- used. +// nDiagonalModified: Modified on Diagonal. +// 0 -- not used. +// 1 -- new. +// nDiagonalModifiedTurb: Modified on Diagonal for turbulence. +// 0 -- not used. +// 1 -- new. +// nGradPrimtiveMethod: +// 0 -- Ori. +// 1 -- new. +// nAblation: +// 0 -- The wall ablation is not computed. +// 1 -- The wall ablation is computed. +// isInjection: +// 0 -- The injection velocity of ablation wall is not computed. +// 1 -- The injection velocity of ablation wall is computed. +// nViscosityModel: +// 0 -- Blottner fitting method(N89). +// 1 -- Gupta fitting method(N90). +// nContinueModel: The new continue model can switch different computation model. +// 0 -- Not use the new continue model. +// 1 -- use the new continue model. +// nSutherland: +// 0 -- stands for selecting the Blotter curve fits mode. +// 1 -- stands for Sutherland relation. +// gasfile: Indicates the gas model, 9 models are provided, namely "Gu5", "Gu7", "Gu11", "Pa5", "Pa7", "Pa11", "DK5", "DK7", "DK11". +// "Gu" -- indicates the Gupta Model, three-Type Models are embeded in the library, namely, the 5-species-6-reactions, the 7-species-9-reactions, the 11-species-20-reactions. +// "Pa" -- indicates the Park Model, three-Type Models are embeded in the library, namely, the 5-species-17-reactions, the 7-species-22-reactions, the 11-species-48-reactions. +// "DK" -- indicates the Dunn-Kang Model, three-Type Models are embeded in the library, namely, the 5-species-11-reactions, the 7-species-15-reactions, the 11-species-26-reactions. +// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. +// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. +// "Gas-Mixture" -- indicates the process of mixing gas without reacting. +// for struct solver mixing two species��SpeciesA, SpeciesB��. +// for unstruct solver mixing multi-species��O2 NO CO CO2 H2 N2 Air CH4��. +// For self-definition model, the gasfile is used to indicate the file path of the new gas model. +// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. +// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. +// ifStartFromPerfectGasResults: The chemical reaction simulation is start from perfect gas flowfield or not, 0 is for no and else is for yes. +// nIterFirstStep : the maximum number of iteration in the first step for the self-adaptive calculation. +// nIterSecondStep: the maximum number of iteration in the second step for the self-adaptive calculation. +// nIterThirdStep : the maximum number of iteration in the third step for the self-adaptive calculation. +// nEnergyAssembly: the vibration energy is computed with combined method which includes the fitting method and the molecular kinetic theory. +// 0 -- no, +// 1 -- yes. +// nControlVariable: the variable to computing the residual error that determines the convergence is meet or not in the one-temperature model. +// 0 -- the density. +// 1 -- the translation temperature. +// 2 -- the vibration temperature. +// 3 -- the electron temperature. +// 4 -- the pressure. +// 5 -- the mass fraction of oxygen. +// 6 -- the mass fraction of nitrogen. +// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. +// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. +// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. +// nProtectData: Use the continuation file data protection mechanism. +// 0 -- no. +// 1 -- yes. +// nTvChange: Judge whether the Tv equals Ttr. +// 0 -- yes. +// 1 -- no. +// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions. +// nFraction: the initial fractions type of species. +// 0 -- mass fraction. +// 1 -- mole fraction. +int dg_high_order = 0; +int iapplication = 0; +int isAdaptiveSolver = 0; +int nm = 5; +int nEquilibriumGas = 0; +int nPCWCycleStep = 3; +int nRETCycleStep = 3; +int nSLIPCycleStep = 3; +int nIterFirstStep = 1000; +int nIterSecondStep= 2000; +int nIterThirdStep = 2000; +int nEnergyAssembly = 0; +int nControlVariable = 1; +double firstStepError = 0.01; +double secondStepError = 0.001; +double thirdStepError = 0.001; +double predictCFLError = 0.1; + +double refGama = 1.4; +double prl = 0.72; +double prt = 0.90; +double sc_l = 0.5; +double sc_t = 0.5; + +int nGasModel = 0; +int nchem = 0; +int nchemsrc = 1; +int nchemrad = 1; +int ntmodel = 1; + +int nIdealState = 0; +int nEnergyRecycle = 1; +int nSlipBCModel = 0; +int nDensityModify = 1; +int nTEnergyModel = 0; +int nMeanFreePathType = 0; +int nIsChemicalFreeze = 0; +int nIsSuperCatalytic = 1; +int nTemperatureJump = 0; +int nSurfGradMethod = 0; +int nRapidFlowfield = 0; +int nSurfHeatMonitor = 0; +int nInitPressureStep = 100; +int nDumpCFLNumber = 0; + +double parkVDPower = 0.6; +double catalyticCoef = 0.0; +double sigmaVelocity = 1.0; +double sigmaTemperature = 1.0; +double sigmaMassFraction = 1.0; +double velocitySlipCorrectConstant = 1.0; + +double chemicalRelaxCorf = 1.0; +double chemicalSpectrumRadiusCoef = 1.0; +double viscousSpectrumRadiusCoef = 1.5; +double inviscidSpectrumRadiusCoef = 1.5; +double spectrumRadiusCoef = 0.5; +double staticPressureRelaxCorf = 0.2; + +double maxViscous = 10000.0; +double trTemperatureMin = 10.0; +double veTemperatureMin = 30.0; +double maxTemperature = 50000.0; +double densityMin = 1.0e-8; +double densityMinFactor = 0.1; +double tAdjustmentFactor = 10.0; +double iniSpeedCoef = 1.0; +int iniSpeedMode = 0; + +int nDebug = 0; +int nSpeciesLimit = 1; +int nTurblenceForChemical = 0; +int nViscosityFluxSublevelModified = 1; +int nViscosityPeModified = 0; +int nChemcalSourceModified = 2; +int nChemcalSourceEsMethod = 1; +int nMaxStepTemperature = 5; +int veTemperatureMinModified = 1; +int nDiagonalModified = 0; +int nDiagonalModifiedTurb = 0; +int nGradPrimtiveMethod = 1; +int nInviscidFluxModify = 1; +int nQlLimitMethod = 2; +int nSpeciesForWallMethod = 1; +int nDensityForWallMethod = 0; +int wallMultiTemperature = 0; + +int nProtectData = 0; +int nAblation = 0; +int isInjection = 0; +int nViscosityModel = 0; +int nMarsModel = 0; +int nTvChange = 0; +int isMoleFractionType = 0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.767"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.767, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767, 0.0"; + +//string gasfile = "Mars-Pa8"; +//string speciesName = "O, O2, NO, N, N2, C, CO, CO2"; +//string initMassFraction = "0.0015, 0.0429, 0.0, 0.0, 0.0, 0.0, 0.0777, 0.8779"; + +//string gasfile = "Pa"; +//string speciesName = "O, O2, NO, N, NO+, C, C2, CO, CO2, CN, N2, e-"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767, 0.0"; + +//string gasfile = "Combustion-12"; +//string speciesName = "O, O2, NO, N, C, CO, CO2, H, H2, OH, H2O, N2"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767"; + +//string gasfile = "Gas-Mixture"; +//string speciesName = "SpeciesA, SpeciesB"; +//string initMassFraction = "1.0, 0.0"; +int nSutherland = 0; +double gamaSpeciesA = 1.4; +double gamaSpeciesB = 1.3; +double molecularWeightSpeciesA = 29.0; +double molecularWeightSpeciesB = 30.0; + +//string gasfile = "Gas-Mixture"; +//string speciesName = "O2, N2"; +//string initMassFraction = "1.0, 0.0"; + +int nFraction = 0; +int nContinueModel = 0; +int nChemicalFlowStep = 0; +int ifStartFromPerfectGasResults = 0; +int isUseNoneqCond = 0; +double frozenCondition = 0.01; + +int nLeakageMonitor = 0; +double totalLeakageVolume = 1000.0; +double monitorThresholdValue = 0.05; +double sprayFactor = 0.0; + +######################################################################### +// Multi-Grid parameters. +// nMGLevel: The number of level of Multi-Grid. +// <= 1 -- Single-level. +// > 1 -- multi-level. +// MGPreIteration: For each grid, the number of pre-smoothing steps. +// n_post: For each grid, the number of post-smoothing steps. +// MGCoarsestIteration: For the coarest grid the number of smoothing steps. +// MGFasType: V-multi cycle or W-multi cycle. +// 1 -- V-multi cycle. +// 2 -- W-multi cycle. +// flowInitStep: Flow initialization step, 0 - 500 is suggested. +// Multi-Grid : Number of steps computing on coarse grid, during flow initialization. +// Single-Grid: Number of steps computing using first-order with vanleer, during flow initialization. +// mgCFLScale: CFL number enlarge times for coarse grid. +// mprol: Multi-grid interpolation method, interpolation from coarse cell to fine grid. +// 1 -- zero order. +// 2 -- first-order. (default) +// mgCorrectionLimit: Multi-grid correction limit. +int nMGLevel = 1; +int MGCoarsestIteration = 1; +int MGPreIteration = 1; +int MGFasType = 1; +int n_post = 0; +int flowInitStep = 100; +int mprol = 2; +double mgCFLScale = 1.0; +double mgCorrectionLimit = 0.01; + +//--------------- Some parameter for turbulent model -------------------- +// neasm: The variation of kw turbulent model. +// ismooth_turb: Residual smooth for turb or not. +// SSTProductType: The type of product term based on vorticity for SST. +// SAProductType: The type of product term based on vorticity for SA. +int neasm = -3; +int SSTProductType = 0; +int ismooth_turb = 0; +int SAProductType = 2; + +// ----------------- Overset Grid parameter ----------------------------- +int codeOfDigHoles = 1; +int codeOfTurbulentModel = 0; +string masterFileName = "./grid/searchFile.inp"; +string holeBasicFileName = "./grid/holeBasicFile.inp"; +string holeFullFileName = "./grid/holeFullFile.dat"; +string linkFileName = "./grid/topology.dat"; +string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; + +#************************************************************************ +# High Order Struct Solver * +#************************************************************************ +// isFVMOrFDM: +// 0 -- NSSolverStruct using Finite Volume Method. +// 1 -- NSSolverStruct using Finite Differ Method. +// SolverStructOrder: Spatial discretisation order of NS equations with struct grid. +// <= 2 -- finite volume method. +// >= 3 -- finite difference order. (to be completed) +// 0 -- default. +// str_highorder_interpolation_epsilon: Epsilon in weighted interpolation, bigger epsilon, better convergence, +// smaller epsilon, robuster for shock-detecting. +// str_highorder_interpolation_type: +// -- "classical", "test". +// str_highorder_flux_name: +// -- "roe", "steger". +// structhighordergradient: +// -- "conservation", "chain_rule". +int isFVMOrFDM = 0; +string str_highorder_solver = "WCNS"; +int SolverStructOrder = 0; +double str_highorder_interpolation_epsilon = 1.0e-6; +string str_highorder_interpolation_type = "test"; +string str_highorder_flux_name = "steger"; +string structhighordergradient = "conservation"; +double coefofstrflux = 0.5; +double limitcoefofinterface = 0.0; + +// ----------------- Advanced choices ----------------------------------- +// outtimesc: Time stepping scheme for the outer loop. +// MUSCLCoefXk: The parameter of MUSCL interpolations, belongs to [-1, 1]. +// -1 -- seconde-order fully-upwind differencing. +// 0 -- seconde-order upwind-biased differencing. +// 0.333333 -- third-order upwind-biased differencing. +// 1 -- seconde-order central differencing. +// MUSCLCoefXb: The limiter parameter. +// 0 -- the effect of the limiter is cancelled, means the first-order interpolations. +// allReduceStep: Iteration intervals for MPI AllReduce operation, default is 1. +string outtimesc = "impbd2"; +double MUSCLCoefXk = -1; +double MUSCLCoefXb = 1.0; +int allReduceStep = 1; + +// ----------------- overlap configuration ------------------------------ +// codeOfOversetGrid: Overlapping(overset) grid or not. +// 0 -- NON-overlapping grid. +// 1 -- Overlapping grid. +// oversetInterpolationMethod: the method of overset interpolation while field simulation. +// 0 -- set the acceptor cell value by donor cell value. +// 1 -- set the acceptor cell value by distance weight of donor cell value. +// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated. +// 0 -- no. +// 1 -- yes. +// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in +// the current overset grid(only for three dimension). +// 0 -- no. +// 1 -- yes. +// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid. +// 0 -- no. +// 1 -- yes. +// walldistMainZone: The initial value of background grid which does not exist wall boundary condition. +// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell. +// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region. +// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary. +// 0 -- one layer. +// 1 -- two layers. +// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region. +// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure. +// 0 -- no. +// 1 -- yes. +int codeOfOversetGrid = 0; +int oversetInterpolationMethod = 0; +int readOversetFileOrNot = 0; +int symetryOrNot = 0; +int readInAuxiliaryInnerGrid = 0; +int readInAuxiliaryOuterGrid = 0; +int readInSklFileOrNot = 0; +string auxiliaryInnerGrid0 = "./grid/aux-upper.fts"; +string auxiliaryInnerGrid1 = "./grid/aux-lower.fts"; +string auxiliaryInnerGrid2 = ""; +string oversetGridFileName = "./grid/iblank.ovs"; +double walldistMainZone = 1.0 +double toleranceForOversetSearch = 1.0e-3; +double toleranceForOversetBox = 1.0e-3; +int twoOrderInterpolationOrNot = 0; +int keyEnlargeOfActiveNodes = 0; +int outTecplotOverset = 0; +int outPutOversetVisualization = 0; +int numberOfMovingBodies = 2; + +// ----------------- ALE configuration ------------------------------ +int codeOfAleModel = 0; +int aleStartStrategy = -1; + +double referenceLength = 1.0; +double referenceVelocity = 1.0; +double referenceDensity = 1.0; + +int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd. +int strategyForGCLSource = 0; // 0-present; 1-Ahn. + +// 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton. +int methodForKineticEquation = 0; +double relaxParameterOfKinetic = 1.0; + +#************************************************************************ +# motive information * +#************************************************************************ +int numberOfMovingBodies = 1; + +############################## body0 ############################## +// mass of parts. +double mass_0 = 1.0; +// gravity of parts (along negative direction in Y-axis, eg. 9.8). +double gravity_0 = 0.0; +// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz. +double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; +// initial six DOF position information of parts. xc yc zc. +double massCenter_0[] = 0.0, 0.0, 0.0; +// if reset mass center while restart. +int resetMassCenter_0 = 0; +// position offset of parts. dx dy dz. +double massCenterDxyz_0[] = 0.0, 0.0, 0.0; +// initial six DOF position information of parts. angleX angleY angleZ. +double attitudeAngle_0[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. vc vy vz. +double massCenterVelocity_0[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. omigX omigY omigZ. +double angularVelocity_0[] = 0.0, 0.0, 0.0; +// the object that the parts belong to. +int fartherIndex_0 = -1; +// the assembly position of the parts. xc yc zc angleX angleY angleZ. +double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; +// the move pattern of the parts. +// -1 given motion partten. +// 0 still. +// 1 six DOF motion. +// 2 three DOF motion. +// 11 X-axis forced motion. +// 12 Y-axis forced motion. +// 13 Z-axis forced motion. +// 14 forced pitch motion. +// 15 forced yaw motion. +// 16 forced roll motion. +int RBDMethod_0 = 0; +double amplitude_0 = 0.0; +double reduceFrequency_0 = 0.0; +// direction of rotation. +// 1 -- clockwise from the point of view along the positive x axis. +// -1 -- anticlockwise from the point of view along the positive x axis. +int direction_0 = -1; +double rotateFrequency_0 = 0.0; +//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; +// dimensional physical time for additional force(s). +double addedForceTime_0[] = 0.0; +// additional force(inertia system) fX fY fZ. +double addedForce_0[] = 0.0, 0.0, 0.0; +// additional moment(inertia system) mX mY mZ. +double addedMoment_0[] = 0.0, 0.0, 0.0; +// the deformation method of the parts. +int morphing_0 = 0; + +// post indentify. +int integralOrder = 4; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 6.5e6; +//@double refDimensionalTemperature = 288.15; +//@double freestream_vibration_temperature = 300.00; +//@double refDimensionalPressure = 0; +//@double height = 0; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; +//@double refDimensionalVelocity = 0; +//@double refDimensionalDensity = 0; +//@string weatherDataFilePath = "./WRFData/"; +//@double longitude = 110.95 +//@double latitude = 19.61; +#************************************************************************ +# Old Parameter * +#************************************************************************ +int isPlotVolumeField = 0; + +#************************************************************************ +# partial flow field setting Parameter * +#************************************************************************ +//int nPartialParameter = 0; // 0/1/2 +//int nNumberOfPartialField = 0; // +//int nStartGridIndex[] = [0]; +//int nEndGridIndex[] = [0]; + +//double partialCFL[] = [0.0]; +//double partialSpeedCoef[] = [0.0]; +//double partialSpeed[] = [0.0]; +//double partialAttackd[] = [0.0]; +//double partialSlide[] = [0.0]; +//double partialPressure[] = [0.0]; +//double partialTemperature[] = [0.0]; +//double partialMassFractions[] = [0.0]; + +#************************************************************************ +# Incompressible Parameter * +#************************************************************************ +int isSolveEnergyEquation = 0; +int isSolveTurbEquation = 0; +int isSolveSpeciesEquation = 0; \ No newline at end of file diff --git a/L05_TwoD_Cavity_BGK_OMP_1CPU/bin/input.txt b/L05_TwoD_Cavity_BGK_OMP_1CPU/bin/input.txt new file mode 100644 index 0000000..f567ed4 --- /dev/null +++ b/L05_TwoD_Cavity_BGK_OMP_1CPU/bin/input.txt @@ -0,0 +1,33 @@ +0 !MRT set 1, BGK set 0 +1 ic.plt !CONTI, resume :1 , new 0 //follows input datafile name +0 !LES yes: 1 , no: 0 +0 mesh_3d.dat !GEO read complex geo? yes:1, no:0 //follows input datafile name +0 ! MB multiblock LBM? yes:1, no:0 +0 2.e-3 !CONV using converge criterion? yes:1, no:0 +201 !NX +201 ! NY +1 ! NZ +240 ! NX2 +160 ! NY2 +1 ! NZ2 +500 ! LowX +160 ! LowY +0 ! LowZ +200 ! framerate +50000 !total steps to terminate +1.0 ! density +0.8 ! tau +(0.0, 0.0, 0.0000000) ! Volumetric force vector (gx, gy, gz) +D2Q9 ! velocity set +Cavity ! boundary condition +! note: in the following, boundary types: periodic,velocity, pressure +! are allowed. if "velocity" is applied, please strictly follow the format "velocity (%lf, %lf, %lf)". +nonslip !xmin face +nonslip !xmax face +nonslip !ymin face +velocity (0.1, 0.00, 0.0) !ymax face, +nonslip !zmin face +nonslip !zmax face +-------------------! initial velocity field +(0.0, 0.00, 0.0) + diff --git a/L05_TwoD_Cavity_BGK_OMP_1CPU/bin/key.hypara b/L05_TwoD_Cavity_BGK_OMP_1CPU/bin/key.hypara new file mode 100644 index 0000000..9470ea6 --- /dev/null +++ b/L05_TwoD_Cavity_BGK_OMP_1CPU/bin/key.hypara @@ -0,0 +1,58 @@ +string title = "PHengLEI Main Parameter Control File"; + +// IMPORTANT NOTICE: DON NOT MODIFY THE FOWLLOWING LINE. +string defaultParaFile = "./bin/cfd_para.hypara"; + +// ndim: Dimensional of the grid, 2 or 3. +// nparafile: the number of parameter files. +// nsimutask: simulation task type. +// 0 -- CFD Solver of NS or Turbulation. +// 1 -- Grid generation: for special typical cases, such as cylinder, flat plate, etc. +// Grid conversion: from other format to PHengLEI format (.fts). +// Grid reconstruction: such as grid adaptation. +// Grid merging: merge two blocks into one block. +// Grid repairing: repair the original grid in order to remove the negative volume cells. +// 2 -- Wall distance computation for turb-solver. +// 3 -- Grid partition. +int ndim = 2; +int nparafile = 1; + +//int nsimutask = 0; +//string parafilename = "./bin/cfd_para_subsonic.hypara"; +//string parafilename = "./bin/cfd_para_transonic.hypara"; +//string parafilename = "./bin/cfd_para_supersonic.hypara"; +//string parafilename = "./bin/cfd_para_hypersonic.hypara"; +//string parafilename = "./bin/cfd_para_incompressible.hypara"; + +//int nsimutask = 1; +//string parafilename = "./bin/grid_para.hypara"; + +//int nsimutask = 2; +//string parafilename = "./bin/cfd_para.hypara"; + +//int nsimutask = 3; +//string parafilename = "./bin/partition.hypara"; + +//int nsimutask = 1; +//string parafilename = "./bin/grid_deform_para.hypara"; + +//int nsimutask = 1; +//string parafilename = "./bin/grid_refine_para.hypara"; + +//int nsimutask = 5; +//string parafilename = "./bin/overset_grid_view.hypara"; + +int nsimutask = 17; +string parafilename = "./bin/cfd_para.hypara"; + +//int nsimutask = 14; +//string parafilename = "./bin/integrative_solver.hypara"; + +//int nsimutask = 99; +//string parafilename = "./bin/post_processing.hypara"; + +// ---------------- Advanced Parameters, DO NOT care it ---------------- +int numberOfGridProcessor = 0; +// ATP read +//@string parafilename1 = "" +//@string parafilename2 = ""; diff --git a/L06_TwoD_Spoiler_BGK_OMP_4CPU/bin/cfd_para.hypara b/L06_TwoD_Spoiler_BGK_OMP_4CPU/bin/cfd_para.hypara new file mode 100644 index 0000000..f903a5a --- /dev/null +++ b/L06_TwoD_Spoiler_BGK_OMP_4CPU/bin/cfd_para.hypara @@ -0,0 +1,1467 @@ +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +// PPPPP H H EEEEE N N GGGGG L EEEEE III + +// P P H H E NN N G L E I + +// PPPPP HHHHH EEEEE N N N G GG L EEEEE I + +// P H H E N N N G G L E I + +// P H H EEEEE N N GGGGG LLLLL EEEEE III + +//------------------------------------------------------------------------+ +// Platform for Hybrid Engineering Simulation of Flows + +// China Aerodynamics Research and Development Center + +// (C) Copyright, Since 2010 + +// PHengLEI 2212 + +//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +########################################################################### +# Default parameters for Grid conversion # +########################################################################### +// gridtype: Grid type for generation, conversion, reconstruction, merging. +// 0 -- Unstructured grid. +// 1 -- Structured grid. +// 2 -- Hybrid grid, include both of unstructured and structured grid. +// gridobj: Task type of grid treatment. +// 0 -- Grid generation of typical case, such as cylinder, flat plate, etc. +// 1 -- Grid conversion, from other grid data to PHenglEI, such as Fluent, CGNS. +// 2 -- Grid refinement. +// 3 -- Grid merging, merge two blocks into one block. +// 4 -- Grid deformation, achieve unstructured grid deformation. +// 5 -- Grid repairing, repair the original grid in order to remove the negative volume cells. +// 6 -- Grid mirroring, mirror a symmetry grid to whole grid. +// 7 -- Grid type change, convert structured grid to unstructured grid. +// multiblock: Multi-block grid or not, only for structured grid conversion. +// 0 -- Not. +// 1 -- Yes. +// iadapt: Adaptation number for unstructure grid. +// SymmetryFaceVector: The vector of symmetry face. +// 0 -- X axis. +// 1 -- Y axis. +// 2 -- Z axis. +// gridReorder: Reorder cell and face of grid or not, only for 3D unstructured grid conversion, +// which is CGNS type. +// 0 -- Not. +// 1 -- Yes. +// faceReorderMethod: the reorder method face of unstructured grid. +// 0 -- BSFCELLFACEORG. +// 1 -- BSFCELLFACELEFT. +// 2 -- BSFCELLFACERIGHT. +int gridtype = 0; +int gridobj = 1; +int multiblock = 0; +int iadapt = 0; +int SymmetryFaceVector = 1; +int gridReorder = 0; +int faceReorderMethod = 0; + +// nAxisRotateTimes: number of axis rotating times, zero (default) meaning without rotating. +// axisRotateOrder : axis rotating order. +// 1 -- X-axis. +// 2 -- Y-axis. +// 3 -- Z-axis. +// axisRotateAngles: axis rotating angles (degree), which are corresponding to the axis rotating order. +int nAxisRotateTimes = 0; +int axisRotateOrder[] = [1, 2, 3]; +double axisRotateAngles[] = [0.0, 0.0, 0.0]; + +// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". +// 0 -- Interface. (default) +// 1 -- Physical boundary condition, used in Hybrid solver. +int omit_no_bound_bc = 0; +int omitRepeatInterface = 1; + +//----------------------------------------------------------------------- +# Grid data type # +//----------------------------------------------------------------------- +// from_gtype/to_gtype: Type of grid data type in grid conversion process. +// -1 -- MULTI_TYPE. +// 1 -- PHengLEI, *.fts. +// 2 -- CGNS, *.cgns. +// 3 -- Plot3D type of structured grid, *.dat/*.grd. +// 4 -- Fieldview type of unstructured grid, *.dat/*.inp. +// 5 -- Fluent, *.cas/*.msh. +// 6 -- Ustar, mgrid.in. +// 7 -- Hybrid, include both of unstructured and structured grid, *.fts. +// 8 -- GMSH, *.msh. +// 9 -- Gridgen type of structured grid, *.dat/*.grd. +// dumpOldGrid: If dump out the old grid file. +// 0 -- Not. (default) +// 1 -- Yes. +int from_gtype = 2; +int to_gtype = 1; +int dumpOldGrid = 0; + +//----------------------------------------------------------------------- +# File path # +//----------------------------------------------------------------------- +// from_gfile: path of original data file for unstructure grid convert from. +// out_gfile: path of target file for grid convert to, *.fts type of file usually. +int numberOfGridFile = 1; +string from_gfile = "./grid/rae2822_hybrid2d.cas"; +string from_gfile1 = ""; +string out_gfile = "./grid/flat_laminr_133_85_2d.fts"; + +// ----------------- some advanced choices ------------------------------ +// iunsteady: The Grid is for unsteady simulation or not. +int iunsteady = 0; + +// fileformat: Ustar Grid file format. +// 0 -- BINARY. +// 1 -- ASCII. +int fileformat = 0; + +// Parameters for hybrid solver. +// mixgrid_uns: path of unstructure grid file for hybrid solver, *.fts type. +// mixgrid_str: path of structure grid file for hybrid solver, *.fts type. +string mixgrid_uns = "./grid/rae2822_uns2d_4.fts"; +string mixgrid_str = "./grid/flat_laminr_133_85_2d.fts"; + +// Some parameters for structured overlapping grid. +int codeOfDigHoles = 1; +string holeBasicFileName = "./oversetGridView/holeBasicFile.inp"; +string holeFullFileName = "./oversetGridView/holeFullFile.dat"; +string linkFileName = "./oversetGridView/topology.dat"; +string zoneInverseFileName = "./oversetGridView/zoneInverseMapping.inp"; + +// ----------------- Grid Refine Parameters ----------------------------- +// anisoRefine: If refine grid by anisoRefine type. +// 0 -- Not. (default) +// 1 -- Yes. +// geometryUnit: Geometry unit. +// 1 -- meter. +// 2 -- millimeter. +// 3 -- inch. +// exclusiveCase: Parallel projection exclusive case. +// 0 -- NON case. +// 1 -- JSM-C2-NPOFF case. +// 2 -- CHNT. +// projectOrgPoint: If the original wall points need to be projected or not. +int anisoRefine = 0; +int geometryUnit = 1; +int isProject = 0; +int readDist = 0; +int isDeform = 0; +int exclusiveCase = 0; +int projectOrgPoint = 0; +string geometryFileName = "./grid/jsm.igs"; + +// ----------------- Grid Deform Parameters ----------------------------- +// deformationMethod: Grid Deform. +// 1 -- SPRING. +// 2 -- RBF. +// stationalGridFile: Original grid file. +// visualFileName : The visualization file path of deform grid. +// nDeformStep : The max deform step. +// flapAngle : The max flap angle. +// rotatePostionZ : Rotate postion. +// rotatePostionY : Rotate postion. +// gridSlice : If dump slice grid. +// sliceAxis : Grid slice axis. +// slicePosition : Grid slice position. +int nDeformStep = 40; +double flapAngle = 10.0; +double rotatePostionZ = 4.00003; +double rotatePostionY = 3.05; + +int deformationMethod = 2; +string stationalGridFile = "./grid/Segment2Brid.fts"; +string visualFileName = "./results/deformedGrid.dat" + +int gridSlice = 1; +int sliceAxis = 1; +double slicePosition = 13; + +// ----------------- RBF Parameters ------------------------------------- +// numberOfReferenceCP: Number of reference Control Points. +// influencePara : The RBF influence radius parameter. +int numberOfReferenceCP = 40; +double influencePara = 25.0; + +// ----------------- Periodic Parameters -------------------------------- +// Notice: Rotational periodicity only support rotation along the X axis! +// periodicType: Which periodic boundary is used. +// 0 -- without Periodic Boundary. +// 1 -- Translational periodicity. +// 2 -- Rotational periodicity. +// translationLength[]: The relative distance between two periodic face + which only support one direction. +// rotationAngle: The relative angle between two periodic face. + which is recorded in degrees. +int periodicType = 0; +double translationLength[] = [0.0, 0.0, 0.0]; +double rotationAngle = 0.0; + +######################################################################### +# Default parameters for Partition # +######################################################################### +// pgridtype: The grid type. +// 0 -- unstruct grid. +// 1 -- struct grid. +// 2 -- refine structured grid. +// maxproc: The number of partition zones that want to be divided into. +// numberOfMultifile: The number of partition grid files that want to be dumped out. +int pgridtype = 0; +int maxproc = 4; +int numberOfMultifile = 1; + +// traceMark: Trace mark or not, only for structured grid partition. +// 0 -- Not. +// 1 -- Yes. +// blockIndexOfMark: the block index of mark, only for structured grid partition. +// cellIndexOfMark : the cell index of mark, only for structured grid partition. +int traceMark = 0; +int blockIndexOfMark = 0; +int cellIndexOfMark[] = [185, 30, 1]; + +// parallelStrategy: +// 0 -- each zone is assigned to the one that defined in grid partition procedure. +// 1 -- random assigned for each zone or by some else ways. +int parallelStrategy = 1; + +//----------------------------------------------------------------------- +# File path # +//----------------------------------------------------------------------- +// original_grid_file: Original grid file that want to be divided(PHengLEI type, *.fts). +// partition_grid_file: Target partition grid file(PHengLEI type, *.fts). +string original_grid_file = "./grid/sphere_mixed.fts"; +string partition_grid_file = "./grid/sphere_mixed__4.fts"; + +// ------------------ Sompe advanced parameters ------------------------- +// omit_no_bound_bc: What's boundary condition for the type of "no_boundary_condition". +// 0 -- Interface. (default) +// 1 -- Physical boundary condition, used in Hybrid solver. +// npartmethod: Method of interface reconstruction, default is 1. +// parallelPartitionMethod: Method of parallel partition, this is set only when execute parallel partition. It would be skipped when serial partition. +// 1 -- Using ParMetis for homogeneous MPI. +// 2 -- Using Metis for homogeneous MPI. +// 3 -- using METIS partition for homogeneous OpenMP. +// parmetisBalance: Used to specify the imbalance tolerance. +// 1 -- perfect balance. +// maxproc -- perfect imbalance. +// 1.05 -- recommended. +int omit_no_bound_bc = 0; +int npartmethod = 1; +int parallelPartitionMethod = 2; +double parmetisBalance = 1.05; + +// numberOfMultigrid: Number of multi-grid levels, ONLY used for structured grid. +// 1 -- single level. +// 2 -- 2 level. +// N -- N level, ..., et al. +int numberOfMultigrid = 1; + +######################################################################### +# Default parameters for CFD simulation # +######################################################################### +// maxSimuStep: The max simulation step, don't care simulation is restart or not. +// intervalStepFlow: The step intervals for flow variables file 'flow.dat' saved. +// intervalStepPlot: The step intervals for tecplot visual file 'tecflow.dat' saved. +// intervalStepSample: The step intervals for monitored probes variables file 'sample.dat' saved. +// intervalStepForce: The step intervals for aerodynamics coefficients file 'aircoef.dat' saved. +// intervalStepRes: The step intervals for residual file 'res.dat' saved. +int maxSimuStep = 20000; +int intervalStepFlow = 1000; +int intervalStepPlot = 1000; +int intervalStepSample = 1000; +int intervalStepForce = 100; +int intervalStepRes = 10; + +// compressible: +// 0 -- incompressible flow. +// 1 -- compressible flow. (default) +int compressible = 1; + +// ifLowSpeedPrecon: Precondition process to accelerate convergence for low speed flow. +// 0 -- no precondition process. (default, mach > 0.3) +// 1 -- carry out precondition process. (mach number <= 0.3) +// Kprec: The coefficient K for the cut-off velocity. +// 1.0~3.0 is suggested. (default, 3.0) +// preconFarfieldBCMethod: The precondition method for farfield boundary condition. +// 0 -- precondition far-field boundary based on riemann invariants. +// 1 -- Turkel's simplified far-field boundary condition. +int ifLowSpeedPrecon = 0; +double Kprec = 3.0; +int preconFarfieldBCMethod = 1; + +//----------------------------------------------------------------------- +# CFD Control Parameter # +//----------------------------------------------------------------------- +// refMachNumber: Mach number. +// attackd: Angle of attack. +// angleSlide: Angle of sideslip. +// inflowParaType: The type of inflow parameters. +// 0 -- the nondimensional conditions. +// 1 -- the flight conditions. +// 2 -- the experiment conditions. +// 3 -- the subsonic boundary conditions. (Useless!) +// 4 -- the condition that the velocity, temperature and density are given. +// 5 -- the condition that the velocity, temperature and pressure are given. +//flowInitMethod: Flow field initialization method. +// 0 -- The entire flow field is initialized according to Infinite velocity. +// 1 -- The velocity near the wall is initialized according to the boundary layer of the plate. +// refReNumber: Reynolds number, which is based unit length, unit of 1/m. +// refDimensionalTemperature: Dimensional reference temperature, or the total temperature only for the experiment condition. +// freestream_vibration_temperature: Dimensional freestream vibration temperature. +// refDimensionalPressure: Dimensional reference pressure, or the total pressure only for the experiment condition. +// height: Fly height, unit of km. +// wallTemperature: Temprature of the solid wall, minus value is for adiabatic boundary condition. +// gridScaleFactor: The customizable unit of the grid, default value is 1.0 for meter. Common dimensions like: +// 1 dm = 0.1 m. +// 1 cm = 0.01 m. +// 1 mm = 0.001 m. +// 1 inch = 0.0254 m. +// 1 foot = 12 inches = 0.3048 m. +// 1 yard = 3 feet = 0.9144 m. +// forceReferenceLength, forceReferenceLengthSpanWise, forceReferenceArea: Reference length, SpanWise length and area, independent of grid unit. +// TorqueRefX, TorqueRefY, TorqueRefZ: Reference point, independent of grid unit. +// radiationCoef: The radiation coefficient on wall, it is used to compute the radiation heat flux on wall when the boundary +// condition is radiation equilibrium temperature, and 0.8 is the default value. +// refMolecularWeight: the reference molecular weight of gas used for perfect gas. The unit is g/mol. +// Generally, the gas is air. Sometimes, it is experiment gas, such as Nitrogen, Argon, and so on. +int directionMethod = 0; +double refMachNumber = 0.73; +double attackd = 2.79; +double angleSlide = 0.00; +int flowInitMethod = 0; + +int inflowParaType = 0; +double refReNumber = 6.5e6; +double refDimensionalTemperature = 288.15; +double freestream_vibration_temperature = 300.00; + +//int inflowParaType = 1; +//double height = 0.001; + +//int inflowParaType = 2; +//double refDimensionalTemperature = 6051.024; // The total temperature, T*(1+(refGama-1)*M*M/2). +//double refDimensionalPressure = 4.299696E09; // The total pressure, p*(T0/T)^(refGama/(refGama-1)). + +// The velocity, temperature and density are fixed. +//int inflowParaType = 4; +//double refDimensionalVelocity = 1000.0; +//double refDimensionalDensity = 1.0e3; + +// The velocity, temperature and pressure are fixed. +//int inflowParaType = 5; +//double refDimensionalVelocity = 1000.0; +//double refDimensionalPressure = 1.0e5; + +// The MachNumber, temperature and pressure are fixed. +//int inflowParaType = 6; +//double refDimensionalTemperature = 293.0; +//double refDimensionalPressure = 8886.06; + +// The velocity, temperature and pressure are read from file. +//int inflowParaType = 7; +//string weatherDataFilePath = "./WRFData/"; +//double longitude = 110.95 +//double latitude = 19.61; + +double wallTemperature = -1.0; + +double radiationCoef = 0.8; +double gridScaleFactor = 1.0; +double gridTranslationVector[] = [0.0, 0.0, 0.0]; + +int numberOfAerodynamicForceComponents = 1; +double forceReferenceLengthSpanWise = 1.0; // unit of meter. +double forceReferenceLength = 1.0; // unit of meter. +double forceReferenceArea = 1.0; // unit of meter^2. +double TorqueRefX = 0.0; // unit of meter. +double TorqueRefY = 0.0; // unit of meter. +double TorqueRefZ = 0.0; // unit of meter. +double knudsenLength = 1.0; // unit of meter. +double refMolecularWeight = 28.9644; // unit of g/mol. + +//----------------------------------------------------------------------- +# Spatial Discretisation # +//----------------------------------------------------------------------- +#************************************************************************ +# Struct Solver * +#************************************************************************ +// inviscidSchemeName: Spatial discretisation scheme of struct grid. +// Using this when solve structered grid or hybrid. +// -- "vanleer", "steger", "hlle", "lax_f", +// -- "roe", "modified_roe", +// -- "ausm+", "ausm+w", "ausm+up", "ausmdv", "ausmpw", "ausmpw+". +// isWennScheme: If using WENN Scheme of struct grid. +// 0 -- NO. (default) +// 1 -- Yes. +// str_limiter_name: Limiter of struct grid. +// -- "vanalbada", "vanleer", "minmod", "smooth", "minvan", "3rdsmooth", "3rd_minmod_smooth", +// -- "nolim", no limiter, +// -- "vanalbada_clz", clz supersonic version, +// -- "weno3_js", "wenn3_prm211", "wenn3_zm", "wenn3_zes2", "wenn3_zes3". +string inviscidSchemeName = "roe"; +int isWennScheme = 0; +string str_limiter_name = "vanalbada"; + +#************************************************************************ +# UnStruct Solver or Common * +#************************************************************************ +// viscousType: Viscous model. +// 0 -- Euler. +// 1 -- 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", "GMRESRoe", "GMRESSteger", "steger", "kfvs", "lax_f", "hlle", +// -- "ausm+", "ausmdv", "ausm+w", "ausmpw", "ausmpw+". +// uns_limiter_name: Limiter of Unstruct grid. +// -- "barth", "vencat", "vanleer", "minmod", +// -- "vanalbada", "smooth", "nnd", "lpz", "1st", +// -- "nolim", no limiter. +// uns_vis_name: Discretisation method of viscous term. +// -- "std", "test", "aver", "new1", "new2". +// gradientName: Gradient reconstruction method. +// -- "default", "ggcell", "ggnode", "lsq". +// ivencat: Variation of vencat limiter. +// 0 -- org method, it is independent of grid scale. +// 1 -- new method, it is dependent of grid scale. +// 4 -- Ustar limiter model, without grid size unitary. +// 7 -- default used. +// venkatCoeff: Cofficient of vencat, when using vencat limter. +// limitVariables: Limit model (It is useful only if limitVector is 0). +// 0 -- limit only for pressure and denstiny, then get the min value. +// 1 -- limit for every variables, then get the min value. +// limitVector: +// 0 -- Each variable use the same limiter coefficient. +// 1 -- Each variable use the respective limiter coefficients. +// reconmeth: +// 0 -- When reconstruct face value, Q+, Q- use respective limiter coefficients. +// 1 -- Q+, Q- use the min limiter coefficients of left and right cell. +// skewnessAngle: The skewness angle of grid cells. +// roeEntropyFixMethod: Entropy fix (correction) method. +// 1 -- direct fix, which limits the minimum eigenvalue directly. +// 2 -- multi-dimensional fix, which is derived from structured solver and now is only valid for struct solver. +// 3 -- Harten type, which is default used. +// roeEntropyScale: Entropy fix (correction) coefficient scale, default is 1.0. +// It is used to scale the default Roe entropy fix coefficients. +// AusmpwPlusLimiter: A Limiter to make "function w" not change acutely in AusmpwPlus scheme, default is 1.0. + +//int viscousType = 0; +//string viscousName = "Euler"; + +//int viscousType = 1; +//string viscousName = "laminar"; + +int viscousType = 3; +string viscousName = "1eq-sa"; + +//int viscousType = 4; +//string viscousName = "2eq-kw-menter-sst"; + +int DESType = 0; + +string uns_scheme_name = "roe"; +string uns_limiter_name = "vencat"; +string uns_vis_name = "test"; +string gradientName = "ggnode"; + +int ivencat = 7; +double venkatCoeff = 5.0; +int reconmeth = 1; +int limitVariables = 0; +int limitVector = 0; +double skewnessAngle = 60.0; + +int roeEntropyFixMethod = 3; +double roeEntropyScale = 1.0; + +double AusmpwPlusLimiter = 1.0; + +#************************************************************************ +# Temporal Discretisation * +#************************************************************************ +// iunsteady: Steady or unsteady. +// 0 -- steady. +// 1 -- unsteay. +// physicalTimeStep: The nondimensional physical time step. +// ifStartFromSteadyResults: The unsteady simulation is start from steady flowfield or not, 0 is for no and else is for yes. +// ifStaticsFlowField: Statistical variables for unsteady simulation. +// ifStaticsReynoldsStress: Statistical Reynolds stress for unsteady simulation. +// startStatisticStep: Outer step when start statistics. +// when the value is larger than "maxSimuStep", it is useless. +// statisticalTimePeriod: Used as time period of statistic analysis. +// when the value is negative, time period is treated as infinite. +// statisticMethod: Statistic reynolds stress method. +// 0 -- tau = - ^2 +// 1 -- tau = +// min_sub_iter: The min sub iteration of unsteady simulation. +// max_sub_iter: The max sub iteration of unsteady simulation. +// tol_sub_iter: The tolerance of sub iteration of unsteady simulation. +// tscheme: Temporal Discretisation method. +// 1 -- Runge-Kutta Multi-State. +// 2 -- Point implicit. +// 3 -- Full implicit. +// 4 -- LU-SGS. +// 5 -- Block LU-SGS. +// 6 -- Jacobian iteration. +// 7 -- Line LU-SGS. +// 8 -- Matrix LU-SGS. +// 9 -- GMRES. +// 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. +// GMRESCFLScale : CFL = CFLStart * GMRESCFLScal^iteration. +// OriginalTscheme : Used for LUSGS and GMres hybrid computing. +// useLUSGSprecond: Initialize flow field for GMRES. +// 0 --Initialize by first order Jacobian matrix. +// 1 --Initialize by LUSGS. +// GMRESInitStep : the number of iteration step of irst order Jacobian matrix or LUSGS for initialize flow field. +// ktmax: Dtratio. dt[i] = MIN(dt[i], ktmax * dtmin / vol[i]) +// swapDq: Communication dq between forward/backward sweep of LUSGS or not, default is 0. +// nLUSGSSweeps: Sub iteration of LU-SGS or Block LU-SGS. +// LUSGSTolerance: Sub iter tolerance of LU-SGS or Block LU-SGS. +// ifLocalTimeStep: Time step method. +// 0 --Local. +// 1 --Global. +// isUseLocalCFL: use variable number of CFL or not. +// 0 -- global unified CFL number. +// 1 -- local CFL number. +// isUsePreTwall: use the previous temperatures on wall. 1 indicates yes, and 0 indicates no. +// visl_min: Minimum value of laminar viscosity coefficient. +// turbCFLScale: Turbulence model cfl number factor. +// codeOfAleModel: Arbitrary Lagrangian-Eulerian method. +// 0 -- no ALE method. +// 1 -- ALE method for non-moving grids. +// 2 -- ALE method for moving grids. +// 3 -- ALE method for deforming grids. +// wallFunctionType: The type of wall function to implement. +// 0 -- no wall function. (default) +// 1 -- standard wall function. +// 2 -- Pab3D wall function. +// RKStage: The number of Runge-Kutta step. +// lamda: Cofficient of Runge-Kutta step. +int iunsteady = 0; +double physicalTimeStep = 0.01; +double physicalTimeStepDimensional = -0.001; +int ifStartFromSteadyResults = 0; +int ifStaticsFlowField = 0; +int ifStaticsReynoldsStress = 0; +int startStatisticStep = 800000; +double statisticalTimePeriod = -1.0; +int statisticMethod = 0; +int linearTwoStepMethods = 1; // 1--BDF1; 2--C-N; 3--BDF2. + +int methodOfDualTime = 3; +int min_sub_iter = 50; +int max_sub_iter = 50; +double tol_sub_iter = 0.01; + +int tscheme = 4; +int iSimplifyViscousTerm = 1; +int ifLocalTimeStep = 0; +int isUseLocalCFL = 0; +int isUsePreTwall = 0; +double CFLStart = 0.01; +double CFLEnd = 10.0; +int CFLVaryStep = 500; +double GMRESCFLScale = 1.0; +int OriginalTscheme = 9; +int useLUSGSprecond = 1; +int GMRESInitStep = 1000; +double pMaxForCFL = 0.2; +double pMinForCFL = 0.1; +double deltaMaxForCFL = 0.2; +double magnifyFactorForCFL = 1.1; +double reduceFactorForCFL = 0.5; + +double ktmax = 1.0e10; + +int swapDq = 1; + +int nLUSGSSweeps = 1; +double LUSGSTolerance = 0.01; +int order = 2; + +double visl_min = 0.01; +double turbCFLScale = 1.0; +double csrv = 1.0; +double timemax = 1.0e10; +double dtsave = -1.0; +int maxale = 10; +double dtau = 0.001; + +int wallFunctionType = 0; + +int RKStage = 2; +double lamda[] = [0.5, 1.0]; + +//int RKStage = 1; +//double lamda[] = 1.0; + +//int RKStage = 4; +//double lamda[] = [0.25, 0.33333333333, 0.5, 1.0]; +#************************************************************************ +# File In or Out * +#************************************************************************ +// numberOfGridGroups: The number of grid groups. +// gridfile: The partitioned Grid file path, using relative path, +// which is relative to the working directory. +// IMPORTANT WARNING: The file index should be ignored, +// e.g. if the partitioned grid is rae2822_hybrid2d__4_0.fts, +// please use 'rae2822_hybrid2d__4.fts' here! +// plotFieldType: If dump out the field results to visulization. +// walldistMethod: The method to compute wall distance. +// 0 -- accurate but not fast enough. +// 1 -- fast but not accurate enough. +// 2 -- super fast but more non-accurate! +// resSaveFile: The file path to save the residual convergence process, write data for every default (intervalStepRes) steps. +// turbresfile: The file path to save the residual convergence process of turbulence, write data for every default (intervalStepRes) steps. +// aircoeffile: The file path to save the aerodynamic force coefficients convergence process, write data for every default (intervalStepForce) steps. +// restartNSFile: The file path to write restart flowfield variables, write data for every default (intervalStepFlow) steps. +// turbfile: The file path to write restart flowfield variables of turbulence , write data for every default(intervalStepFlow) steps. +// visualfile: The visualization file path of flowfield, write data for every default (intervalStepPlot) steps. +// wall_aircoefile: The file path to save flowfield variables of wall, write data for every default steps. +// nDumpSurfaceInfo = 0 the "wall_varfile" write the informations including heat flux. +// nDumpSurfaceInfo = 1 the "wall_varfile" write the informations without heat flux. +// nIsComputeWallDist: Whether to compute the wall distance. +// 0 -- Compute wall distance. +// 1 -- Not compute. +// protectionFile0 and protectionFile1: Two continuation file of the data protection mechanism. +// wall_heatfluxfile: The file to output the MaxHeatFlux of wall. +int numberOfGridGroups = 1; +string gridfile = "./grid/rae2822_hybrid2d__4.fts"; +string wallTemperaturefile = ""; + +int nIsComputeWallDist = 0; +int walldistMethod = 1; +int cellMethodOrNodeMethod = 0; + +string resSaveFile = "results/res.dat"; +string turbresfile = "results/turbres.dat"; +string transitionResFile = "results/transitionRes.dat"; +string aircoeffile = "results/aircoef.dat"; + +string restartNSFile = "results/flow.dat"; +string turbfile = "results/turb.dat"; +string transitionFile = "results/transition.dat"; + +string visualfile = "results/tecflow.plt"; +string wall_aircoefile = "results/wall_aircoef.dat"; +string samplefile = "results/sample.dat"; + +string protectionFile0 = "results/flow0.dat"; +string protectionFile1 = "results/flow1.dat"; +string wall_heatfluxfile = "results/wall_heatflux.dat"; + +string protectionTurbFile0 = "results/turb0.dat"; +string protectionTurbFile1 = "results/turb1.dat"; + +string protectionTransitionFile0 = "results/transition0.dat"; +string protectionTransitionFile1 = "results/transition1.dat"; + +int nDumpSurfaceInfo = 0; +string wall_varfile = ""; + +string sixDofFileName = "results/sixDofInfo.dat"; +string derivativeFileName = "results/identify.dat"; +string hysteresisFileName = "results/force_beta.plt"; + +int plotFieldType = 0; + +// visualfileType: The file type of visualfile. +// 0 -- Tecplot binary. +// 1 -- Tecplot ASCII. +// 2 -- Ensight binary. +// 3 -- Ensight ASCII. +int visualfileType = 1; + +// samplefileMode: The dump mode of sample file. +// 0 -- dump out every probe/line/surface data for all step intervals. +// 1 -- dump out all probe/line/surface data for every step intervals. +int samplefileMode = 0; + +// visualSlice: The slice of tecflow. +// 0 -- Do not save slice data. +// 1 -- comput and save it to sliceFile. +// sliceAxis: Normal vector of slice. +// 1 -- X_DIR. +// 2 -- Y_DIR. +// 3 -- Z_DIR. +// slicePostion: Coordinate of slice. + +int visualSlice = 0; +int sliceAxis = 1; +double slicePostion = -0.5; +string sliceFile = "results/Slice.plt"; +int dumpWallFaceCenter = 0; + +// min-max box of the visual block. +double lowerPlotFieldBox[] = [0.0 0.0 0.0]; +double upperPlotFieldBox[] = [1.0 1.0 1.0]; + +//-----------the optional parameters list for the flow field output---------------- +// nVisualVariables: Number of variables want to be dumped for tecplot visualization. +// visualVariables : Variable types dumped, listed as following: +// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6), +// -- viscosityLaminar(7), viscosityTurbulent(8), +// -- vorticity_x(9), vorticity_y(10), vorticity_z(11), vorticityMagnitude(12), +// -- strain_rate(13), Q_criteria(14), Cp(15), timeStep(16), volume(17), +// -- modeledTKE(18), modeleddissipationrate(19), SSTF1(20), SSTF2(21), +// -- vibration temperature(Tv, 33), electron temperature(Te, 34), vibrational energy(Ev, 35), electric energy(Ee, 36), +// -- number density of electron(Ne, 37), dimensioanl density(rho, 38), dimensioanl pressure(p, 39), dimensioanl temperature(T, 40), +// -- gradientUx(41), gradientUy(42), gradientVx(43), gradientVy(44), streamline_u(45), streamline_v(46), streamline_w(47), +// -- transition intermittency(intermittency, 51), transition momentum thickness reynolds(MomentumThicknessReynolds, 52), +// -- local CFL Number(localCFL, 57), minimal CFL Number(minCFL, 58), +// -- overlap iblank(iblank, 81), +// -- specific heat ratio(gama, 56), Knudsen number(kn, 60), Damkohler number(Da, 61), vibrational nonequilibrium number(Vi, 62). +// Important Warning: Array size of visualVariables MUST be equal to nVisualVariables!!! +// Variables order must from small to big. +//-----------the optional parameters list for the wall boundary condition---------------- +// nVisualWallVariables: The number of visual variables on wall. +// visualWallVariables : dumped variable types, listed as following: +// -- coefficient of pressure(cp, 0), coefficient of friction(cf, 1), yplus(2), non-dimensional heat flux(Q_NonDim, 3), dimensional heat flux(Q_Dim, 4), +// -- pressure on wall(pw, 5), temperature on wall(Tw, 6), density on wall(rhow, 7), heat flux of translational-rotational temperature term(Qtr, 8), +// -- heat flux of species diffusion term(Qs, 9), heat flux of vibrational temperature term(Qv, 10), heat flux of electron temperature term(Qe, 11), +// -- species mass fractions(Ns, 12), x component of wall velocity(Vx, 13), y component of wall velocity(Vy, 14), z component of wall velocity(Vz, 15), +// -- slip translational-rotational temperature(Tts, 16), slip vibrational temperature(Tvs, 17), slip electron temperature(Tes, 18), absolute wall velocity(Vs, 19), +// -- Stanton number(St, 20), coefficient of heat rate(Ch, 21), temperature jump(deltaT, 22), Grid Reynolds number on wall(Re_w, 23), Knudsen number(Kn_wall, 24). +int nVisualVariables = 8; +int visualVariables[] = [0, 1, 2, 3, 4, 5, 6, 15]; + +int nVisualWallVariables = 9; +int visualWallVariables[] = [0, 1, 2, 3, 4, 5, 9, 10, 11]; + +// dumpStandardModel: Dump many standard model data. +// 1 -- Turbulent flat plate. +int dumpStandardModel = 0; + +// ifSetDataMonitor: Whether to set the data monitor. +// 0 -- No. +// 1 -- Yes. +// dataMonitorType: The type of data Monitor. +// 0 -- Probes data monitor. +// 1 -- Lines data monitor. +// 2 -- Surfaces data monitor. +// probesDefineFile: Probes location information file. +// nLines: The number of lines need to be monitored. +// linesDefineFile: Lines location information file. +// nSurfaces: The number of surfaces need to be monitored. +// surfacesDefineFile: Surfaces location information file. +// searchCellsMethod: method to search the cell of each probe. +// 0 -- Nearest cell to the probe. +// 1 -- Real cell where the probe is located. +// nProbeVariables: Number of variables want to be dumped for probes monitered. +// probeVariables : Variable types dumped, listed as following: +// -- density(0), u(1), v(2), w(3), pressure(4), temperature(5), mach(6), +// -- dimensioanl_density(7), dimensioanl_u(8), dimensioanl_v(9), +// -- dimensioanl_w(10), dimensioanl_pressure(11), dimensioanl_temperature(12). +// Important Warning: Array size of probeVariables MUST be equal to nProbeVariables!!! +// probeVariables order must from small to big. +// probeVariablesInterpolationMethod: Interpolation method used to compute the probe variables. +// 0 -- Take the value of probe's cell as probe real value. +// 1 -- Interpolation from probe's and neighbouring cell to probe. +// 2 -- Interpolation from probe's cell nodes to probe. +int ifSetDataMonitor = 0; + +int dataMonitorType = 0; +string probesDefineFile = "bin/probes_XYZ.dat"; + +//int dataMonitorType = 1; +//int nLines = 1; +//string linesDefineFile = "bin/lines_XYZ.dat"; + +//int dataMonitorType = 2; +//int nSurfaces = 4; +//string surfacesDefineFile = "bin/surfaces_XYZ.dat"; + +int searchCellsMethod = 0; + +int nProbeVariables = 14; +int probeVariables[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]; +int probeVariablesInterpolationMethod = 0; + +#************************************************************************ +# Turbulence Parameter * +#************************************************************************ +// turbInterval: Iteration number of turbulence. +// kindOfTurbSource: Kinds of turbulent source. +// 0 -- Original. +// mod_turb_res: If modify the residuals for the cells next to the wall or not, default is 0. +// transitionType: transition model type +// 0 -- none. +// 2 -- gama-re-theta. +// turbIntensity: (valid while greater than 0.0 ) turbulent intensity of free stream(*100) in transition. +// freeturbIntensitySRModify: to use SR modify in free stream turbulent intensity decay or not. +int turbInterval = 1; +int turbOrderStruct = 2; +int kindOfTurbSource = 0; +int mod_turb_res = 0; +double freeStreamViscosity = 1.0e-3; +double muoo = 3.0; +double kwoo = 5.0; +int transitionType = 0; +double turbIntensity = -1.0; +int freeturbIntensitySRModify = 0; +double freeDecayXLocation = 0.0; +int compressibleCorrection = 0; +int transitionMaFix = 1; + +// maximum eddy viscosity (myt/my) max. +double eddyViscosityLimit = 1.0e10; +int monitor_vistmax = 0; + +#************************************************************************ +# LES Parameter * +#************************************************************************ +// iLES: Create LESSolver or not. +// = 1 -- Create LESSolver; +// != 1 -- not. +// amplitudeofDisturb: Amplitude of adding disturb. +// disturbstep: Unsteady time step or steady iteration of adding random disturb. +// iterdisturb: Add random disturb in every sub-iter or only first sub-iter. +// = 0 -- in only first sub-iter; +// != 0 -- in every sub-iter. +// ipraddisturb: Add density and pressure disturb or not. +// ibodyforce: Add body force in source flux of NS equations or not. +// = 0 -- not; +// != 0 -- Add body force. +// bodyforce: Body force in source flux of NS equations or not. +// utau: friction velocity, using in DNSDisturb. +// sgsmodel: subgrid scale model. +// = "smagorinsky"; +// = "dsmCom"; +// = "wale"; +// = "sigma". +// deltaFunctionType: = 1 -- MAX(deltai, deltaj, deltak); +// = 2 -- pow(deltai * deltaj *deltak, 1/3); +// = 3 -- Devloped by Scotti. +// wallDampingFunctionType: = 0 -- no wall function; +// = 1 -- van Driest; +// = 2 -- developed by Dr. Deng Xiaobing; +// = 3 -- developed by Piomelli. +// turbViscousCutType: turbulent viscosity cut type. +// = 0 -- mu_total = mut + mul; +// = 1 -- mu_total = max(mut-mul, 0) + mul; +// = 2 -- mu_total = max(mut , 0) + mul. +// smagConstant: constant of smagorinsky model. +// waleConstant: constant of wale model. +// filterDirection [3]: filter variables in i, j, k direction or not. +// averageDirection[3]: average variables in i, j, k direction or not. +// isotropicConstant: constant of isotropic part of SGS stress. +int iLES = 0; +string sgsmodel = "smagorinsky"; +int deltaFunctionType = 2; +int wallDampingFunctionType = 1; +int turbViscousCutType = 2; +double smagConstant = 0.1; +double isotropicConstant = 0.0; +double waleConstant = 0.6; +double sigmaConstant = 1.35; +int filterDirection[] = [1, 1, 0]; +int averageDirection[] = [0, 0, 0]; +double testFilterScale = 2.0; +int averageWidth = 1; +int monitorNegativeConstant = 0; + +#************************************************************************ +# Other Parameters for Hypersonic Non-equilibrium Gas * +#************************************************************************ +// dg_high_order: +// 0 -- generic order accuracy. +// 1 -- high order accuracy. +// iapplication: +// 0 -- gas model is fixed in the codes. +// 1 -- gas model is imported from library files. +// isAdaptiveSolver: isAdaptiveSolver = 0 indicates the generic Navier-Stokes solver, +// nm: Equation number of the physics, but is out of commision now. +// 4 -- for 2D. +// 5 -- for 3D. +// nGasModel: The type of gas. less than and equal to 1 represents the mixture gas. +// Otherwise, the pure gas with one component is used for perfect gas. +// 0 -- Earth gas. +// 1 -- Mars gas. +// 2 -- Argon. +// 3 -- Nitrogen. +// nEnergyRecycle: The type of EnergyModel Recycle. +// 0 -- not used. +// 1 -- used. +// nDensityModify: The type of densitymodify. +// 0 -- not used. +// 1 -- used. +// nchem: +// 0 -- without chemical reaction flow. +// 1 -- the chemical reaction flow is considered. +// nEquilibriumGas: the variable is valid when the condition of nchem = 0 is satisfied. +// 0 -- perfect gas. +// 5, 7, 11 -- equilibrium gas, meanwhile, its value denotes the number of gas component. +// nPCWCycleStep: The maximum step number of iteration in the module of computing species mass fractions with the partial catalytic wall(PCW) condition. +// The value equals to or is greater than 1, and 3 is for default value. +// nRETCycleStep: The maximum step number of iteration in the module of computing radiation equilibrium temperature on wall. +// The value equals to or is greater than 1, and 3 is for default value. +// nSLIPCycleStep:The maximum step number of iteration in the module of computing slip temperature, slip velocity and slip species mass fraction. +// The value equals to or is greater than 1, and 3 is for default value. +// nSlipBCModel: The computational model of slip boundary conditions. +// 0 -- no slip. +// 1 -- the conventional Maxwell slip conditions. +// 2 -- the Gokcen slip conditions. +// 3 -- the Knudsen-layer correction of the standard slip conditions proposed by Lockerby, et al. +// 4 -- the Kogan simplified slip conditions. +// nMeanFreePathType: the method to the mean free-path for the slip conditions. For the mixture, 0 is suggested. +// 0 -- the equivalent mean free-path is calculated by the simple hard sphere model(HS). +// 1 -- calculated by the definition that includes the variables of the number density and the molecule diameter. +// 2 -- the equivalent mean free-path is calculated by the variable hard sphere model(VHS). +// nchemsrc: +// 0 -- the source terms are not computed. +// 1 -- the source terms are computed. +// nchemrad: +// 0 -- compute the spectrum radius without considering chemical reaction flow. +// 1 -- compute the spectrum radius that need to count the contribution from chemical reaction flow. +// ntmodel: The thermodynamic temperature model. +// 1 -- One-temperature model. +// 2 -- Two-temperature model. +// 3 -- Three-temperature model. +// isUseNoneqCond: +// 0 -- compute the source terms without any conditions. +// 1 -- compute the source terms using the non-equilibrium condition. +// frozenCondition: the threshold value of frozen chemical flow condition, 0.1 is the default value. +// nIdealState: whether take all gas species as ideal gas for gas-mixture process. +// 0 -- No. +// 1 -- Yes. // nTEnergyModel: the method to computing temperature energy model. +// 0 -- the energy term is computed using the conventional method. +// 1 -- the energy term is computed using the polynomial fitting method. +// 2 -- the energy term is computed using the piecewise polynomial fitting method. +// parkVDPower: the power of translational-rotational temperature in the Park V-D(vibration-dissociation) coupling model. +// The value is in range of [0.0, 1.0], DPLR suggests 0.5, LAURA suggests 0.7, while 0.6 is given as default value. +// catalyticCoef: +// 0.0 -- full non-catalytic wall boundary condition. +// 1.0 -- full catalytic wall boundary condition. +// in range of (0.0, 1.0) -- partial catalytic condition, the value indicates the catalytic coefficient. +// nIsSuperCatalytic: the super catalytic condition for the fully catalytic wall, and assigned with the value of 1. +// 0 -- equilibrium condition for the fully catalytic wall where the mass fractions are assigned with the values of the free stream. +// 1 -- super catalytic condition for the fully catalytic wall where all the atomic components combine into molecular components. +// nTemperatureJump: the method to calculate the temperature jump. +// 0 -- calculated by the variables of heat conductivity and constant volume specific heat for each energy mode. +// 1 -- the general method where the iteration is calculated with the translation-rotation temperature. +// nSurfGradMethod: the method to compute the surface heating ratio. +// 0 -- the gradient of variable is computed with the first-order difference method. +// 1 -- the gradient of variable is computed with the Green-Guass integral method. +// nRapidFlowfield: initialize the flowfield using the rapid engineering method when it is greater than zero. +// nSurfHeatMonitor: To exam the surface heating change or not. 0 is no, 1 is yes. +// nInitPressureStep: the steps to initialize the boundary variables when the rapid method is used. 100 is the default value. +// nDumpCFLNumber: 1 indicates dumping the CFL number to file, 0 denotes no dumping. +// sigmaVelocity: the coordination coefficient of tangential momentum for computation of slip velocity. The value is in range of (0.0, 2.0]. +// sigmaTemperature: the heat coordination coefficient for computation of slip temperature. The value is in range of (0.0, 2.0]. +// sigmaMassFraction: the species coordination coefficient for computation of slip mass fractions. The value is in range of (0.0, 2.0]. +// velocitySlipCorrectConstant: the correction constant to the velocity slip condition. For the diffuse reflection, 1.0 is used. +// 1.0 -- proposed by Maxwell. +// sqrt(2/PI)~0.8 -- used for "micro-slip", namely the actual velocity slip at the wall. +// 1.146 -- proposed for an additional "fictitious" velocity slip. +// chemicalRelaxCorf: The value is in range of [0.001, 1.0]. +// spectrumRadiusCoef: The value is in range of [0.0, 2.0]. +// staticPressureRelaxCorf: The value is in range of [0.1, 1.0]. +// nIsChemicalFreeze: the flag to freeze the chemical reactions. +// 0 -- not freeze, the chemical reaction sources will be calculated. +// 1 -- freezes the chemical reactions, the chemical reaction sources will not be calculated. +// veTemperatureMin: The minimum of Tv and Te. +// maxViscous: the maximum of Viscous. +// trTemperatureMin: the minimum value of trTemperature. +// veTemperatureMin: the minimum value of veTemperature. +// densityMin: the minimum value of density. +// tAdjustmentFactor: magnification of temperature, this value is in range of (1.0, 10.0]. +// nDebug: cout the Wrong place and abort +// 0 -- not used. +// 1 -- used. +// nSpeciesLimit: limitter of gas species +// 0 -- not used. +// 1 -- used. +// nTurblenceForChemical: the coupled mode of Turblence and Chemical reaction. +// 0 -- method 0. +// 1 -- method 1. +// nViscosityFluxSublevelModified: Modified for ViscosityFlux on Sublevel grid. +// 0 -- not used. +// 1 -- used. +// nViscosityPeModified: Pe Modified for ViscosityCoef. +// 0 -- not used. +// 1 -- used. +// nChemcalSourceModified: Modified on ChemcalSource. +// 0 -- not used. +// 1 -- used. +// nChemcalSourceEsMethod: Modified on ChemcalSource. +// 0 -- approximation algorithm 1 (Ori). +// 1 -- approximation algorithm 2 (New). +// nMaxStepTemperature: the iterative steps of temperature. +// veTemperatureMinModified: Modified on the minimum of Tve for Cvvs. +// 0 -- not used. +// 1 -- used. +// nDiagonalModified: Modified on Diagonal. +// 0 -- not used. +// 1 -- new. +// nDiagonalModifiedTurb: Modified on Diagonal for turbulence. +// 0 -- not used. +// 1 -- new. +// nGradPrimtiveMethod: +// 0 -- Ori. +// 1 -- new. +// nAblation: +// 0 -- The wall ablation is not computed. +// 1 -- The wall ablation is computed. +// isInjection: +// 0 -- The injection velocity of ablation wall is not computed. +// 1 -- The injection velocity of ablation wall is computed. +// nViscosityModel: +// 0 -- Blottner fitting method(N89). +// 1 -- Gupta fitting method(N90). +// nContinueModel: The new continue model can switch different computation model. +// 0 -- Not use the new continue model. +// 1 -- use the new continue model. +// nSutherland: +// 0 -- stands for selecting the Blotter curve fits mode. +// 1 -- stands for Sutherland relation. +// gasfile: Indicates the gas model, 9 models are provided, namely "Gu5", "Gu7", "Gu11", "Pa5", "Pa7", "Pa11", "DK5", "DK7", "DK11". +// "Gu" -- indicates the Gupta Model, three-Type Models are embeded in the library, namely, the 5-species-6-reactions, the 7-species-9-reactions, the 11-species-20-reactions. +// "Pa" -- indicates the Park Model, three-Type Models are embeded in the library, namely, the 5-species-17-reactions, the 7-species-22-reactions, the 11-species-48-reactions. +// "DK" -- indicates the Dunn-Kang Model, three-Type Models are embeded in the library, namely, the 5-species-11-reactions, the 7-species-15-reactions, the 11-species-26-reactions. +// "Mars-Pa8" is for Park model of Mars gas, "Mars-Mc8" for McKenzie model of Mars gas. +// "Combustion-12" -- indicates the Combustion Chamber Gas Model which includes 12-species-20-reactions. +// "Gas-Mixture" -- indicates the process of mixing gas without reacting. +// for struct solver mixing two species��SpeciesA, SpeciesB��. +// for unstruct solver mixing multi-species��O2 NO CO CO2 H2 N2 Air CH4��. +// For self-definition model, the gasfile is used to indicate the file path of the new gas model. +// speciesName: Used to list the names of each species, while each species name is separated by the symbol of comma. +// initMassFraction: Used to list the initial mass fractions of species in accordance with the sequence of names in the parameter speciesName. +// ifStartFromPerfectGasResults: The chemical reaction simulation is start from perfect gas flowfield or not, 0 is for no and else is for yes. +// nIterFirstStep : the maximum number of iteration in the first step for the self-adaptive calculation. +// nIterSecondStep: the maximum number of iteration in the second step for the self-adaptive calculation. +// nIterThirdStep : the maximum number of iteration in the third step for the self-adaptive calculation. +// nEnergyAssembly: the vibration energy is computed with combined method which includes the fitting method and the molecular kinetic theory. +// 0 -- no, +// 1 -- yes. +// nControlVariable: the variable to computing the residual error that determines the convergence is meet or not in the one-temperature model. +// 0 -- the density. +// 1 -- the translation temperature. +// 2 -- the vibration temperature. +// 3 -- the electron temperature. +// 4 -- the pressure. +// 5 -- the mass fraction of oxygen. +// 6 -- the mass fraction of nitrogen. +// firstStepError : the residual error of the first step iteration for the self-adaptive calculation. +// secondStepError : the residual error of the second step iteration for the self-adaptive calculation. +// thirdStepError : the residual error of the third step iteration for the self-adaptive calculation. +// nProtectData: Use the continuation file data protection mechanism. +// 0 -- no. +// 1 -- yes. +// nTvChange: Judge whether the Tv equals Ttr. +// 0 -- yes. +// 1 -- no. +// isMoleFractionType: 1 indicates the mass fractions, or else the mole fractions. +// nFraction: the initial fractions type of species. +// 0 -- mass fraction. +// 1 -- mole fraction. +int dg_high_order = 0; +int iapplication = 0; +int isAdaptiveSolver = 0; +int nm = 5; +int nEquilibriumGas = 0; +int nPCWCycleStep = 3; +int nRETCycleStep = 3; +int nSLIPCycleStep = 3; +int nIterFirstStep = 1000; +int nIterSecondStep= 2000; +int nIterThirdStep = 2000; +int nEnergyAssembly = 0; +int nControlVariable = 1; +double firstStepError = 0.01; +double secondStepError = 0.001; +double thirdStepError = 0.001; +double predictCFLError = 0.1; + +double refGama = 1.4; +double prl = 0.72; +double prt = 0.90; +double sc_l = 0.5; +double sc_t = 0.5; + +int nGasModel = 0; +int nchem = 0; +int nchemsrc = 1; +int nchemrad = 1; +int ntmodel = 1; + +int nIdealState = 0; +int nEnergyRecycle = 1; +int nSlipBCModel = 0; +int nDensityModify = 1; +int nTEnergyModel = 0; +int nMeanFreePathType = 0; +int nIsChemicalFreeze = 0; +int nIsSuperCatalytic = 1; +int nTemperatureJump = 0; +int nSurfGradMethod = 0; +int nRapidFlowfield = 0; +int nSurfHeatMonitor = 0; +int nInitPressureStep = 100; +int nDumpCFLNumber = 0; + +double parkVDPower = 0.6; +double catalyticCoef = 0.0; +double sigmaVelocity = 1.0; +double sigmaTemperature = 1.0; +double sigmaMassFraction = 1.0; +double velocitySlipCorrectConstant = 1.0; + +double chemicalRelaxCorf = 1.0; +double chemicalSpectrumRadiusCoef = 1.0; +double viscousSpectrumRadiusCoef = 1.5; +double inviscidSpectrumRadiusCoef = 1.5; +double spectrumRadiusCoef = 0.5; +double staticPressureRelaxCorf = 0.2; + +double maxViscous = 10000.0; +double trTemperatureMin = 10.0; +double veTemperatureMin = 30.0; +double maxTemperature = 50000.0; +double densityMin = 1.0e-8; +double densityMinFactor = 0.1; +double tAdjustmentFactor = 10.0; +double iniSpeedCoef = 1.0; +int iniSpeedMode = 0; + +int nDebug = 0; +int nSpeciesLimit = 1; +int nTurblenceForChemical = 0; +int nViscosityFluxSublevelModified = 1; +int nViscosityPeModified = 0; +int nChemcalSourceModified = 2; +int nChemcalSourceEsMethod = 1; +int nMaxStepTemperature = 5; +int veTemperatureMinModified = 1; +int nDiagonalModified = 0; +int nDiagonalModifiedTurb = 0; +int nGradPrimtiveMethod = 1; +int nInviscidFluxModify = 1; +int nQlLimitMethod = 2; +int nSpeciesForWallMethod = 1; +int nDensityForWallMethod = 0; +int wallMultiTemperature = 0; + +int nProtectData = 0; +int nAblation = 0; +int isInjection = 0; +int nViscosityModel = 0; +int nMarsModel = 0; +int nTvChange = 0; +int isMoleFractionType = 0; +string gasfile = "DK5"; +//string gasfile = "./chemical/Dunn-Kang_air5s11r.dat"; +string speciesName = "O, O2, NO, N, N2"; +string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.767"; + +//string speciesName = "O, O2, NO, N, NO+, N2, e-"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.767, 0.0"; + +//string speciesName = "O, O2, NO, N, O+, O2+, NO+, N+, N2+, N2, e-"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767, 0.0"; + +//string gasfile = "Mars-Pa8"; +//string speciesName = "O, O2, NO, N, N2, C, CO, CO2"; +//string initMassFraction = "0.0015, 0.0429, 0.0, 0.0, 0.0, 0.0, 0.0777, 0.8779"; + +//string gasfile = "Pa"; +//string speciesName = "O, O2, NO, N, NO+, C, C2, CO, CO2, CN, N2, e-"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767, 0.0"; + +//string gasfile = "Combustion-12"; +//string speciesName = "O, O2, NO, N, C, CO, CO2, H, H2, OH, H2O, N2"; +//string initMassFraction = "0.0, 0.233, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.767"; + +//string gasfile = "Gas-Mixture"; +//string speciesName = "SpeciesA, SpeciesB"; +//string initMassFraction = "1.0, 0.0"; +int nSutherland = 0; +double gamaSpeciesA = 1.4; +double gamaSpeciesB = 1.3; +double molecularWeightSpeciesA = 29.0; +double molecularWeightSpeciesB = 30.0; + +//string gasfile = "Gas-Mixture"; +//string speciesName = "O2, N2"; +//string initMassFraction = "1.0, 0.0"; + +int nFraction = 0; +int nContinueModel = 0; +int nChemicalFlowStep = 0; +int ifStartFromPerfectGasResults = 0; +int isUseNoneqCond = 0; +double frozenCondition = 0.01; + +int nLeakageMonitor = 0; +double totalLeakageVolume = 1000.0; +double monitorThresholdValue = 0.05; +double sprayFactor = 0.0; + +######################################################################### +// Multi-Grid parameters. +// nMGLevel: The number of level of Multi-Grid. +// <= 1 -- Single-level. +// > 1 -- multi-level. +// MGPreIteration: For each grid, the number of pre-smoothing steps. +// n_post: For each grid, the number of post-smoothing steps. +// MGCoarsestIteration: For the coarest grid the number of smoothing steps. +// MGFasType: V-multi cycle or W-multi cycle. +// 1 -- V-multi cycle. +// 2 -- W-multi cycle. +// flowInitStep: Flow initialization step, 0 - 500 is suggested. +// Multi-Grid : Number of steps computing on coarse grid, during flow initialization. +// Single-Grid: Number of steps computing using first-order with vanleer, during flow initialization. +// mgCFLScale: CFL number enlarge times for coarse grid. +// mprol: Multi-grid interpolation method, interpolation from coarse cell to fine grid. +// 1 -- zero order. +// 2 -- first-order. (default) +// mgCorrectionLimit: Multi-grid correction limit. +int nMGLevel = 1; +int MGCoarsestIteration = 1; +int MGPreIteration = 1; +int MGFasType = 1; +int n_post = 0; +int flowInitStep = 100; +int mprol = 2; +double mgCFLScale = 1.0; +double mgCorrectionLimit = 0.01; + +//--------------- Some parameter for turbulent model -------------------- +// neasm: The variation of kw turbulent model. +// ismooth_turb: Residual smooth for turb or not. +// SSTProductType: The type of product term based on vorticity for SST. +// SAProductType: The type of product term based on vorticity for SA. +int neasm = -3; +int SSTProductType = 0; +int ismooth_turb = 0; +int SAProductType = 2; + +// ----------------- Overset Grid parameter ----------------------------- +int codeOfDigHoles = 1; +int codeOfTurbulentModel = 0; +string masterFileName = "./grid/searchFile.inp"; +string holeBasicFileName = "./grid/holeBasicFile.inp"; +string holeFullFileName = "./grid/holeFullFile.dat"; +string linkFileName = "./grid/topology.dat"; +string zoneInverseFileName = "./grid/zoneInverseMapping.inp"; + +#************************************************************************ +# High Order Struct Solver * +#************************************************************************ +// isFVMOrFDM: +// 0 -- NSSolverStruct using Finite Volume Method. +// 1 -- NSSolverStruct using Finite Differ Method. +// SolverStructOrder: Spatial discretisation order of NS equations with struct grid. +// <= 2 -- finite volume method. +// >= 3 -- finite difference order. (to be completed) +// 0 -- default. +// str_highorder_interpolation_epsilon: Epsilon in weighted interpolation, bigger epsilon, better convergence, +// smaller epsilon, robuster for shock-detecting. +// str_highorder_interpolation_type: +// -- "classical", "test". +// str_highorder_flux_name: +// -- "roe", "steger". +// structhighordergradient: +// -- "conservation", "chain_rule". +int isFVMOrFDM = 0; +string str_highorder_solver = "WCNS"; +int SolverStructOrder = 0; +double str_highorder_interpolation_epsilon = 1.0e-6; +string str_highorder_interpolation_type = "test"; +string str_highorder_flux_name = "steger"; +string structhighordergradient = "conservation"; +double coefofstrflux = 0.5; +double limitcoefofinterface = 0.0; + +// ----------------- Advanced choices ----------------------------------- +// outtimesc: Time stepping scheme for the outer loop. +// MUSCLCoefXk: The parameter of MUSCL interpolations, belongs to [-1, 1]. +// -1 -- seconde-order fully-upwind differencing. +// 0 -- seconde-order upwind-biased differencing. +// 0.333333 -- third-order upwind-biased differencing. +// 1 -- seconde-order central differencing. +// MUSCLCoefXb: The limiter parameter. +// 0 -- the effect of the limiter is cancelled, means the first-order interpolations. +// allReduceStep: Iteration intervals for MPI AllReduce operation, default is 1. +string outtimesc = "impbd2"; +double MUSCLCoefXk = -1; +double MUSCLCoefXb = 1.0; +int allReduceStep = 1; + +// ----------------- overlap configuration ------------------------------ +// codeOfOversetGrid: Overlapping(overset) grid or not. +// 0 -- NON-overlapping grid. +// 1 -- Overlapping grid. +// oversetInterpolationMethod: the method of overset interpolation while field simulation. +// 0 -- set the acceptor cell value by donor cell value. +// 1 -- set the acceptor cell value by distance weight of donor cell value. +// readOversetFileOrNo: Whether to read overset-file(.ovs) that has been generated. +// 0 -- no. +// 1 -- yes. +// symetryOrNot: If there exist symetryplanes(XY plane, the coordinate of Z direction is 0) in +// the current overset grid(only for three dimension). +// 0 -- no. +// 1 -- yes. +// readInAuxiliaryInnerGrid: Whether to read auxiliary inner grid. +// 0 -- no. +// 1 -- yes. +// walldistMainZone: The initial value of background grid which does not exist wall boundary condition. +// toleranceForOversetSearch: The tolerance of overset searching zone to judge whether the obtained node is in the current computing cell. +// toleranceForOversetBox: The tolerance of building the minimum box of computing cells in the overlapping region. +// twoOrderInterpolationOrNot: The number of interpolated cell layers in the overlapping boundary. +// 0 -- one layer. +// 1 -- two layers. +// keyEnlargeOfActiveNodes: The number of enlarged overset-boundary layers in the buffer region. +// outTecplotOverset: Whether to dump out the flowfield data after the progress of overset configure. +// 0 -- no. +// 1 -- yes. +int codeOfOversetGrid = 0; +int oversetInterpolationMethod = 0; +int readOversetFileOrNot = 0; +int symetryOrNot = 0; +int readInAuxiliaryInnerGrid = 0; +int readInAuxiliaryOuterGrid = 0; +int readInSklFileOrNot = 0; +string auxiliaryInnerGrid0 = "./grid/aux-upper.fts"; +string auxiliaryInnerGrid1 = "./grid/aux-lower.fts"; +string auxiliaryInnerGrid2 = ""; +string oversetGridFileName = "./grid/iblank.ovs"; +double walldistMainZone = 1.0 +double toleranceForOversetSearch = 1.0e-3; +double toleranceForOversetBox = 1.0e-3; +int twoOrderInterpolationOrNot = 0; +int keyEnlargeOfActiveNodes = 0; +int outTecplotOverset = 0; +int outPutOversetVisualization = 0; +int numberOfMovingBodies = 2; + +// ----------------- ALE configuration ------------------------------ +int codeOfAleModel = 0; +int aleStartStrategy = -1; + +double referenceLength = 1.0; +double referenceVelocity = 1.0; +double referenceDensity = 1.0; + +int strategyForFaceNormalVelocity = 0; // 0-By Sweeping volume; 1-By face center 1st; 2-By face center 2nd. +int strategyForGCLSource = 0; // 0-present; 1-Ahn. + +// 0: 1st-Admas-Bashforth; 1: 2nd-Admas-Bashforth; 2: 1st-Implicit-Euler; 3: 2nd-Implicit Euler; 4: 2nd-Adams-Moulton; 5: 3rd-Adams-Moulton. +int methodForKineticEquation = 0; +double relaxParameterOfKinetic = 1.0; + +#************************************************************************ +# motive information * +#************************************************************************ +int numberOfMovingBodies = 1; + +############################## body0 ############################## +// mass of parts. +double mass_0 = 1.0; +// gravity of parts (along negative direction in Y-axis, eg. 9.8). +double gravity_0 = 0.0; +// mass matrix of parts Ixx Iyy Izz Ixy Ixz Iyz. +double massMatrix_0[] = 1e-7, 1e-6, 1e-6, 0.0, 0.0, 0.0; +// initial six DOF position information of parts. xc yc zc. +double massCenter_0[] = 0.0, 0.0, 0.0; +// if reset mass center while restart. +int resetMassCenter_0 = 0; +// position offset of parts. dx dy dz. +double massCenterDxyz_0[] = 0.0, 0.0, 0.0; +// initial six DOF position information of parts. angleX angleY angleZ. +double attitudeAngle_0[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. vc vy vz. +double massCenterVelocity_0[] = 0.0, 0.0, 0.0; +// initial six DOF move information of parts. omigX omigY omigZ. +double angularVelocity_0[] = 0.0, 0.0, 0.0; +// the object that the parts belong to. +int fartherIndex_0 = -1; +// the assembly position of the parts. xc yc zc angleX angleY angleZ. +double configPamameter_0[] = 0.0, 0.0, 0.0, 0.0, 0.0, 0.0; +// the move pattern of the parts. +// -1 given motion partten. +// 0 still. +// 1 six DOF motion. +// 2 three DOF motion. +// 11 X-axis forced motion. +// 12 Y-axis forced motion. +// 13 Z-axis forced motion. +// 14 forced pitch motion. +// 15 forced yaw motion. +// 16 forced roll motion. +int RBDMethod_0 = 0; +double amplitude_0 = 0.0; +double reduceFrequency_0 = 0.0; +// direction of rotation. +// 1 -- clockwise from the point of view along the positive x axis. +// -1 -- anticlockwise from the point of view along the positive x axis. +int direction_0 = -1; +double rotateFrequency_0 = 0.0; +//string uDFSixDofFileName_0 = "./Bin/UDFSixDof.Parameter"; +// dimensional physical time for additional force(s). +double addedForceTime_0[] = 0.0; +// additional force(inertia system) fX fY fZ. +double addedForce_0[] = 0.0, 0.0, 0.0; +// additional moment(inertia system) mX mY mZ. +double addedMoment_0[] = 0.0, 0.0, 0.0; +// the deformation method of the parts. +int morphing_0 = 0; + +// post indentify. +int integralOrder = 4; + +// ---------------- ATP read -------------------------------------------- +//@int inflowParaType = 0; +//@double refReNumber = 6.5e6; +//@double refDimensionalTemperature = 288.15; +//@double freestream_vibration_temperature = 300.00; +//@double refDimensionalPressure = 0; +//@double height = 0; +//@int nsubsonicInlet = 0; +//@int nsubsonicOutlet = 0; +//@string inLetFileName = "./bin/subsonicInlet.hypara"; +//@string outLetFileName = "./bin/subsonicOutlet.hypara"; +//@double refDimensionalVelocity = 0; +//@double refDimensionalDensity = 0; +//@string weatherDataFilePath = "./WRFData/"; +//@double longitude = 110.95 +//@double latitude = 19.61; +#************************************************************************ +# Old Parameter * +#************************************************************************ +int isPlotVolumeField = 0; + +#************************************************************************ +# partial flow field setting Parameter * +#************************************************************************ +//int nPartialParameter = 0; // 0/1/2 +//int nNumberOfPartialField = 0; // +//int nStartGridIndex[] = [0]; +//int nEndGridIndex[] = [0]; + +//double partialCFL[] = [0.0]; +//double partialSpeedCoef[] = [0.0]; +//double partialSpeed[] = [0.0]; +//double partialAttackd[] = [0.0]; +//double partialSlide[] = [0.0]; +//double partialPressure[] = [0.0]; +//double partialTemperature[] = [0.0]; +//double partialMassFractions[] = [0.0]; + +#************************************************************************ +# Incompressible Parameter * +#************************************************************************ +int isSolveEnergyEquation = 0; +int isSolveTurbEquation = 0; +int isSolveSpeciesEquation = 0; \ No newline at end of file diff --git a/L06_TwoD_Spoiler_BGK_OMP_4CPU/bin/input.txt b/L06_TwoD_Spoiler_BGK_OMP_4CPU/bin/input.txt new file mode 100644 index 0000000..ba067cb --- /dev/null +++ b/L06_TwoD_Spoiler_BGK_OMP_4CPU/bin/input.txt @@ -0,0 +1,33 @@ +0 !MRT set 1, BGK set 0 +0 ic.plt !CONTI, resume :1 , new 0 //follows input datafile name +0 !LES yes: 1 , no: 0 +1 mesh_2d.dat !GEO read complex geo? yes:1, no:0 //follows input datafile name +1 ! MB multiblock LBM? yes:1, no:0 +0 2.e-3 !CONV using converge criterion? yes:1, no:0 +600 !NX +400 ! NY +1 ! NZ +240 ! NX2 +160 ! NY2 +1 ! NZ2 +200 ! LowX +160 ! LowY +0 ! LowZ +200 ! framerate +50000 !total steps to terminate +1.0 ! density +0.54 ! tau +(0.0, 0.0, 0.0000000) ! Volumetric force vector (gx, gy, gz) +D2Q9 ! velocity set +Poiseuille ! boundary condition +! note: in the following, boundary types: periodic,velocity, pressure +! are allowed. if "velocity" is applied, please strictly follow the format "velocity (%lf, %lf, %lf)". +velocity (0.1, 0.00, 0.0) !xmin face +pressure 1.0 !xmax face +velocity (0.1, 0.00, 0.0) !ymin face +velocity (0.1, 0.00, 0.0) !ymax face, +nonslip !zmin face +nonslip !zmax face +-------------------! initial velocity field +(0.1, 0.00, 0.0) + diff --git a/H03_PBSolver_TwoD_Cavity_Laminar_Re1000_Unstruct_1CPU/bin/key.hypara b/L06_TwoD_Spoiler_BGK_OMP_4CPU/bin/key.hypara similarity index 91% rename from H03_PBSolver_TwoD_Cavity_Laminar_Re1000_Unstruct_1CPU/bin/key.hypara rename to L06_TwoD_Spoiler_BGK_OMP_4CPU/bin/key.hypara index 9c32184..c267e0a 100644 --- a/H03_PBSolver_TwoD_Cavity_Laminar_Re1000_Unstruct_1CPU/bin/key.hypara +++ b/L06_TwoD_Spoiler_BGK_OMP_4CPU/bin/key.hypara @@ -17,12 +17,12 @@ string defaultParaFile = "./bin/cfd_para.hypara"; int ndim = 2; int nparafile = 1; -int nsimutask = 0; -string parafilename = "./bin/cfd_para_incompressible.hypara" +//int nsimutask = 0; //string parafilename = "./bin/cfd_para_subsonic.hypara"; //string parafilename = "./bin/cfd_para_transonic.hypara"; //string parafilename = "./bin/cfd_para_supersonic.hypara"; //string parafilename = "./bin/cfd_para_hypersonic.hypara"; +//string parafilename = "./bin/cfd_para_incompressible.hypara"; //int nsimutask = 1; //string parafilename = "./bin/grid_para.hypara"; @@ -39,6 +39,9 @@ string parafilename = "./bin/cfd_para_incompressible.hypara" //int nsimutask = 1; //string parafilename = "./bin/grid_refine_para.hypara"; +int nsimutask = 17; +string parafilename = "./bin/cfd_para.hypara"; + //int nsimutask = 14; //string parafilename = "./bin/integrative_solver.hypara"; diff --git a/L06_TwoD_Spoiler_BGK_OMP_4CPU/mesh_2d.dat b/L06_TwoD_Spoiler_BGK_OMP_4CPU/mesh_2d.dat new file mode 100644 index 0000000..0f2d10d --- /dev/null +++ b/L06_TwoD_Spoiler_BGK_OMP_4CPU/mesh_2d.dat @@ -0,0 +1,303 @@ +Title = "finite-element data" +variables = x, y, z +zone n= 150, E= 150,f=FEpoint,et = triangle +100 80 0 +99.9825 80.8375 0 +99.9299 81.6736 0 +99.8423 82.5067 0 +99.7199 83.3354 0 +99.563 84.1582 0 +99.3717 84.9738 0 +99.1464 85.7806 0 +98.8875 86.5773 0 +98.5955 87.3625 0 +98.2709 88.1347 0 +97.9142 88.8927 0 +97.5261 89.6351 0 +97.1073 90.3605 0 +96.6584 91.0678 0 +96.1803 91.7557 0 +95.6739 92.423 0 +95.1399 93.0684 0 +94.5794 93.6909 0 +93.9933 94.2895 0 +93.3826 94.8629 0 +92.7485 95.4103 0 +92.092 95.9306 0 +91.4143 96.423 0 +90.7165 96.8866 0 +90 97.3205 0 +89.2659 97.7241 0 +88.5156 98.0965 0 +87.7503 98.4373 0 +86.9714 98.7456 0 +86.1803 99.0211 0 +85.3784 99.2633 0 +84.567 99.4716 0 +83.7476 99.6457 0 +82.9217 99.7854 0 +82.0906 99.8904 0 +81.2558 99.9605 0 +80.4188 99.9956 0 +79.5812 99.9956 0 +78.7442 99.9605 0 +77.9094 99.8904 0 +77.0783 99.7854 0 +76.2524 99.6457 0 +75.433 99.4716 0 +74.6216 99.2633 0 +73.8197 99.0211 0 +73.0286 98.7456 0 +72.2497 98.4373 0 +71.4844 98.0965 0 +70.7341 97.7241 0 +70 97.3205 0 +69.2835 96.8866 0 +68.5857 96.423 0 +67.908 95.9306 0 +67.2515 95.4103 0 +66.6174 94.8629 0 +66.0067 94.2895 0 +65.4206 93.6909 0 +64.8601 93.0684 0 +64.3261 92.423 0 +63.8197 91.7557 0 +63.3416 91.0678 0 +62.8927 90.3605 0 +62.4739 89.6351 0 +62.0858 88.8927 0 +61.7291 88.1347 0 +61.4045 87.3625 0 +61.1125 86.5773 0 +60.8536 85.7806 0 +60.6283 84.9738 0 +60.437 84.1582 0 +60.2801 83.3354 0 +60.1577 82.5067 0 +60.0701 81.6736 0 +60.0175 80.8375 0 +60 80 0 +60.0175 79.1625 0 +60.0701 78.3264 0 +60.1577 77.4933 0 +60.2801 76.6646 0 +60.437 75.8418 0 +60.6283 75.0262 0 +60.8536 74.2194 0 +61.1125 73.4227 0 +61.4045 72.6375 0 +61.7291 71.8653 0 +62.0858 71.1073 0 +62.4739 70.3649 0 +62.8927 69.6395 0 +63.3416 68.9322 0 +63.8197 68.2443 0 +64.3261 67.577 0 +64.8601 66.9316 0 +65.4206 66.3091 0 +66.0067 65.7105 0 +66.6174 65.1371 0 +67.2515 64.5897 0 +67.908 64.0694 0 +68.5857 63.577 0 +69.2835 63.1134 0 +70 62.6795 0 +70.7341 62.2759 0 +71.4844 61.9035 0 +72.2497 61.5627 0 +73.0286 61.2544 0 +73.8197 60.9789 0 +74.6216 60.7367 0 +75.433 60.5284 0 +76.2524 60.3543 0 +77.0783 60.2146 0 +77.9094 60.1096 0 +78.7442 60.0395 0 +79.5812 60.0044 0 +80.4188 60.0044 0 +81.2558 60.0395 0 +82.0906 60.1096 0 +82.9217 60.2146 0 +83.7476 60.3543 0 +84.567 60.5284 0 +85.3784 60.7367 0 +86.1803 60.9789 0 +86.9714 61.2544 0 +87.7503 61.5627 0 +88.5156 61.9035 0 +89.2659 62.2759 0 +90 62.6795 0 +90.7165 63.1134 0 +91.4143 63.577 0 +92.092 64.0694 0 +92.7485 64.5897 0 +93.3826 65.1371 0 +93.9933 65.7105 0 +94.5794 66.3091 0 +95.1399 66.9316 0 +95.6739 67.577 0 +96.1803 68.2443 0 +96.6584 68.9322 0 +97.1073 69.6395 0 +97.5261 70.3649 0 +97.9142 71.1073 0 +98.2709 71.8653 0 +98.5955 72.6375 0 +98.8875 73.4227 0 +99.1464 74.2194 0 +99.3717 75.0262 0 +99.563 75.8418 0 +99.7199 76.6646 0 +99.8423 77.4933 0 +99.9299 78.3264 0 +99.9825 79.1625 0 +1 2 1 +2 3 2 +3 4 3 +4 5 4 +5 6 5 +6 7 6 +7 8 7 +8 9 8 +9 10 9 +10 11 10 +11 12 11 +12 13 12 +13 14 13 +14 15 14 +15 16 15 +16 17 16 +17 18 17 +18 19 18 +19 20 19 +20 21 20 +21 22 21 +22 23 22 +23 24 23 +24 25 24 +25 26 25 +26 27 26 +27 28 27 +28 29 28 +29 30 29 +30 31 30 +31 32 31 +32 33 32 +33 34 33 +34 35 34 +35 36 35 +36 37 36 +37 38 37 +38 39 38 +39 40 39 +40 41 40 +41 42 41 +42 43 42 +43 44 43 +44 45 44 +45 46 45 +46 47 46 +47 48 47 +48 49 48 +49 50 49 +50 51 50 +51 52 51 +52 53 52 +53 54 53 +54 55 54 +55 56 55 +56 57 56 +57 58 57 +58 59 58 +59 60 59 +60 61 60 +61 62 61 +62 63 62 +63 64 63 +64 65 64 +65 66 65 +66 67 66 +67 68 67 +68 69 68 +69 70 69 +70 71 70 +71 72 71 +72 73 72 +73 74 73 +74 75 74 +75 76 75 +76 77 76 +77 78 77 +78 79 78 +79 80 79 +80 81 80 +81 82 81 +82 83 82 +83 84 83 +84 85 84 +85 86 85 +86 87 86 +87 88 87 +88 89 88 +89 90 89 +90 91 90 +91 92 91 +92 93 92 +93 94 93 +94 95 94 +95 96 95 +96 97 96 +97 98 97 +98 99 98 +99 100 99 +100 101 100 +101 102 101 +102 103 102 +103 104 103 +104 105 104 +105 106 105 +106 107 106 +107 108 107 +108 109 108 +109 110 109 +110 111 110 +111 112 111 +112 113 112 +113 114 113 +114 115 114 +115 116 115 +116 117 116 +117 118 117 +118 119 118 +119 120 119 +120 121 120 +121 122 121 +122 123 122 +123 124 123 +124 125 124 +125 126 125 +126 127 126 +127 128 127 +128 129 128 +129 130 129 +130 131 130 +131 132 131 +132 133 132 +133 134 133 +134 135 134 +135 136 135 +136 137 136 +137 138 137 +138 139 138 +139 140 139 +140 141 140 +141 142 141 +142 143 142 +143 144 143 +144 145 144 +145 146 145 +146 147 146 +147 148 147 +148 149 148 +149 150 149 +150 1 150