Abstract class for Porous Media Finite Element classes. More...
#include <Equa_Porous.h>
Public Member Functions | |
| Equa_Porous () | |
| Default constructor. | |
| virtual | ~Equa_Porous () |
| Destructor. | |
| virtual void | Mobility () |
| Add mobility term to the 0-th order element matrix. | |
| virtual void | Mass () |
| Add porosity term to the 1-st order element matrix. | |
| virtual void | BodyRHS (const Vect< real_t > &bf) |
| Add source right-hand side term to right-hand side. | |
| virtual void | BoundaryRHS (const Vect< real_t > &sf) |
| Add boundary right-hand side term to right-hand side. | |
| void | build () |
| Build the linear system of equations. | |
| void | build (TimeStepping &s) |
| Build the linear system of equations. | |
| void | build (EigenProblemSolver &e) |
| Build the linear system for an eigenvalue problem. | |
| int | run () |
| Run the equation. | |
| void | Mu (const string &exp) |
| Set viscosity given by an algebraic expression. | |
Public Member Functions inherited from Equation< NEN_, NEE_, NSN_, NSE_ > | |
| Equation () | |
| Equation (Mesh &mesh) | |
| Constructor with mesh instance. | |
| Equation (Mesh &mesh, Vect< real_t > &u) | |
| Constructor with mesh instance and solution vector. | |
| Equation (Mesh &mesh, Vect< real_t > &u, real_t &init_time, real_t &final_time, real_t &time_step) | |
| Constructor with mesh instance, matrix and right-hand side. | |
| ~Equation () | |
| Destructor. | |
| void | updateBC (const Element &el, const Vect< real_t > &bc) |
| Update Right-Hand side by taking into account essential boundary conditions. | |
| void | DiagBC (DOFSupport dof_type=NODE_DOF, int dof=0) |
| Update element matrix to impose bc by diagonalization technique. | |
| void | LocalNodeVector (Vect< real_t > &b) |
| Localize element vector from a Vect instance. | |
| void | ElementNodeVector (const Vect< real_t > &b, LocalVect< real_t, NEE_ > &be) |
| Localize element vector from a Vect instance. | |
| void | SideNodeVector (const Vect< real_t > &b, LocalVect< real_t, NSE_ > &bs) |
| Localize side vector from a Vect instance. | |
| void | SideSideVector (const Vect< real_t > &b, vector< real_t > &bs) |
| Localize side vector from a Vect instance. | |
| void | ElementNodeVectorSingleDOF (const Vect< real_t > &b, LocalVect< real_t, NEN_ > &be) |
| Localize Element Vector from a Vect instance. | |
| void | ElementNodeVector (const Vect< real_t > &b, LocalVect< real_t, NEN_ > &be, int dof) |
| Localize Element Vector from a Vect instance. | |
| void | ElementSideVector (const Vect< real_t > &b, LocalVect< real_t, NSE_ > &be) |
| Localize Element Vector from a Vect instance. | |
| void | ElementVector (const Vect< real_t > &b, DOFSupport dof_type=NODE_DOF, int flag=0) |
| Localize element vector. | |
| void | SideVector (const Vect< real_t > &b, vector< real_t > &sb) |
| Localize side vector. | |
| void | ElementNodeCoordinates () |
| Localize coordinates of element nodes. | |
| void | SideNodeCoordinates () |
| Localize coordinates of side nodes. | |
| void | ElementAssembly (Matrix< real_t > *A) |
| Assemble element matrix into global one. | |
| void | ElementAssembly (BMatrix< real_t > &A) |
| Assemble element matrix into global one. | |
| void | ElementAssembly (SkSMatrix< real_t > &A) |
| Assemble element matrix into global one. | |
| void | ElementAssembly (SkMatrix< real_t > &A) |
| Assemble element matrix into global one. | |
| void | ElementAssembly (SpMatrix< real_t > &A) |
| Assemble element matrix into global one. | |
| void | ElementAssembly (TrMatrix< real_t > &A) |
| Assemble element matrix into global one. | |
| void | DGElementAssembly (Matrix< real_t > *A) |
| Assemble element matrix into global one for the Discontinuous Galerkin approximation. | |
| void | DGElementAssembly (SkSMatrix< real_t > &A) |
| Assemble element matrix into global one for the Discontinuous Galerkin approximation. | |
| void | DGElementAssembly (SkMatrix< real_t > &A) |
| Assemble element matrix into global one for the Discontinuous Galerkin approximation. | |
| void | DGElementAssembly (SpMatrix< real_t > &A) |
| Assemble element matrix into global one for the Discontinuous Galerkin approximation. | |
| void | DGElementAssembly (TrMatrix< real_t > &A) |
| Assemble element matrix into global one for the Discontinuous Galerkin approximation. | |
| void | SideAssembly (Matrix< real_t > *A) |
| Assemble side (edge or face) matrix into global one. | |
| void | SideAssembly (SkSMatrix< real_t > &A) |
| Assemble side (edge or face) matrix into global one. | |
| void | SideAssembly (SkMatrix< real_t > &A) |
| Assemble side (edge or face) matrix into global one. | |
| void | SideAssembly (SpMatrix< real_t > &A) |
| Assemble side (edge or face) matrix into global one. | |
| void | ElementAssembly (Vect< real_t > &v) |
| Assemble element vector into global one. | |
| void | SideAssembly (Vect< real_t > &v) |
| Assemble side (edge or face) vector into global one. | |
| void | AxbAssembly (const Element &el, const Vect< real_t > &x, Vect< real_t > &b) |
| Assemble product of element matrix by element vector into global vector. | |
| void | AxbAssembly (const Side &sd, const Vect< real_t > &x, Vect< real_t > &b) |
| Assemble product of side matrix by side vector into global vector. | |
| size_t | getNbNodes () const |
| Return number of element nodes. | |
| size_t | getNbEq () const |
| Return number of element equations. | |
| real_t | setMaterialProperty (const string &exp, const string &prop) |
| Define a material property by an algebraic expression. | |
Public Member Functions inherited from Equa | |
| Equa () | |
| Default constructor. | |
| virtual | ~Equa () |
| Destructor. | |
| void | setMesh (Mesh &m) |
| Define mesh and renumber DOFs after removing imposed ones. | |
| Mesh & | getMesh () const |
| Return reference to Mesh instance. | |
| LinearSolver & | getLinearSolver () |
| Return reference to linear solver instance. | |
| Matrix< real_t > * | getMatrix () const |
| Return pointer to matrix. | |
| void | setSolver (Iteration ls, Preconditioner pc=IDENT_PREC) |
| Choose solver for the linear system. | |
| void | setMatrixType (int t) |
| Choose type of matrix. | |
| int | solveLinearSystem (Matrix< real_t > *A, Vect< real_t > &b, Vect< real_t > &x) |
| Solve the linear system with given matrix and right-hand side. | |
| int | solveLinearSystem (Vect< real_t > &b, Vect< real_t > &x) |
| Solve the linear system with given right-hand side. | |
| void | LinearSystemInfo () |
| Print info on linear system solver. | |
Protected Member Functions | |
| void | setMaterial () |
| Set material properties. | |
Abstract class for Porous Media Finite Element classes.
| <T_> | data type (real_t, float, ...) |
| <NEN> | Number of element nodes |
| <NEE_> | Number of element equations |
| <NSN_> | Number of side nodes |
| <NSE_> | Number of side equations |
| Equa_Porous | ( | ) |
Default constructor.
Constructs an empty equation.
|
virtual |
Add source right-hand side term to right-hand side.
| [in] | bf | Vector containing source at nodes. |
Reimplemented in WaterPorous2D.
|
virtual |
Add boundary right-hand side term to right-hand side.
| [in] | sf | Vector containing source at nodes. |
Reimplemented in WaterPorous2D.
| void build | ( | ) |
Build the linear system of equations.
Before using this function, one must have properly selected appropriate options for:
| void build | ( | EigenProblemSolver & | e | ) |
Build the linear system for an eigenvalue problem.
| [in] | e | Reference to used EigenProblemSolver instance |
| void build | ( | TimeStepping & | s | ) |
Build the linear system of equations.
Before using this function, one must have properly selected appropriate options for:
| [in] | s | Reference to used TimeStepping instance |
| int run | ( | ) |
Run the equation.
If the analysis (see function setAnalysis) is STEADY_STATE, then the function solves the stationary equation.
If the analysis is TRANSIENT, then the function performs time stepping until the final time is reached.