Difference between revisions of "Diffusion Calculations"
Line 18: | Line 18: | ||
<math>{\partial \bar{c}\over \partial t} = \nabla \cdot D \nabla \bar{c}</math> | <math>{\partial \bar{c}\over \partial t} = \nabla \cdot D \nabla \bar{c}</math> | ||
Because <math>\bar{c}</math> is dimensionless, it can be defined using any consistent units for <math>c</math> and <math>c_{ref}</math>. The initial implementation of diffusion in [[NairnMPM]] was to model diffusion of solvents into solids including expansion due to solvent (''e.g.'', swelling of wood due to moisture constant). Most results for such solvent effects | Because <math>\bar{c}</math> is dimensionless, it can be defined using any consistent units for <math>c</math> and <math>c_{ref}</math>. The initial implementation of diffusion in [[NairnMPM]] was to model diffusion of solvents into solids including expansion due to solvent (''e.g.'', swelling of wood due to moisture constant). Most results for such solvent effects are based on mass fraction solvent content and expansion coefficients are measured as swelling strain per weight fracture solvent. As a result, [[NairnMPM]] assumes <math>c</math> and <math>c_{ref}</math> are both mass fraction solvent and the reference state is set to the saturation limit for solvent content or <math>c_{sat}</math> (which is specified for each material type in [[Common Material Properties#Basic Properties|basic material properties]]). Internal calculations are done using <math>\bar{c}</math> and concentration boundary conditions are expected to be in terms of <math>\bar{c}</math>. This concentration potential varies from 0 to 1 and equilibrium conditions correspond to all particles being at the same concentration potential (''i.e.'', at the same chemical potential). | ||
== Activating Diffusion == | == Activating Diffusion == |
Revision as of 11:59, 4 January 2023
NairnMPM can do diffusion calculations coupled with stresses and strains through concentration-induced expansion.
Diffusion Modeling
To be able to model diffusion in composite materials where different phases may absorb different amounts of solvent, all diffusion calculations are done in terms of a concentration potential for the solvent in the material. Diffusion, as derived by mass flow, can be written as:
[math]\displaystyle{ {\partial c\over \partial t} = - \nabla \cdot J = \nabla \cdot \left({Dc\over RT} \nabla \mu\right) }[/math]
where c is concentration (e.g., moles per unit volume) and J is flux given by minus the bracketed term where D is the diffusion coefficient (in area/sec), μ is the chemical potential (in J/mol), R gas constant (in J/(mol-K)), and T is temperature. This modeling writes the chemical potential is terms of a concentration potential
[math]\displaystyle{ \mu = \mu^{(ref)} + RT \ln \bar{c} \qquad {\rm where} \qquad \bar{c} = \frac{c}{c_{ref}} }[/math]
is a concentration potential. Here [math]\displaystyle{ \mu^{(ref)} }[/math] is reference chemical potential when [math]\displaystyle{ c=c_{ref} }[/math]. Taking gradient of the chemical potential and substituting into the diffusion equation leads to
[math]\displaystyle{ {\partial \bar{c}\over \partial t} = \nabla \cdot D \nabla \bar{c} }[/math]
Because [math]\displaystyle{ \bar{c} }[/math] is dimensionless, it can be defined using any consistent units for [math]\displaystyle{ c }[/math] and [math]\displaystyle{ c_{ref} }[/math]. The initial implementation of diffusion in NairnMPM was to model diffusion of solvents into solids including expansion due to solvent (e.g., swelling of wood due to moisture constant). Most results for such solvent effects are based on mass fraction solvent content and expansion coefficients are measured as swelling strain per weight fracture solvent. As a result, NairnMPM assumes [math]\displaystyle{ c }[/math] and [math]\displaystyle{ c_{ref} }[/math] are both mass fraction solvent and the reference state is set to the saturation limit for solvent content or [math]\displaystyle{ c_{sat} }[/math] (which is specified for each material type in basic material properties). Internal calculations are done using [math]\displaystyle{ \bar{c} }[/math] and concentration boundary conditions are expected to be in terms of [math]\displaystyle{ \bar{c} }[/math]. This concentration potential varies from 0 to 1 and equilibrium conditions correspond to all particles being at the same concentration potential (i.e., at the same chemical potential).
Activating Diffusion
In scripted files, diffusion is activated with the command
Diffusion (YesOrNo),<(refConc)>
In XML input files, diffusion is activated with the <Diffusion> command, which must be within the <MPMHeader> element:
<Diffusion reference = '(refConc)'/>
where
- (YesOrNo) must be "Yes" or "No" to activate or not activate diffusion calculations. In XML input files, the presence of a <Diffusion> command activates diffusion. The default is "No".
- (refConc) is used to set a reference concentration potential (between 0 and 1) that corresponds to zero strain. All diffusion calculations are done in terms of a concentration potential from 0 to 1 where 1 is the saturation concentration of a material type. The default (refConc) is 0.
By default, diffusion uses update methods analogous to FLIP methods used in mechanics. This update, however, sometimes results in concentration oscillations on particles within one cell. Diffusion simulations with oscillations can be improved by using periodic FMPM(k) for diffusion updates.
Note that diffusion models fluid transport through materials by transport methods nearly identical to those used to model poroelasticity. Because they share same methods, a simulation can activate diffusion (with above commands) or poroelasticity (with comparable Poroelasticity commands), but cannot activate them both. Any simulation, however, can combine diffusion or poroelasticity with thermal calculations and conduction. Note that when choosing archiving options, the terms "concentration" and "porepressure" are synonyms or either can be used and the archiving will store concentration terms for diffusion calculations or pore pressure terms for poroelasticity calculations.
Diffusion Material Properties
Concencentration changes are coupled to stress and strains through concentration expansion coefficients defined for the materials. By default, all moisture expansion coefficients are zero which decouples diffusion and strains. By entering non-zero values, the coupling will occur. Isotropic materials have a single solvent expansion coefficient (beta) while anisotropic materials will have two or three solvent expansion coefficients for swelling differently in different directions (e.g., see orthotropic materials).
The rate of diffusion is controlled by the solvent diffusion constant defined for each material. Isotropic materials have a single solvent diffusion constant, D, as defined above (and entered as property D). For anisotropic materials, D is replaced by a diffusion tensor and material properties set two or three diffusion properties for diffusion in various material directions (e.g., see orthotropic materials).
Archived Concentrations
All internal calculations use [math]\displaystyle{ \bar{c} }[/math] or concentration potential, but when concentrations and concentration gradients are archived, they are converted to assume concentration in weight fraction using the material's saturation concentration setting:
[math]\displaystyle{ c = c_{sat}\bar{c} }[/math]
This conversion applies both to particle archives and to global archiving.
Diffusion Boundary Conditions
When diffusion is activated, you can set, the possible concentration boundary conditions are:
- You can set concentration on the grid.
- You can set a concentration flux on particle surfaces.
- Gradually apply initial concentration field to particles using a PropertyRamp Custom Task.
- You can set initial particle concentration when creating material points. Note, however, that initial concentrations different than the reference concentration will cause strains to immediately evolve toward the changed state. The net effect will be an instantaneous "impact" that might cause undesirable dynamic effects. Using a PropertyRamp Custom Task is preferred method to set initial concentrations.
- Rigid particles can provide moving concentration boundary conditions.