fix liquidtransport/sponge command

Warning

GPU support for this command has not been tested and may not work as expected.

Syntax

fix ID group-ID liquidtransport/sponge
  • ID, group-ID are documented in fix command

  • liquidtransport/sponge = style name of this fix command

Examples

fix liquidtransport all liquidtransport/sponge

Description

This fix solves for the evolution of surface liquid and volume liquid for each particle in the fix group. The particles are assumed to be able to soak up liquid and blow up in volume as they do so.

Every particle type has a defined swellFactor, which defines the volume increase of the particle as it soaks up liquid. A swellFactor of 1 means every 1 liter of liquid increases the particle volume by 1 liter, a factor of 10 means every 1 liter of liquid increases the particle volume by 10 liters etc.

The swellSaturation defines the maximum swell (volume increase) before the particle is saturated. It is defined in percent of solid (dry) volume. Every additional liquid goes into a surface film.

Every time step, the surface and volume liquid content of each particle is updated based on the sum of liquid fluxes with other particles and additional sources.

Internally, this fix creates a couple of fix property/atom instances, that store the following variables:

surfaceLiquidContent

liquid content in surface film

volume % of dry solids volume

volumeLiquidContent

liquid content in swell volume

volume % of dry solids volume

liquidFlux

sum of liquid fluxes between particles, as computed by a liquid bridge model

volume % of dry solids volume / time

liquidSource

sum of liquid source via surface films, as computed by a liquid bridge model

volume % of dry solids volume / time

radius_dry

original (dry) radius of particle without swell volume

length units

radius_total

total radius of particle (solid+swell volume+surface film)

length units

density_dry

original (dry) density of the particle

mass/length^3 units

Currently, 2 liquid bridge models can contribute to liquidFlux: cohesion easo/capillary_viscous and cohesion washino/capillary_viscous

As long as there is free swell volume available, i.e. volumeLiquidContent < swellSaturation, then any positive contribution of liquidFlux + liquidSource is added to volumeLiquidContent. Any additional contribution is added to surfaceLiquidContent. As surface liquid is generated, the radius_total will grow. If surfaceLiquidContent gets available to a particle with available swell volume (either through transport via a liquid bridge or via initialization using surfaceLiquidContentInitial), then it gets used as swell volume immediately.

Please note that only the surfaceLiquidContent part is used to calculate the liquid bridge forces in cohesion easo/capillary_viscous and cohesion washino/capillary_viscous

Warning

Currently, the swell volume can only be filled, but can not be emptied

In the frame of this model, the atom variable radius refers to the radius of the solid structure including the swell volume. Atom variable density represents total mass divided by total volume. Atom variable mass is the total sum of solid mass and liquid mass (with both surfaceLiquidContent and volumeLiquidContent contributing to it).


Initialization:

If you are using the this model, you must define the following properties:
fix id all property/global swellFactor type value1 value2 ...
    (value1,values2,...=value for swellFactor of each material/atom type)
fix id all property/global swellSaturation type value1 value2 ...
    (value1,values2,...=value for swellSaturation of each material/atom type)
fix id all property/global liquidDensity scalar value
    (value=value for the liquid density in mass/length^3 units)
fix id all property/global surfaceLiquidContentInitial scalar value
    (value=value for the initial surface liquid volume in % of the solid volume)
fix id all property/global volumeLiquidContentInitial scalar value
    (value=value for the initial volume liquid volume in % of the solid volume)

Restrictions

Currently, the pore volume can only be filled, but can not be emptied.

Output info:

This gran model stores a couple of per-particle properties, for access by various output commands.

You can access the property surfaceLiquidContent by f_surfaceLiquidContent (units % of solid particle volume), volumeLiquidContent by f_volumeLiquidContent (units % of solid particle volume), liquidFlux (units % of solid particle volume/time) by accessing f_liquidFlux and liquidSource (units % of solid particle volume/time) by accessing f_liquidSource. The latter can be used to manually set a surface liquid source via the set command.

Currently, there is a restriction that these properties can only be accessed after a run 0 command.

Restart, fix_modify, run start/stop:

The all of the quantities used by this fix are written to binary restart files so simulations can continue properly. None of the fix_modify options are relevant to this fix.

No parameter of this fix can be used with the start/stop keywords of the run command.

Default

none