The configuration file - gnomeCreative/HYBIRD GitHub Wiki

The configuration file, which include setting for both DEM and LBM, is now described.

Switchers for solvers

demSolver: Activates the DEM solver. Note that particles can be included also if this parameter is off, but they will not move (see objects below). Type: Boolean (0-1) Default: 0

lbmSolver: Activates the LBM solvers. If off, no fluid is included. Type: Boolean (0-1) Default: 0

freeSurfaceSolver: Activates the free-surface solver for LBM. If off, the free surface will not evolve. This is mostly an optimization parameter: if there is no need for the free surface to evolve, keeping it off will increase performance. Type: Boolean (0-1) Default: 0

forceFieldSolver: Activates the acceleration field for LBM. If off, there is no external forcing. This is another optimization parameter: keeping it off will increase (slightly) performance. Type: Boolean (0-1) Default: 0

staticFrictionSolver: Activates static friction in LBM. If off, friction is only a dissipative force that cannot sustain stable structures. This is a key optimization parameter for DEM: keeping it off when not necessary will greatly increase performance. Type: Boolean (0-1) Default: 0

Problem Name

problemName: Unless the code has been modified for a specific problem, this parameter should be kept to NONE. It is used to activate parts of the codes that have been implemented for a specific geometry or problem (e.g., an algorithm for printing some additional files, or a special geometry). Type: String Default: NONE

Problem File

problemFile: This is used to add a Yaml file for geomnetrical entities. The structure of a Yaml file is described in the Section Geometry Type: String Default: none, it is simply ignored

Output

screenExpTime: Simulation time interval between two on-screen prints of the state of the system. This is not automatically set to happen at every time step an in LES. If screenExpTime=0, this output is suppressed. Type: Double Default: 0.0

fluidExpTime: Simulation time interval between two creations of fluid Paraview files. If fluidExpTime=0, this output is suppressed. Type: Double Default: 0.0

fluidLagrangianExpTime: Simulation time interval between two creations of a special type of fluid Paraview files. It is called Lagrangian because the fluid nodes are printed as if they were a collection of point particles. This can be handy if the volume of simulated fluid is much smaller than the volume of the domain. If fluidLagrangianExpTime=0, this output is suppressed. Type: Double Default: 0.0

partExpTime: Simulation time interval between two creations of particle Paraview files. If partExpTime=0, this output is suppressed. Type: Double Default: 0.0

partRecycleExpTime: Simulation time interval between two creations of particle restart files. If partRecycleExpTime=0, this output is suppressed. Type: Double Default: 0.0

fluidRecycleExpTime: Simulation time interval between two creations of fluid restart files. If fluidRecycleExpTime=0, this output is suppressed. Type: Double Default: 0.0

fluid2DExpTime: Simulation time interval between two creations of bi-dimensional (integrated) files. This is a type of file handy for free-surface flows, where the coordinate z is aligned with gravity. It shows variables integrated over the flow thickness, in the vertical direction. If fluid2DExpTime=0, this output is suppressed. Type: Double Default: 0.0

objectExpTime: Simulation time interval between two creations of object restart files. If objectExpTime=0, this output is suppressed. Type: Double Default: 0.0

singleObjects: Write here the ID number of objects that should be tracked, in terms of impact forces. Type: Array of integers Default: " " (empty)

Time integration

demInitialRepeat: This activates the possibility to have DEM run for a specific time before LBM starts to iterate. Useful if the particles need to arrange on specific patterns before the fluid should begin. It is, however, recommended to not use this parameter. It is better to have a specific, DEM-only simulation run, and then use the particle recycle files. Type: Double Default: 0.0

lbmInitialRepeat: This activates the possibility to have LBM run for a specific time before DEM starts to iterate. Useful if the fluid pressure field needs to stabilize before the DEM simulation triggers. Type: Double Default: 0.0

maximumTimeSteps: If non-zero, the system stops when the prescribed maximum number of LBM iterations has been achieved. If 0, there is no control on the maximum number of iterations. Type: Integer Default: 0

maxTime: Maximum simulated time allowed for the simulation (regardless of whether it is an LBM or DEM simulation). If 0.0, there is no control on the maximum simulated time. Type: Double Default: 0.0

fluidTimeStep: The time step for LBM. This is a key parameter, both for stability and scaling. If it is set to zero, the code automatically finds an optimal time step such that the corresponding relaxation time (based on the initial viscosity) is unitary. In a DEM-only simulation, this should be about two orders of magnitude larger than the expected DEM time step. Type: Double Default: 0.0

