ASL  0.1.7
Advanced Simulation Library
Public Member Functions | List of all members
asl::FDPoroElasticity Class Reference

Numerical method which computes homogenious isotropic poro-elasticity equation. More...

#include <aslFDPoroElasticity.h>

Inheritance diagram for asl::FDPoroElasticity:
Inheritance graph
[legend]
Collaboration diagram for asl::FDPoroElasticity:
Collaboration graph
[legend]

Public Member Functions

 FDPoroElasticity ()
 
 FDPoroElasticity (Data d, Data pl, Param bM, Param sM, Param k, const VectorTemplate *vT)
 
 ~FDPoroElasticity ()
 
virtual void init ()
 Builds the necesery internal data and kernels. More...
 
virtual void execute ()
 Executes the numerical procedure. More...
 
Data getPressureData () const
 
Data getLiquidPressureData () const
 
void setNSubsteps (unsigned int n)
 defaul value 10 More...
 
- Public Member Functions inherited from asl::ElasticityCommonA
 ElasticityCommonA ()
 
 ElasticityCommonA (Data d, Param bM, Param sM, const VectorTemplate *vT)
 
 ~ElasticityCommonA ()
 
void setVectorTemplate (const VectorTemplate *vT)
 
VectorTemplate getVectorTemplate ()
 
void setForce (Param f)
 
Data getDisplacementData () const
 
Data getDisplacementInternalData () const
 
const Param getBulkModulus () const
 
const Param getShearModulus () const
 
- Public Member Functions inherited from asl::NumMethod
virtual ~NumMethod ()
 

Additional Inherited Members

- Public Types inherited from asl::ElasticityCommonA
typedef SPDataWithGhostNodesACLData Data
 
typedef acl::VectorOfElements Param
 
- Public Attributes inherited from asl::ElasticityCommonA
const VectorTemplatevectorTemplate
 
- Protected Attributes inherited from asl::ElasticityCommonA
std::unique_ptr< acl::Kernelkernel
 
Data displacementData
 
Data displacementInternalData
 
Param bulkModulus
 
Param shearModulus
 
Param force
 

Detailed Description

Numerical method which computes homogenious isotropic poro-elasticity equation.

The classic poroelastic equations were originally developed by Biot (1941) to represent biphasic soil consolidation. The equations can be written in the following form:

\[ (K+\mu/3)\nabla_j \nabla_k u_k+ \mu \Delta u_j - a \nabla_j p = - (\rho_s-\rho_f)g_j \]

\[ a\nabla_i\dot u_i+ \frac{1}{S} \dot p = \nabla_i k \nabla_i p, \]

where

In order to solve the first equation we will introduce a fictisionus time \( \tau \):

\[ \partial_\tau u = (K+\mu/3)\nabla_j \nabla_k u_k+ \mu \Delta u_j - a \nabla_j p + (\rho_s-\rho_f)g_j \]

\[ a\partial_t\nabla_i u_i+ \frac{1}{S} \partial_t p = \nabla_i k \nabla_i p, \]

This implementation is aided to improove stability for incompressible materials. Let us reformulate the first eqation by the following way:

\[ \partial_\tau u = \mu \Delta u_j - \nabla_j \tilde p - a\nabla_j p + (\rho_s-\rho_f)g_j, \]

\[ \tilde p = -(K+\mu/3) \nabla_k u_k. \]

then the second eqation will turn to:

\[ \partial_t p = \frac{aS}{K+\mu/3}\partial_t\tilde p + S\nabla_i k \nabla_i p, \]

The equation for \(\tilde p\) leads to an instability for low values of the Poisson ration (for nearly incompressible materials). Therefore the last equation we would like to replace by a relaxation one:

\[ \partial_\tau \tilde p = - w\left( (K+\mu/3)\nabla_k u_k + \tilde p\right), \]

where \( w \) is a relaxation parameter.

Let's return to single time variable. Two time steps are related as follows \( \delta_t = N \delta_\tau \). Than \( \partial_\tau = N\partial_t \). The resulting set of equations is:

\[ \partial_\tau u = \mu \Delta u_j - \nabla_j \tilde p - a\nabla_j p + (\rho_s-\rho_f)g_j, \]

\[ \partial_\tau \tilde p = - w\left( (K+\mu/3)\nabla_k u_k + \tilde p\right), \]

\[ \partial_\tau p = \frac{aS}{K+\mu/3}\partial_\tau\tilde p + \frac{Sk}{N}\Delta p, \]

Definition at line 82 of file aslFDPoroElasticity.h.

Constructor & Destructor Documentation

◆ FDPoroElasticity() [1/2]

asl::FDPoroElasticity::FDPoroElasticity ( )

◆ FDPoroElasticity() [2/2]

asl::FDPoroElasticity::FDPoroElasticity ( Data  d,
Data  pl,
Param  bM,
Param  sM,
Param  k,
const VectorTemplate vT 
)
Parameters
dis a displacement field
plis a pressure of liquid field
bMis the bulk modulus
sMis the shear modulus
kis hydraulic conductivity
vTis a vector template

◆ ~FDPoroElasticity()

asl::FDPoroElasticity::~FDPoroElasticity ( )

Member Function Documentation

◆ execute()

virtual void asl::FDPoroElasticity::execute ( )
virtual

Executes the numerical procedure.

Implements asl::ElasticityCommonA.

◆ getLiquidPressureData()

ElasticityCommonA::Data asl::FDPoroElasticity::getLiquidPressureData ( ) const
inline

Definition at line 159 of file aslFDPoroElasticity.h.

◆ getPressureData()

ElasticityCommonA::Data asl::FDPoroElasticity::getPressureData ( ) const
inline

Definition at line 154 of file aslFDPoroElasticity.h.

◆ init()

virtual void asl::FDPoroElasticity::init ( )
virtual

Builds the necesery internal data and kernels.

Implements asl::ElasticityCommonA.

◆ setNSubsteps()

void asl::FDPoroElasticity::setNSubsteps ( unsigned int  n)

defaul value 10


The documentation for this class was generated from the following file: