MAIA bb96820c
Multiphysics at AIA
|
m-AIA is a numerical simulation framework comprising the solvers listed below. More information on the individual solvers can be found on the respective page.
The solvers can be arbitrarily coupled by a coupling class, in which the transfer of information between the solver interfaces is defined (cf. Coupling). The solvers run on subsets of a shared unstructured Cartesian mesh, which is generated in the Mesh Generation. This ensures an efficient coupling of the solvers in multisolver simulations. For single solver Finite volume (FV) simulations also an option to use a Structured Finite Volume (FVSTRCTRD) Grid is available.
Some properties are solver independent and are required for each simulation. They describe, for example, for how many time steps a simulation should run, which solvers are used and in which order they are executed. The execution order of the solvers is handled in Recipe. Below an example property file is shown for a coupled Level-set (LS) and Finite Volume Moving-Boundary (FVMB) simulation. A list of all solver independet properties is given in the table on the bottom of the page.
The Cartesian mesh can be adapted according to the solver solutions during or before the solver run. Mesh adaptation means that the mesh resolution can be adjusted during the solver run, which can be useful when, for example, a distinct flow feature, such as a traveling shock wave, is supposed to be sufficiently resolved. More information on the mesh adaptation can be found here Adaptive mesh refinement (AMR).
Due to the mesh adaptation, the computational workload on the individual processors changes during the simulation. To avoid large load imbalances a Dynamic Load Balancing (DLB) is required.
Property | Type | Description |
---|---|---|
nDim | Int | Number of space dimensions. |
multiSolverGrid | Bool | Set to true if more than one solver is used. |
gridGenerator | Bool | If true the Mesh Generation is executed. Musst be unequal to flowSolver. |
flowSolver | Bool | If true a solver run is started. Musst be unequal to gridGenerator. |
postProcessing | Bool | Activates the post-processing. |
scratchSize | Int | During a simulation the memory is dynamically allocated and cleard if required by the solution algorithms. Scratch size defines the buffer size of memory reserved for this dynamic memory allocation. |
timeSteps | Int | The number of time steps that will be executed. |
testcaseDir | String | Path to simulation directory (Best leaf at "./"). |
restartDir | String | Directory from which restart files are read in case of a simulation restart. Use relative path from testcaseDir. If empty restartDir is set to outputDir. |
inputDir | String | Input directory for ACA solver and location of geometry file (geometryInputFileName). Use relative path from testcaseDir. |
outputDir | String | Directory to which restart files are written. Use relative pwth from testcaseDir. |
solutionOutput | String | Directory to which solver specific solution files are written. |
gridInputFileName | String | Name of grid file to be used for the simulation. |
geometryInputFileName | String | Name of geometry file to be used for the simulation. |
restartFile | Bool | Specifies whether a simulations is newly initialized or restarted from specific restart file. |
restartTimeStep | Int | Time step from which simulation is restarted (requires restartFile=true). |
restartInterval | Int | Interval in which restart files are written. |
solutionInterval | Int | Interval in which solver solution files are written. |
useNonSpecificRestartFile | Bool | If true, previous restart files will be overwritten and current time step is read from restart file. Property 'restartTimeStep' will be ignored. |
noSolvers | Int | The number of solvers used in the simulation. |
solvertype | String | The type of the solver to be created. The solvers grid type is automatically determined. |
noHaloLayers | Int | The number of halo layers for parallel simulations or periodic domains. The number of halo layers between solvers can differ. |
noCouplers | Int | The number of couplers used for the coupling of the solver. |
couplerType_ | String | The type of coupler that is used. The coupler type depends on the solvers that are coupled. |
executionRecipe | String | Sets the type of the execution Recipe. |
recipeMaxNoSteps </tb> | Int | This property specifies the MAIAExecutionRecipe::m_maxNoSteps of sub steps performed in the execution Recipe. |
solverOrder_* | Int | This property if a solver is active during a specific sub step of the execution Recipe. solverOrder needs to be set for each solver individually, where * is replaced by the solver id. This property is given as an array, e.g., for MAIAExecutionRecipe::m_maxNoSteps = 2: [1,0] if solver is active in first step and inactive in second step. |
couplerType_* | String | Sets the type of the couplers. The couplerType depends on the solvers used. This property is set for each coupler indivudally by replacing * with the coupler id. |
couplerOrder_* | Int | This property if a solver is active during a specific sub step of the execution Recipe. solverOrder needs to be set for each solver individually, where * is replaced by the solver number. This property is given as an array, e.g., for MAIAExecutionRecipe::m_maxNoSteps = 2: [1,0] if solver is active in first step and inactive in second step. |
solversToCouple_* | Int | Detremines which solver are coupled by the specific coupler. Replace * with the respective coupler id. Each coupler couples to solvers. E.g., write [1,2] to couple solvers 1 and 2. |
maxNoCells | Int | For each grid cell handled by a single processor, memory allocated. This property limits the maximum number of cells per processor and thereby influences the memory foot print. |
minLevel | Int | The grid level on which the partitioning of the grid is performed if no partition level shift exists. The minLevel is set during the Mesh Generation. Maybe you can find some information on partition level shifts in section ugHPC or Parallelization. |
maxUniformRefinementLevel | Int | The maximum grid level to which each minLevel cell is refined. See also Mesh Generation. |
maxBoundaryRfnLvl | Int | The maximum grid level to which cells at the speciefied domain boundaries are refined. |
maxRfnmntLvl | Int | The maximum grid level allowed. |
adaptation | Bool | If true, the Adaptive mesh refinement (AMR) of the Cartesian mesh is allowed. |
initialAdaptation | Bool | If a new simulation is initialized (restartFile=false), a mesh adaptation based on the solver intital conditions can be forced. |
adaptationOrder | Int | Specifies in which sub steps of the execution Recipe a mesh adaptation is allowed. Specify as array, e.g., for MAIAExecutionRecipe::m_maxNoSteps = 2: [1,0] if adapation is only allowed after the first sub step. |
balance | Bool | If true, the Dynamic Load Balancing (DLB) is activated. |
dualTimeStepping | Bool | The #ref ugFV solver featrues a dual time stepping method. (Untested, use at own risk.) |
splitMpiComm | Bool | See Finite volume (FV) and Discontinuous Galerkin (DG) for more information. If unsure set splitMpiComm=false. |
noPostProcessing | Int | The number of post-processing solvers. For more information on post-processing see Postprocessing. |