Solids model

Solids settings

Enabling the SOLIDS solver and specifying options common to both DEM and PIC models. The following inputs must be preceded by the “solids.” root

Description

Type

Default

types

Specified name(s) of the SOLIDS types or None to disable the SOLIDS solver. The user defined names are used to specify DEM and/or PIC model inputs.

String

None

molecular_weight

Value of constant solid molecular weight

Real

0

specific_heat

Specify which specific heat model to use for solid. Available options include:

  • ‘constant’ for constant specific heat model

String

None

specific_heat.constant

Value of species molecular weight. [required if fluid.specific_heat = ‘constant’].

Real

0

reference_temperature

Value of the reference temperature used for specific enthalpy

Real

0

species

Specify which species can constitute the fluid phase [defined species must be a subset of the species.solve arguments].

String

None

newton_solver.absolute_tol

Define absolute tolerance for Damped-Newton solver

Real

1.e-6

newton_solver.relative_tol

Define relative tolerance for Damped-Newton solver

Real

1.e-6

newton_solver.max_iterations

Define max number of iterations for Damped-Newton solver

int

100

Below is an example for specifying the solids solver model options.

solids.types = my_solid0  my_solid1

solids.reference_temperature = 298.15

solids.specific_heat = mixture

solids.species = Fe2O3  FeO

DEM model settings

Enabling the DEM solver and specifying model options.

Description

Type

Default

dem.solve

Specified name(s) of the DEM types or None to disable the DEM solver. The user defined names are used to specify DEM model inputs.

String

None

dem.friction_coeff.pp

Friction coefficient :: particle to particle collisions [required]

Real

0

dem.friction_coeff.pw

Friction coefficient :: particle to wall collisions [required]

Real

0

dem.spring_const.pp

Normal spring constant :: particle to particle collisions [required]

Real

0

dem.spring_const.pw

Normal spring constant :: particle to wall collisions [required]

Real

0

dem.spring_tang_fac.pp

Tangential-to-normal spring constant factor :: particle to particle collisions

Real

0.2857

dem.spring_tang_fac.pw

Tangential-to-normal spring constant factor :: particle to wall collisions

Real

0.2857

dem.damping_tang_fac.pp

Factor relating the tangential damping coefficient to the normal damping coefficient :: particle to particle collisions

Real

0.5

dem.damping_tang_fac.pw

Factor relating the tangential damping coefficient to the normal damping coefficient :: particle to wall collisions

Real

0.5

dem.implicit_drag

Apply fluid-particle drag force by implicit velocity update.

int

0

The following inputs use the DEM type names specified using the dem.solve input to define restitution coefficients and are proceeded with dem.restitution_coeff. These must be defined for all solid-solid and solid-wall combinations.

Description

Type

Default

[solid0].[solid1]

Specifies the restitution coefficient between solid0 and solid1. Here the order is not important and could be defined as [solid1].[solid0]

Real

0

[solid0].wall

Specifies the restitution coefficient between solid0 and the wall. Order is not important and this could be defined as wall.[solid0]

Real

0

Below is an example for specifying the inputs for two DEM solids.

dem.solve = sand  char

dem.friction_coeff.pp     =     0.25
dem.friction_coeff.pw     =     0.15

dem.spring_const.pp       =   100.0
dem.spring_const.pw       =   100.0

dem.spring_tang_fac.pp    =     0.2857
dem.spring_tang_fac.pw    =     0.2857

dem.damping_tang_fac.pp   =     0.5
dem.damping_tang_fac.pw   =     0.5

dem.restitution_coeff.sand.sand =  0.85
dem.restitution_coeff.sand.char =  0.88
dem.restitution_coeff.char.char =  0.90

dem.restitution_coeff.sand.wall =  0.85
dem.restitution_coeff.char.wall =  0.89

Implicit drag

By default, the fluid-particle drag force is applied explicitly to particles,

\[u_p^{n^{\prime}+1} = u_p^{n^\prime} + dt_{\mathrm{DEM}}\left(\beta^n (u_f^{n+1} - u_p^{n}) + \mathcal{F}_p^{n^\prime}\right)/m_p\]

where \(u_p\) is the p-th particle velocity at the indicated time level, \(\beta^n\) is the drag coefficient, \(u_f^{n+1}\) is the fluid velocity, \(\mathcal{F}_p\) are all non-drag forces (e.g., gravitational, buoyancy, collision etc.), and \(m_p\) is particle mass. Terms exist at different time levels due in part to how the fluid and particle models are coupled and partly because particles typically sub-step in time. Specifically, a time step advances the fluid from \(t^n\) to \(t^{n+1}\), then particles take multiple smaller time steps to traverse the same total time. In the above equation, prime markers differentiate quantities updated at each DEM sub-step.

The updated particle velocity, \(u_p^{n^{\prime}+1}\), is substituted into the drag expression when implicit drag is enabled.

\[u_p^{n^{\prime}+1} = \frac{u_p^{n^\prime} + dt_{\mathrm{DEM}}\left( \beta^n u_f^{n+1} + \mathcal{F}_p^{n^\prime} \right)/m_p}{1 + dt_{\mathrm{DEM}} \beta^n / m_p}\]

By using the updated velocity, the drag force computed for the fluid and particles is inconsistent, and interphase momentum is not conserved. However, implicit drag may be needed for numerical stability when the particle density is much less than the fluid (such as bubbles).

PIC model settings