|
svMultiPhysics
|
Pressure-based Darcy flow in porous media. More...
Functions | |
| void | validate_material_properties (const dmnType &domain) |
| void | validate_element_support (const mshType &mesh) |
| void | b_darcy (ComMod &com_mod, const int eNoN, const double w, const Vector< double > &N, const double h, Array< double > &lR) |
| void | construct_darcy (ComMod &com_mod, const mshType &lM, const SolutionStates &solutions) |
| void | darcy_2d (ComMod &com_mod, const int eNoN, const double w, const Vector< double > &N, const Array< double > &Nx, const Array< double > &al, const Array< double > &yl, Array< double > &lR, Array3< double > &lK) |
| void | darcy_3d (ComMod &com_mod, const int eNoN, const double w, const Vector< double > &N, const Array< double > &Nx, const Array< double > &al, const Array< double > &yl, Array< double > &lR, Array3< double > &lK) |
Pressure-based Darcy flow in porous media.
This namespace implements the Darcy equation for perfusion of porous media with intrinsic dimensions 2 and 3. Material coefficients are homogeneous within each solver domain, permeability is isotropic, and Stokes-flow assumptions apply. The assembled pressure strong form is
\[ \rho \beta \frac{\partial p}{\partial t} - \nabla \cdot \left(\frac{\rho K}{\mu}\nabla p\right) = \rho s. \]
This discretizes the pressure-only strong form. Velocity is not an independent unknown. After pressure is solved, Darcy velocity is evaluated as the derived field
\[ \boldsymbol{q} = -\frac{K}{\mu}\nabla p. \]
The model quantities and their admissible ranges are:
Darcy_permeability defaults to \(10^{-15}\) and must satisfy \(K > 0\).Darcy_fluid_viscosity defaults to 1 and must satisfy \(\mu > 0\).Fluid_density defaults to 0.5 and must satisfy \(\rho > 0\).Darcy_compressibility defaults to 0 and must satisfy \(\beta \ge 0\).Source_term [1/T]; it defaults to 0 and is constant within each configured domain.\[ \boldsymbol{q} = -\frac{K}{\mu}\nabla p. \]
| void darcy::b_darcy | ( | ComMod & | com_mod, |
| const int | eNoN, | ||
| const double | w, | ||
| const Vector< double > & | N, | ||
| const double | h, | ||
| Array< double > & | lR | ||
| ) |
Assemble a Darcy boundary contribution into the element residual.
| [in] | com_mod | Common solver state retained for the common assembly interface. |
| [in] | eNoN | Number of element nodes. |
| [in] | w | Weighted boundary quadrature measure. |
| [in] | N | Shape-function values at the quadrature point. |
| [in] | h | Prescribed boundary flux contribution. |
| [in,out] | lR | Element residual. |
| void darcy::construct_darcy | ( | ComMod & | com_mod, |
| const mshType & | lM, | ||
| const SolutionStates & | solutions | ||
| ) |
Assemble Darcy volume contributions for all supported elements in a mesh.
| [in,out] | com_mod | Common solver state and assembly interface. |
| [in] | lM | Mesh whose Darcy elements are assembled. |
| [in] | solutions | Solution states used for element-local fields. |
| void darcy::darcy_2d | ( | ComMod & | com_mod, |
| const int | eNoN, | ||
| const double | w, | ||
| const Vector< double > & | N, | ||
| const Array< double > & | Nx, | ||
| const Array< double > & | al, | ||
| const Array< double > & | yl, | ||
| Array< double > & | lR, | ||
| Array3< double > & | lK | ||
| ) |
Assemble the residual and tangent for an intrinsic two-dimensional element.
| [in] | com_mod | Common solver state. |
| [in] | eNoN | Number of element nodes. |
| [in] | w | Weighted volume quadrature measure. |
| [in] | N | Shape-function values at the quadrature point. |
| [in] | Nx | Mapped spatial shape-function derivatives. |
| [in] | al | Element-local pressure rates. |
| [in] | yl | Element-local pressure state. |
| [in,out] | lR | Element residual. |
| [in,out] | lK | Element tangent matrix. |
| void darcy::darcy_3d | ( | ComMod & | com_mod, |
| const int | eNoN, | ||
| const double | w, | ||
| const Vector< double > & | N, | ||
| const Array< double > & | Nx, | ||
| const Array< double > & | al, | ||
| const Array< double > & | yl, | ||
| Array< double > & | lR, | ||
| Array3< double > & | lK | ||
| ) |
Assemble the residual and tangent for an intrinsic three-dimensional element.
| [in] | com_mod | Common solver state. |
| [in] | eNoN | Number of element nodes. |
| [in] | w | Weighted volume quadrature measure. |
| [in] | N | Shape-function values at the quadrature point. |
| [in] | Nx | Mapped spatial shape-function derivatives. |
| [in] | al | Element-local pressure rates. |
| [in] | yl | Element-local pressure state. |
| [in,out] | lR | Element residual. |
| [in,out] | lK | Element tangent matrix. |
| void darcy::validate_element_support | ( | const mshType & | mesh | ) |
Reject mesh types that Darcy assembly and flux output do not implement.
| [in] | mesh | Mesh whose element type is checked. |
mshType::lFib denotes a one-dimensional mesh embedded in the ambient geometry, not a myocardial material fiber direction. Darcy is currently limited to intrinsic dimensions 2 and 3. | void darcy::validate_material_properties | ( | const dmnType & | domain | ) |
Validate the configured Darcy material coefficients for a domain.
| [in] | domain | Solver domain whose material properties are checked. |