enable_simplified_fluid_model command

Purpose

Apply drag force based on particle- and mesh-induced fluid flow field.

Syntax

enable_simplified_fluid_model command_keyword command_values style_keyword style_values [region region-ID] field_keyword field_value ...
  • zero or more command keyword/value pairs may be appended

  • command_keyword = id or particle_group

id value = command-ID
   command-ID = user-assigned name for the command call
particle_group = group-ID
    group-ID = ID of the group of particles on which the command is applied
  • on style keyword/value pair must be appended

  • style_keyword = Schiller_Naumann, DiFelice, Zastawny or const_Cd

Schiller_Naumann style_values = fluid_viscosity viscosity-value fluid_density density-value
  fluid_viscosity = obligatory word
  viscosity-value = kinematic fluid density in length^2/time units
  fluid_density = obligatory word
  density-value = fluid density in mass/length^3 units
DiFelice style_values = fluid_viscosity viscosity-value fluid_density density-value
  fluid_viscosity = obligatory word
  viscosity-value = kinematic fluid density in length^2/time units
  fluid_density = obligatory word
  density-value = fluid density in mass/length^3 units
Zastawny style_values = fluid_viscosity viscosity-value fluid_density density-value
  fluid_viscosity = obligatory word
  viscosity-value = kinematic fluid density in length^2/time units
  fluid_density = obligatory word
  density-value = fluid density in mass/length^3 units
const_Cd style_values = Cd Cd-value fluid_viscosity viscosity-value fluid_density density-value
  Cd = obligatory word
  Cd-value = value of drag coefficient (dimensionless)
  fluid_viscosity = obligatory word
  viscosity-value = kinematic fluid viscosity in length^2/time units
  fluid_density = obligatory word
  density-value = fluid density in mass/length^3 units
  • region = optional keyword

  • region-ID = ID of the region where the drag model is active

  • zero or more field keyword/value pairs may be appended to args

  • field keyword = cell_size_relative or direction or resistance_ratio or volumefraction_threshold or enable_voidfraction_correction or enable_volume_correction or attenuate or source_mesh

cell_size_relative value = csize
  csize = ratio between the mesh size and the maximum bin size
direction value = x, y, or z
  x, y, or z = direction of calculated fluid velocity field
resistance_ratio value = ratio
  ratio = ratio between minimum flow resistance and resistance gain
volumefraction_threshold value = vf_th
  vf_th = volume fraction value at or above which the fluid velocity is set equal to the average particle velocity
enable_voidfraction_correction value = yes or no
enable_volume_correction value = yes or no
attenuate value = attenuation-value
  attenuation-value = the drag coefficient is scaled by this coefficient before computing the drag force
nbins_comm value = int_bins
  int_bins = the number of bins used as ghost layer to be communicated between processors in parallel [default (and minimum): 2]
verbosity_level value = int_level
  int_level = the verbosity level for assertions: silence (0), warning (1), error (2) [default: 2]
field_update_timestep value = steps
  steps = number of DEM time-steps between one velocity field update and the next
source_mesh value = mesh-ID
  mesh-ID = ID of the mesh affecting the fluid motion

Examples

enable_simplified_fluid_model particle_group all Schiller_Naumann fluid_viscosity 0.0002 fluid_density 1000 region water source_mesh myMesh

Description

Implements a simplified, one-dimensional fluid field calculation, which is updated every few time-steps, as specified by the (optional) field_update_timestep keyword. Therefore, a regular grid is created within the bounding box of region. Depending on the current particle volume fraction and averaged particle velocity the fluid velocity field is calculated.

Finally, add a drag force to each particle in the group, which reads:

F_d = \frac{1}{2} \rho  U_{rel}^2 C_d A

where A is the particle’s cross-sectional area, U_{rel} is the relative velocity of the particle with respect to the fluid, \rho is the fluid density. If const_Cd is used, then the value of the drag coefficient C_d is specified by the user. In case Schiller_Naumann is used, then C_d reads:

