couplingProperties
General
The couplingProperties dictionary defined the setup of the coupling
routines for the coupled CFD-DEM simulation.
Location: $caseDir/CFD/constant
Structure: The dictionary is typically divided into two parts:
sub-models & settings specifies which models to use and contains global settings like the particle shape. These settings are documented on this page.
sub-model properties contains sub-dictionaries to configure the individual models. Those model-specific settings are found in the articles on individual models.
Model selection
- voidFractionModel
The voidfraction model to use
- locateModel
The locate model to use.
- dataExchangeModel
- Default:
The dataExchangeModel to use.
- meshMotionModel
- Default:
The mesh motion model to use.
- IOModel
- Default:
The IO model to use. With the default setting no extra particle data is written by CFDEMcoupling. Instead the output of DEM data is triggered at every CFD write time, see writeAsx.
- probeModel
- Default:
The probeModel to use.
- averagingModel
- Default:
The averaging model to use.
- clockModel
- Default:
The clockModel to use.
- smoothingModel
- Default:
The smoothingModel to use.
- forceModels
- Type:
list
List of force models to use.
- postProcessingModels
- Default:
By default, the models checkCouplingInterval and checkFluxBalance are loaded.
- Type:
list
List of post processing models to use.
- asxCommands
- Default:
By default the list
(runAsx writeAsx)is used, loading the models to run asx and write restart files. Additional configuration of the models in their inidividual properties sub-dictionaries is, of course, possible.- Type:
list
List of command models to use.
Note
Also check the documentation of the enable_cfd_coupling command on how Aspherix interacts with CFDEMcoupling.
- momCoupleModels
- Default:
set by solver
- Type:
list
List of momentum couple models to use. By default, models that are supported by the solver are used. The user can restrict the models used in the simulation by this setting. Momentum couple models that are not supported by the solver cannot be used.
- turbulenceModelType
File name of dictionary to use for configurationof turbulence models.
Note
This setting is not available for versions compiled with OpenFOAM-8 and higher.
Model and parameter settings
- modelType
Sets which model type to use and refers to the formulation of the equations to be solved. The available options correspond to the defintions used in Zhou et al. (2010): “Discrete particle simulation of particle-fluid flow: model formulations and their applicability”, JFM.
"A"requires the use of the force models gradPForce and viscForce. Corresponds to model type II in Zhou et al."B"requires the force model Archimedes. Corresponds to model type III in Zhou et al."Bfull"refers to model type I in Zhou et al.
- fluidDensity
The fluid density
Note
This setting is only used in single phase solvers for incompressible flow, namely cfdemSolverPiso, cfdemSolverPisoScalar, cfdemSolverPimple, cfdemSolverIB
- particleShapeType
- Default:
"sphere"
Defines which particle shape is used. Further valid values are
"multisphere","superquadric", and"convex".
- particleShapeProps
- Type:
dictionary
This dictionary may contain further settings related to the particle shape:
DHc: define scale factor for the clump diameter (and so also volume) for each clump type (e.g. multisphere type defined on the DEM side). Default value is 1 for each type. Input is a scalarList. It’s length must be identical to the number of particle shapes. The diameter is calculated from the clump volume coming from Aspherix®:
Note that this is a hydraulic diameter, i.e. that of a sphere with identical volume.
The clump volume is calculated by Aspherix® using a Monte Carlo integration of all
the spheres within the clump, or by the given mass and density, see
particle_template command for more details.area: Surface area for each clump type. By default the surface area is computed as surface of a sphere with equivalent volume. This calculation is triggered when the area entered by the user is smaller than zero. This means that mixed settings with the area for only some clump being computed automatically are also possible.
- solveFlow
- Default:
true- Type:
Switch
Switch to determine, whether the fluid equations are solved or not. By setting solveFlow to
false, the fluid solver becomes inactive.
- couplingInterval
- Default:

