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