OGS
|
This class defines a linear saturation rate dependent swelling stress model for the materials that swell strongly when water content increases.
Clay materials like bentonite have a high swelling capacity in dry state, and their swelling property can be described by this model.
The original model was proposed in [34] (equations (39) and (40) on pages 758–759). With a simplification of the parameters of the original formula and introducing a constraint to avoid shrinkage stress when saturation is below the initial saturation, the model takes the form
\[ {\mathbf{\sigma}}^{\text{sw}} = {\alpha}_{\text{sw}} (S-S_0) \mathbf{I}, \, \forall S \in [S_0, S_\text{max}] \]
where \({\alpha}_{\text{sw}}\) is a coefficient, and \(S_0\) is the initial saturation, and \(S_{\text{max}}\) is the maximum saturation. The coefficient gives the swelling stress at full saturation, which can be computed as
\[ {\alpha}_{\text{sw}} = \frac{{{\sigma}}^{\text{sw}}_{\text{max}}}{(S_{\text{max}}-S_0)} \]
where \({{\sigma}}^{\text{sw}}_{\text{max}}\) represents the swelling stress at full saturation.
In the numerical analysis, the stress always takes the incremental form. Therefore the model becomes as
\[\Delta {\mathbf{\sigma}}^{\text{sw}} = {\alpha}_{\text{sw}} \Delta S \mathbf{I}, \, \forall S \in [S_0, S_\text{max}] \]
Note:
Definition at line 63 of file LinearSaturationSwellingStress.h.
#include <LinearSaturationSwellingStress.h>
Public Member Functions | |
LinearSaturationSwellingStress (std::string name, double const coefficient, double const reference_saturation) | |
void | checkScale () const override |
PropertyDataType | value (VariableArray const &variable_array, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override |
PropertyDataType | value (VariableArray const &variable_array, VariableArray const &variable_array_prev, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override |
PropertyDataType | dValue (VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const override |
Public Member Functions inherited from MaterialPropertyLib::Property | |
virtual | ~Property () |
virtual PropertyDataType | initialValue (ParameterLib::SpatialPosition const &pos, double const t) const |
virtual PropertyDataType | value () const |
virtual PropertyDataType | dValue (VariableArray const &variable_array, VariableArray const &variable_array_prev, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const |
virtual PropertyDataType | d2Value (VariableArray const &variable_array, Variable const variable1, Variable const variable2, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const |
Default implementation: 2nd derivative of any constant property is zero. | |
virtual void | setProperties (std::vector< std::unique_ptr< Phase > > const &phases) |
Default implementation: | |
void | setScale (std::variant< Medium *, Phase *, Component * > scale) |
template<typename T > | |
T | initialValue (ParameterLib::SpatialPosition const &pos, double const t) const |
template<typename T > | |
T | value () const |
template<typename T > | |
T | value (VariableArray const &variable_array, VariableArray const &variable_array_prev, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const |
template<typename T > | |
T | value (VariableArray const &variable_array, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const |
template<typename T > | |
T | dValue (VariableArray const &variable_array, VariableArray const &variable_array_prev, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const |
template<typename T > | |
T | dValue (VariableArray const &variable_array, Variable const variable, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const |
template<typename T > | |
T | d2Value (VariableArray const &variable_array, Variable const &variable1, Variable const &variable2, ParameterLib::SpatialPosition const &pos, double const t, double const dt) const |
Private Attributes | |
double const | coefficient_ |
double const | reference_saturation_ |
Additional Inherited Members | |
Protected Attributes inherited from MaterialPropertyLib::Property | |
std::string | name_ |
PropertyDataType | value_ |
The single value of a property. | |
PropertyDataType | dvalue_ |
std::variant< Medium *, Phase *, Component * > | scale_ |
MaterialPropertyLib::LinearSaturationSwellingStress::LinearSaturationSwellingStress | ( | std::string | name, |
double const | coefficient, | ||
double const | reference_saturation ) |
Definition at line 19 of file LinearSaturationSwellingStress.cpp.
References MaterialPropertyLib::name, and MaterialPropertyLib::Property::name_.
|
inlineoverridevirtual |
Reimplemented from MaterialPropertyLib::Property.
Definition at line 70 of file LinearSaturationSwellingStress.h.
References OGS_FATAL, and MaterialPropertyLib::Property::scale_.
|
overridevirtual |
Reimplemented from MaterialPropertyLib::Property.
Definition at line 57 of file LinearSaturationSwellingStress.cpp.
References coefficient_, MaterialPropertyLib::liquid_saturation, MaterialPropertyLib::VariableArray::liquid_saturation, OGS_FATAL, and reference_saturation_.
|
overridevirtual |
This virtual method will compute the property value based on the variables that are passed as arguments with the default implementation using empty variables array for the previous time step.
Reimplemented from MaterialPropertyLib::Property.
Definition at line 27 of file LinearSaturationSwellingStress.cpp.
References OGS_FATAL.
|
overridevirtual |
Reimplemented from MaterialPropertyLib::Property.
Definition at line 37 of file LinearSaturationSwellingStress.cpp.
References coefficient_, MaterialPropertyLib::VariableArray::liquid_saturation, and reference_saturation_.
|
private |
The coefficient of the model, which gives the swelling stress at full saturation. The coefficient can be obtained by
\[ {\alpha}_{\text{sw}} = \frac{{{\sigma}}^{\text{sw}}_{\text{max}}}{(S_{\text{max}}-S_0)} \]
with \({{\sigma}}^{\text{sw}}_{\text{max}}\) the swelling stress at full saturation, and \(S_{\text{max}}\) the maximum saturation.
Definition at line 110 of file LinearSaturationSwellingStress.h.
|
private |
The reference saturation, at which the swelling stress is zero.
Definition at line 114 of file LinearSaturationSwellingStress.h.