PIC model

Inputs for the particle-in-cell (PIC) method, used when solids.model = pic (see particle options). Every type listed in solids is a PIC type.

The following inputs define the PIC solids model and its associated frictional stress parameters:

\[\tau_p = \frac{P_s \varepsilon_p^{\beta}}{\max \left[ (\varepsilon_{cp} - \varepsilon_p), \epsilon (1-\varepsilon_p)\right]}\]

The following inputs are defined with the prefix pic:

Description

Type

Default

close_pack

Solids volume fraction at close pack, \(\varepsilon_{cp}\). Below this threshold, the solid stress tensor has minimal impact.

Real

0.55

pressure_coefficient

Pressure linear scale factor in frictional stress model, \(P_s\).

Real

100.0

beta

Volume fraction exponential scale factor in frictional stress model, \(\beta\).

Real

3.0

small_number

Non-singularity term in frictional stress model, \(\epsilon\).

Real

1.0e-7

damping_factor

An empirical dampening factor for the frictional stress model.

Real

0.4

damping_factor_wall_normal

Normal coefficient of restitution for parcel-wall collisions.

Real

0.3

damping_factor_wall_tangent

Tangential coefficient of restitution for parcel-wall collisions.

Real

0.99

parcels_per_cell_at_pack

Specifies the number of particles that can occupy a regular computational cell near close packing.

Larger values reduce sensitivity to small changes in parcel positions, which helps stabilize the computed solids volume fraction and, by extension, the frictional stress model. However, increasing this value also results in simulations tracking a greater number of parcels.

Real

32.0

verbose

Verbosity level for PIC-related output.

Int

0

The solids volume fraction is required to evaluate the frictional stress model when advancing parcels from \(t^n\) to \(t^{n+1}\). Ideally, this evaluation would use either the volume fraction at the midpoint of the time step, \(\varepsilon_p^{n+1/2}\), or at the end of the step, \(\varepsilon_p^{n+1}\).

However, since neither of these values is available a priori, an iterative approach is used. An initial approximation of the volume fraction is used to advance parcels to a tentative position at \(t^{n+1}\). These new positions are then used to compute an updated volume fraction field, which is subsequently used in the next iteration to recompute the tentative parcel positions.

The following keywords control the iterative PIC algorithm and are defined with the prefix pic:

Description

Type

Default

initial_step_type

Specifies the initial solids volume fraction used in PIC iterations to approximate the volume fraction at the end of the time step, \(t^{n+1}\)

Options (case-insensitive):

  • nth_eps - use the volume fraction from the previous time step, \(t^{n}\)

  • zero_eps - set the initial volume fraction to zero

  • taylor_approx - use a Taylor series expansion about parcel positions to approximate the volume fraction at \(t^{n+1}\)

String

“nth_eps”

max_iter

Maximum number of iterations used to approximate the end state

Int

3

advance_vel_p

Specifies the weighting factor used to compute the averaged particle velocity field during parcel advancement. The field-averaged velocity is used when applying forces to parcels.

This parameter takes values between 0 and 1, blending the particle velocity at the beginning and end of the time step. A value of 0.5 (default) yields a time-centered average.

Real

0.5

velocity_reference_frame

The velocity reference frame scales the field-averaged velocity used to compute the slip velocity between a parcel and the bulk when when the parcels is moving towards an area of higher solids concentration. This parameter takes values between 0 and 1.

Real

0.5