C_d = max(0.44, \frac{24}{\mathrm{Re}} (1.+0.15 \mathrm{Re}^{0.687}),

\mathrm{Re} = \frac{2Ur}{\nu}

where \mathrm{Re} is the Reynolds number, \nu is the kinematic viscosity of the fluid, r is the particle radius.

In case DiFelice is selected, then the correlation proposed by Di Felice is used; see Zhou et al..

The mandatory region keyword has to be used. The particle must be in the specified geometric region in order to have drag force added to it. The grid itself will always be a block. If the region used is not a block, its bounding box will be used. In case of dynamic region the regular grid is moved accordingly.

Note

The motion of the region must be aligned with the cartesian coordinate system. See fix ave/euler/custom for more details.

The optional source_mesh keyword allows to specify a mesh-ID which provides a source term for the velocity field. This source term comes from the translational motion of the mesh in the specified direction of the calculated fluid velocity field.

The optional attenuate keyword allows scaling of the drag force. The drag is multiplied by this value before the drag force is computed. This setting does only affect this command.

The optional nbins_comm keyword allows to change the number of ghost bins used during parallel communication. In general, more bins will lead to larger parallel data transfer. However, it might resolve issues with the assertion that particles are binned correctly.

By default assertion issues will trigger an error, which will stop the simulation. Such assertions are merely there to verify a correct (intended) behavior of the algorithm, and failing assertions might not always affect overall results. Failing assertions might be caused by (fast) moving regions and / or insufficient frequent neighbor list rebuilds. To prevent termination of a simulation due to failing assertions, a more lenient handling of assertions can be set by the optional verbosity_level keyword. Valid values here are 2 (which will trigger an error, the default), 1 (which will trigger a warning), and 0 (which will silently skip the issue).

The cell_size_relative keyword must be used to define the size of the structured grid cells that fills the region. In case cell_size_relative does not lead to an integer number of bins in x/y/z direction, the x/y/z cellsizes will be rounded up so to achieve this. cell_size_relative will also be automatically adjusted in case it would lead to a too fine mesh. If the total number of cells exceeds 8e6, the fix would halt with an error.

The direction keyword defines the direction of fluid velocity calculation.

The resistance_ratio provides a way to manipulate the flow field distribution. To fulfill the mass conservation per grid level the flow resistance of each cell is calculated by:

R_{cell} = R_0  ( 1 + \lambda R_{ratio} )

where \lambda is the volume fraction and R_0 the minimum resistance.

The optional volumefraction_threshold keyword allows to manipulate the flow field sensitivity. The value defines the volumefraction where the per-cell fluid velocity is equal to the average particle velocity.

Via the optional keyword enable_voidfraction_correction it’s possible to enable the usage of interpolated voidfraction values on the particle position for the calculation of the drag force. This is only useful for the DiFelice drag law.

Enabling the enable_volume_correction keyword leads to the calculation of the per-cell volume and using the corresponding weighting factor to determine the correct volume fraction.

Restart, fix_modify, output, run start/stop

No information about this fix is written to binary restart files. No fix_modify option applies to this fix. This command will add the underlying Eulerian fields to the aspherix_simulation.pvd file. No parameter of this fix can be used with the start/stop keywords of the run command.

Restrictions

none

Coarse-graining information

Using coarsegraining in combination with this command might lead to different dynamics or system state and thus to inconsistencies.

Default

fluid_density = 0, fluid_viscosity = 0, cell_size_relative = 5, direction = ‘z’, resistance_ratio = 10, volumefraction_threshold = 1, attenuate = 1., enable_volume_correction = no, enable_voidfraction_correction = yes, field_update_timestep = 1

Literature

[1] Zhou, Z. Y., et al. “Discrete particle simulation of particle–fluid flow: model formulations and their applicability.” Journal of Fluid Mechanics 661 (2010): 482-510.