fix liquidtransport/porous command
Warning
GPU support for this command has not been tested and may not work as expected.Syntax
fix ID group-ID liquidtransport/porous
ID, group-ID are documented in fix command
liquidtransport/porous = style name of this fix command
Examples
fix liquidtransport all liquidtransport/porous
Description
This fix solves for the evolution of surface liquid and volume liquid (pore liquid) for each particle in the fix group. Every particle type has a defined porosity, which defines the percentage of solid volume (as defined by the particle radius) which can be taken by the liquid.
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 solid (core+pore) volume |
volumeLiquidContent |
liquid content in pore volume |
volume % of solid (core+pore) volume |
liquidFlux |
sum of liquid fluxes between particles, as computed by a liquid bridge model |
volume % of solid (core+pore) volume / time |
liquidSource |
sum of liquid source via surface films, as computed by a liquid bridge model |
volume % of solid (core+pore) volume / time |
radius_total |
total radius of particle (solid+surface film) |
length units |
density_total |
total (mixture) 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 pore volume available, i.e. volumeLiquidContent < porosity, 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 pore space (either through transport via a liquid bridge or via initialization using surfaceLiquidContentInitial), then it gets “sucked” into the pore space 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 pore volume can only be filled, but can not be emptied
In the frame of this model, the atom variables radius and density refer to the solid radius (radius of the solid structure including the pores) and solid density, (density including the pore volume) respectively. 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 porosity type value1 value2 ...
(value1,values2,...=value for porosity 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