- Type:
integer
the number of DEM time steps between CFD-DEM data exchanges. Its default value is set in a way that data is exchanged with the DEM after every CFD time step.
Note
If specifying the
couplingIntervalmanually make sure that the CFD time step is a multiple of the DEM time step multiplied by thecouplingInterval, i.e.DEM time step * coupling interval = n * CFD time-stepwithnbeing a natural number. This restriction especially means that the CFD time step is larger than DEM time step times ``couplingInterval``.Example
DEMts = 1e-5,CFDts = 1e-4==>couplingInterval = 10means that data exchange (i.e. coupling between CFD and DEM) will happen every 10 DEM time steps and, thus, every 1e-4 s.
- expCorrDeltaUError
- Default:
false- Type:
Switch
Can be used with solvers capable of handling explicit volumetric forces on the fluid. Typiocally, implicit force coupling will result in a small difference in the coupling force exerted on the particles and the fluid, i.e. a small violation of Newton’s Third Law. This error can be calculated by
TotalError(dU) = Ksl*(Uf_preStep - Uf_postStep), since CFD experiences newUfvalues, while particles only experience drag withUf_postStep.expCorrDeltaUError truewill correct for this error in an explicit fashion.Note
Typically, correcting for this error results in a less stable solution. The sum of this error normalized by the total implicit drag is displayed during the simulation.
- useDDTvoidfraction
- Default:
"off"
Defines how to caluclate the time derivatve of voidfraction. Following values are recognized:
"a"– compute from divergence of mapped particle velocities, i.e.fvc::div(Us*(1 - voidfraction))."b"– direct variant , i.e.fvc::ddt(voidfraction)."off": ignore the time derivative of the voidfraction field, resulting inddt(voidfraction) = 0. Since the time derivative of this field usually varies substantial in time and space, this is the default behavior to improve numerical stability.
An exclusion mask for
ddt(voidfraction)can be configured in the voidfraction model.
- verbose
- Default:
false- Type:
Switch
Display extra output on coupling procedure for debugging purposes.
- fieldVerbosity
- Default:
0- Type:
integer
Integer value to activate writing of more fields, e.g.
Us. Most solvers will write all fields when settingfieldVerbosity 1. With the default setting, no additional fields will be written. Intended for debugging purposes.
- fixedFluxPressureCheck
- Default:
true- Type:
Switch
Check that
fixedFluxPressureboundary conditions are used for the pressure field. This check is performed by default and disallows the usage ofzeroGradientconditions for pressure. If you want to usezeroGradientconditions, this switch must be set tofalse.
Extra settings for concave particles
- concaveWeightList
- Type:
list
In Aspherix and CFDEMcoupling concave particles are generally represented by an assembly of convex particles. When running simulations with concave particles, use
particleShapeType "convex"and specify the contribution of each convex particle to the entire concave object manually using this setting.Example
Assuming two concave particles, the first consisting of three, the second fo two convex particles, we have five convex particle types in total.
particleShapeType "convex"; concaveWeightList ( 0.3 0.5 0.2 // contributions to first concave 0.5 0.5 // contributions to second concave );
Warning
The order of this list important: The weights for each convex particle must be given in the same order as used in Aspherix during the definition of the particle templates.
Settings for Volume-of-Fluid solvers
For the Volume-of-Fluid (VoF)s solver cfdemSolverInter restrictions resulting from the phase boundary must be taken into account.
In general, discontinuities may arise at the fluid-fluid interface, for instance in the pressure field. These discontinuities render the results of interpolation or gradients calculated across this interface numerically very delicate and usually meaningless.
- noParticlesAtInterface
- Default:
false- Type:
Switch
Forces the user to confirm that particles are not close to the liquid-gas interface in case
Pressure gradients are used due to the gradPForce forceModel being present.
Any force model will interpolate fluid fields to the particle positions.
- phaseChange
- Default:
trueif a temperatue field calledTis defined in thestartTimefolder,falseotherwise- Type:
Switch
Consider phase change or solve for the temperature field. Can be dectivated manually using this switch, see also cfdemSolverInter.
IB settings
In simualtions using an IB-style locate model, e.g. engineIB,
periodic boundaries need to be declared explicitly in couplingProperties,
especially in setups where particles cross this periodic boundary.
An example setup using these settings is found in the case
tutorials/cfdemSolverIB/periodicSettling.
- checkPeriodicCells
- Default:
false- Type:
Switch
Check for particles in cells at periodic boundaries
- wall_blockPeriodicityCheck
- Default:
false, for each coordinate direction- Type:
dictionary
Dictionary containing entries for individual coordinate directions. Each entry defines if periodicity checks in this direction are performed.
- wall_periodicityCheckTolerance
- Default:
1e-7- Type:
scalar
Tolerance for wall peridicity checks
Example
// handle periodic wall
checkPeriodicCells true;
wall_blockPeriodicityCheck
{
x true;
y true;
z false; //periodic in this direction
}
wall_periodicityCheckTolerance 1e-8;
Home