multiStep: This number defines how many DEM steps should be performed between two LBM steps. Note that this is the only way to enforce a specific time step for DEM. If 0, the procedure based on the critical ratio (see below) is used instead. Type: Integer Default: 0

criticalRatio: This sets a constant ratio between the estimated duration of particle collisions and the DEM time step. Essentially, it is a stability parameter used to determine an optimum DEM time step. The smallest criticalRatio is, the smallest the DEM time step will be. Recommended (safe) numbers are of the order of 0.002-0.005. Type: Double Default: 0.1

Domain and forcing

domainSizeX, domainSizeY, domainSizeZ: Domain size in the three directions. Type: Double Default: 0.0. Needs to be set by user

forceX, forceY, forceZ: External forcing in the three directions. Type: Double Default: 0.0

boundary0: Controls the boundary in the negative x direction.

boundary1: Controls the boundary in the positive x direction.

boundary2: Controls the boundary in the negative y direction.

boundary3: Controls the boundary in the positive y direction.

boundary4: Controls the boundary in the negative z direction.

boundary5: Controls the boundary in the positive z direction.

FOR ALL BOUNDARIES: Possibilities active in this version are: 4: periodicity, 5: slip static wall, 6: slip moving wall, 7: no-slip static wall, 8: no-slip moving wall, 12: outlet (only LBM). It is recommended to stick to option 4 and 7. Type: Integer Default: 7

LBM parameters

latticeSpacing: Lattice spacing for LBM. The domain size in all directions must be a multiple of the lattice spacing. This is a key parameter, both for stability and scaling. In an LBM-DEM simulation, this should be sufficiently smaller than the particle diameter. Type: Double Default: 0.0. Needs to be set by user

fluidDensity: Fluid density for LBM. Type: Double Default: 0.0. Needs to be set by user

minTau: Minimum value of the relaxation time. Important for non-Newtonian flows, as it controls the minimum viscosity that the fluid cells can have. Type: Double Default: 0.0. Needs to be set by user

maxTau: Maximum value of the relaxation time. Important for non-Newtonian flows, as it controls the maximum viscosity that the fluid cells can have. Type: Double Default: 0.0. Needs to be set by user

TRTsolver: Activates the Two Relaxation Time (TRT) solver, which is currently under development. Type: Boolean Default: false

imposeFluidVolume: Triggers an algorithm that imposes exact volume conservation (in a non-orthodox way). Type: Boolean Default: false

imposedFluidVolume: If imposeFluidVolume is activated, this sets the exact volume that needs to be simulated. Type: Double Default: 0.0

restartFluid: Uses a recycle file to start the simulation. The restart files must have been created with a previous simulation using the fluidRecycleExpTime parameter. Type: Boolean Default: false

fluidRestartFile: If restartFluid is active, this field must specify the address of the recycle file. Can be either an absolute or a relative address. Type: String Default: ./

applyTopography: Triggers the use of a topography file. This feature is currently under development. Type: Boolean Default: false

topographyFile: If applyTopography is active, this field must specify the address of the topography file. Can be either an absolute or a relative address. This feature is currently under development. Type: String Default: ./

fluidFromTopography: If applyTopography is active, initiates the fluid initial volume and distribution starting from the topography file. This feature is currently under development. Type: Boolean Default: false

translateTopographyX, translateTopographyY, translateTopographyZ: If applyTopography is active, translates the topography file before applying it in the simulation. This is necessary because HYBIRD always uses a relative reference frame, with the coordinate (0.0, 0.0, 0.0) the bottom-left corner of the domain, while topography files tend to be based on a geographical reference. This feature is currently under development. Type: Double Default: 0.0

fluidMinX, fluidMinY, fluidMinZ: If no other specification is made (e.g. by defining a problemName), the fluid initial volume is a cuboid, and these parameters set the lowest boundaries of the cuboid in the three directions. Type: Double Default: 0.0

fluidMaxX, fluidMaxY, fluidMaxZ: If no other specification is made (e.g. by defining a problemName), the fluid initial volume is a cuboid, and these parameters set the upper boundaries of the cuboid in the three directions. Type: Double Default: the domain size in the respective directions

fluidInitVelocityX, fluidInitVelocityY, fluidInitVelocityZ: Sets the initial velocity of the fluid in all directions. Type: Double Default: 0.0

slipCoefficient: If slip walls are used (see definition of boundaries), this sets the partial slip coefficient. A unitary value indicates full slip, while zero means no-slip. Type: Double Default: 0.0

hydrodynamicRadius: This reduces the radius of the DEM particles for what concerns the coupling algorithms. Type: Double Default: 1.0

rheologyModel: Defines which rheological model should be used. Possibilities are NEWTONIAN, BINGHAM, FRICTIONAL, VOELLMY, BAGNOLD, MUI. This also defines which rheological parameters will be used by the code. Type: String Default: NEWTONIAN

initVisc: The initial dynamic viscosity ν. For the NEWTONIAN mode, this is also the viscosity for the whole simulation. Type: Double Default: 0.0. Needs to be set by user

plasticVisc: The plastic dynamic viscosity νp, used in the BINGHAM model. Type: Double Default: 0.0

yieldStress: The yield stress σy, used in the BINGHAM model. Type: Double Default: 0.0

frictionCoefFluid: The friction coefficient, used in the FRICTIONAL and VOELLMY models. This is also used in the MUI as the base friction coefficient (μ0, for I=0). Type: Double Default: 0.0

deltaFriction: The difference between the maximum friction coefficient and the base friction coefficient μ2-μ0, used in the MUI model. Type: Double Default: 0.0

baseInertial: The base inertial number I0, used in the MUI model. Type: Double Default: 0.0

particleDiameter: The particle diameter (of those particles that constitute the granular continuum, not to be confused with the DEM), used in the MUI model. Type: Double Default: 0.0

turbulenceSolver: This activates an LES turbulence model, with Smagorinsky constant defined below (turbConst). It should be used only with the NEWTONIAN model. Type: Boolean (0-1) Default: 0

turbConst: The Smagorinsky constant, which is used if turbulenceSolver is active. Type: Double Default: 0.0

DEM parameters and contact laws

particleDensity: Mass density of the DEM particles. Type: Double Default: 0.0. Needs to be set by user

contactModel: Model for the contact law. Possibilities are LINEAR and HERTZIAN. Type: String Default: NONE. Needs to be set by user

youngMod: If contactModel=HERTZIAN sets the young Modulus of the particle material. Type: Double Default: 1.0

poisson: If contactModel=HERTZIAN sets the Poisson ratio of the particle material. Type: Double Default: 0.3

linearStiff: If contactModel=LINEAR sets the linear stiffness of the particle contacts. Type: Double Default: 1.0

restitution: Sets the restitution coefficient of the particle contacts. Must be larger than 0 and smaller or equal to 1. Type: Double Default: 1.0

viscTang: Damping constant of the tangential contact. Type: Double Default: 1.0

frictionCoefPart: Friction coefficient of the particle-particle contacts. Type: Double Default: 1.0

frictionCoefWall: Friction coefficient of the particle-wall contacts. Type: Double Default: 1.0

frictionCoefObj: Friction coefficient of the particle-object contacts. Type: Double Default: 1.0

rollingCoefPart: Rolling friction coefficient (same for all contacts). Type: Double Default: 0.0

particleFile: This field specifies the address of the particle file (see the section on Input/Output for details). Can be either an absolute or a relative address. Even if particles are not used, an existing file must be specified (if no particles are needed, just set a file with a single "0" as content). Type: String Default: ./

particleTranslateX, particleTranslateY, particleTranslateZ: Used to translate the initial position of the particles. Type: Double Default: 0.0

particleScale: Used to scale the initial position and radius of the particles. Type: Double Default: 0.0

objectFile: This field specifies the address of the object file (see the section on Input/Output for details). Objects are immobile particles that are used to create stable obstacles or structures. The file can be either an absolute or a relative address. Even if objects are not used, an existing file must be specified (if no object is needed, just set a file with a single "0" as content). Type: String Default: ./

numVisc: Extra numerical viscosity to improve stability. It is recommended to keep it a couple of orders of magnitude below the viscosity of the fluid. Type: Double Default: 0.0

Rotational reference frame

coriolisSolver: Activates the Coriolis apparent acceleration. Type: Boolean (0-1) Default: 0

centrifugalSolver: Activates the centrifugal acceleration. Type: Boolean (0-1) Default: 0

rotationX, rotationY, rotationZ: Coordinates of the rotational speed of the reference frame. Type: Double Default: 0.0

rotationCenterX, rotationCenterY, rotationCenterZ: Coordinates of the centre of rotation. Type: Double Default: 0.0