Abstract class for all equation classes. More...
Inheritance diagram for Equation< T_, NEN_, NEE_, NSN_, NSE_ >:
Public Member Functions | |
| Equation () | |
| Equation (Mesh &mesh) | |
| Constructor with mesh instance. More... | |
| Equation (Mesh &mesh, Vect< T_ > &u) | |
| Constructor with mesh instance and solution vector. More... | |
| Equation (Mesh &mesh, Vect< T_ > &u, real_t &init_time, real_t &final_time, real_t &time_step) | |
| Constructor with mesh instance, matrix and right-hand side. More... | |
| virtual | ~Equation () |
| Destructor. | |
| void | updateBC (const Element &el, const Vect< T_ > &bc) |
| Update Right-Hand side by taking into account essential boundary conditions. More... | |
| void | DiagBC (DOFSupport dof_type=NODE_DOF, int dof=0) |
| Update element matrix to impose bc by diagonalization technique. More... | |
| void | LocalNodeVector (Vect< T_ > &b) |
| Localize Element Vector from a Vect instance. More... | |
| void | ElementNodeVector (const Vect< T_ > &b, LocalVect< T_, NEE_ > &be) |
| Localize Element Vector from a Vect instance. More... | |
| void | SideNodeVector (const Vect< T_ > &b, LocalVect< T_, NSE_ > &bs) |
| Localize Side Vector from a Vect instance. More... | |
| void | SideSideVector (const Vect< T_ > &b, T_ *bs) |
| Localize Side Vector from a Vect instance. More... | |
| void | ElementNodeVectorSingleDOF (const Vect< T_ > &b, LocalVect< T_, NEN_ > &be) |
| Localize Element Vector from a Vect instance. More... | |
| void | ElementNodeVector (const Vect< T_ > &b, LocalVect< T_, NEN_ > &be, int dof) |
| Localize Element Vector from a Vect instance. More... | |
| void | ElementSideVector (const Vect< T_ > &b, LocalVect< T_, NSE_ > &be) |
| Localize Element Vector from a Vect instance. More... | |
| void | ElementVector (const Vect< T_ > &b, DOFSupport dof_type=NODE_DOF, int flag=0) |
| Localize Element Vector. More... | |
| void | SideVector (const Vect< T_ > &b, T_ *sb) |
| Localize Side Vector. More... | |
| void | ElementNodeCoordinates () |
| Localize coordinates of element nodes. More... | |
| void | SideNodeCoordinates () |
| Localize coordinates of side nodes. More... | |
| void | ElementAssembly (Matrix< T_ > *A) |
| Assemble element matrix into global one. More... | |
| void | ElementAssembly (BMatrix< T_ > &A) |
| Assemble element matrix into global one. More... | |
| void | ElementAssembly (SkSMatrix< T_ > &A) |
| Assemble element matrix into global one. More... | |
| void | ElementAssembly (SkMatrix< T_ > &A) |
| Assemble element matrix into global one. More... | |
| void | ElementAssembly (SpMatrix< T_ > &A) |
| Assemble element matrix into global one. More... | |
| void | ElementAssembly (TrMatrix< T_ > &A) |
| Assemble element matrix into global one. More... | |
| void | DGElementAssembly (Matrix< T_ > *A) |
| Assemble element matrix into global one for the Discontinuous Galerkin approximation. More... | |
| void | DGElementAssembly (SkSMatrix< T_ > &A) |
| Assemble element matrix into global one for the Discontinuous Galerkin approximation. More... | |
| void | DGElementAssembly (SkMatrix< T_ > &A) |
| Assemble element matrix into global one for the Discontinuous Galerkin approximation. More... | |
| void | DGElementAssembly (SpMatrix< T_ > &A) |
| Assemble element matrix into global one for the Discontinuous Galerkin approximation. More... | |
| void | DGElementAssembly (TrMatrix< T_ > &A) |
| Assemble element matrix into global one for the Discontinuous Galerkin approximation. More... | |
| void | SideAssembly (Matrix< T_ > *A) |
| Assemble side (edge or face) matrix into global one. More... | |
| void | SideAssembly (SkSMatrix< T_ > &A) |
| Assemble side (edge or face) matrix into global one. More... | |
| void | SideAssembly (SkMatrix< T_ > &A) |
| Assemble side (edge or face) matrix into global one. More... | |
| void | SideAssembly (SpMatrix< T_ > &A) |
| Assemble side (edge or face) matrix into global one. More... | |
| void | ElementAssembly (Vect< T_ > &v) |
| Assemble element vector into global one. More... | |
| void | SideAssembly (Vect< T_ > &v) |
| Assemble side (edge or face) vector into global one. More... | |
| void | AxbAssembly (const Element &el, const Vect< T_ > &x, Vect< T_ > &b) |
| Assemble product of element matrix by element vector into global vector. More... | |
| void | AxbAssembly (const Side &sd, const Vect< T_ > &x, Vect< T_ > &b) |
| Assemble product of side matrix by side vector into global vector. More... | |
| 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. More... | |
Public Member Functions inherited from Equa< T_ > | |
| 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. More... | |
| LinearSolver< T_ > & | getLinearSolver () |
| Return reference to linear solver instance. | |
| Matrix< T_ > * | getMatrix () const |
| Return pointer to matrix. | |
| void | setSolver (Iteration ls, Preconditioner pc=IDENT_PREC) |
| Choose solver for the linear system. More... | |
| void | setLinearSolver (Iteration ls, Preconditioner pc=IDENT_PREC) |
| Choose solver for the linear system. More... | |
| void | setMatrixType (int t) |
| Choose type of matrix. More... | |
| int | solveLinearSystem (Matrix< T_ > *A, Vect< T_ > &b, Vect< T_ > &x) |
| Solve the linear system with given matrix and right-hand side. More... | |
| int | solveLinearSystem (Vect< T_ > &b, Vect< T_ > &x) |
| Solve the linear system with given right-hand side. More... | |
Detailed Description
template<class T_, size_t NEN_, size_t NEE_, size_t NSN_, size_t NSE_>
class OFELI::Equation< T_, NEN_, NEE_, NSN_, NSE_ >
Abstract class for all equation classes.
Template Arguments:
- T_ : data type (real_t, float, ...)
- NEN_ : Number of element nodes
- NEE_ : Number of element equations
- NSN_ : Number of side nodes
- NSN_ : Number of side equations
- Author
- Rachid Touzani
- Copyright
- GNU Lesser Public License
Constructor & Destructor Documentation
| Equation | ( | ) |
Default constructor. Constructs an "empty" equation
Member Function Documentation
Update Right-Hand side by taking into account essential boundary conditions.
- Parameters
-
[in] el Reference to current element instance [in] bc Vector that contains imposed values at all DOFs
| void DiagBC | ( | DOFSupport | dof_type = NODE_DOF, |
| int | dof = 0 |
||
| ) |
Update element matrix to impose bc by diagonalization technique.
- Parameters
-
[in] dof_type DOF type option. To choose among the enumerated values: -
NODE_DOF, DOFs are supported by nodes [Default] -
ELEMENT_DOF, DOFs are supported by elements -
SIDE_DOF, DOFs are supported by sides
[in] dof DOF setting: -
= 0, All DOFs are taken into account [Default] -
!= 0, Only DOF No.dofis handled in the system
-
| void LocalNodeVector | ( | Vect< T_ > & | b | ) |
| void SideSideVector | ( | const Vect< T_ > & | b, |
| T_ * | bs | ||
| ) |
| void ElementVector | ( | const Vect< T_ > & | b, |
| DOFSupport | dof_type = NODE_DOF, |
||
| int | flag = 0 |
||
| ) |
Localize Element Vector.
- Parameters
-
[in] b Global vector to be localized [in] dof_type DOF type option. To choose among the enumerated values: -
NODE_DOF, DOFs are supported by nodes [Default] -
ELEMENT_DOF, DOFs are supported by elements -
SIDE_DOF, DOFs are supported by sides
[in] flag Option to set: -
= 0, All DOFs are taken into account [Default] -
!= 0, Only DOF numberdofis handled in the system
ePrev. -
| void SideVector | ( | const Vect< T_ > & | b, |
| T_ * | sb | ||
| ) |
Localize Side Vector.
- Parameters
-
[in] b Global vector to be localized -
NODE_DOF, DOFs are supported by nodes [ default ] -
ELEMENT_DOF, DOFs are supported by elements -
SIDE_DOF, DOFs are supported by sides -
BOUNDARY_SIDE_DOF, DOFs are supported by boundary sides
[out] sb Array in which local vector is stored The resulting local vector can be accessed by attribute ePrev. -
| void ElementNodeCoordinates | ( | ) |
Localize coordinates of element nodes.
Coordinates are stored in array _x[0], _x[1], ... which are instances of class Point<real_t>
- Remarks
- This member function uses the Side pointer
_theSide
| void SideNodeCoordinates | ( | ) |
Localize coordinates of side nodes.
Coordinates are stored in array _x[0], _x[1], ... which are instances of class Point<real_t>
- Remarks
- This member function uses the Element pointer
_theElement
| void ElementAssembly | ( | Matrix< T_ > * | A | ) |
| void ElementAssembly | ( | BMatrix< T_ > & | A | ) |
Assemble element matrix into global one.
- Parameters
-
A Global matrix stored as a BMatrix instance
- Warning
- The element pointer is given by the global variable
theElement
| void ElementAssembly | ( | SkSMatrix< T_ > & | A | ) |
Assemble element matrix into global one.
- Parameters
-
A Global matrix stored as an SkSMatrix instance
- Warning
- The element pointer is given by the global variable
theElement
| void ElementAssembly | ( | SkMatrix< T_ > & | A | ) |
Assemble element matrix into global one.
- Parameters
-
[in] A Global matrix stored as an SkMatrix instance
- Warning
- The element pointer is given by the global variable
theElement
| void ElementAssembly | ( | SpMatrix< T_ > & | A | ) |
Assemble element matrix into global one.
- Parameters
-
[in] A Global matrix stored as an SpMatrix instance
- Warning
- The element pointer is given by the global variable
theElement
| void ElementAssembly | ( | TrMatrix< T_ > & | A | ) |
Assemble element matrix into global one.
- Parameters
-
[in] A Global matrix stored as an TrMatrix instance
- Warning
- The element pointer is given by the global variable
theElement
| void DGElementAssembly | ( | Matrix< T_ > * | A | ) |
| void DGElementAssembly | ( | SkSMatrix< T_ > & | A | ) |
Assemble element matrix into global one for the Discontinuous Galerkin approximation.
- Parameters
-
A Global matrix stored as an SkSMatrix instance
- Warning
- The element pointer is given by the global variable
theElement
| void DGElementAssembly | ( | SkMatrix< T_ > & | A | ) |
Assemble element matrix into global one for the Discontinuous Galerkin approximation.
- Parameters
-
[in] A Global matrix stored as an SkMatrix instance
- Warning
- The element pointer is given by the global variable
theElement
| void DGElementAssembly | ( | SpMatrix< T_ > & | A | ) |
Assemble element matrix into global one for the Discontinuous Galerkin approximation.
- Parameters
-
[in] A Global matrix stored as an SpMatrix instance
- Warning
- The element pointer is given by the global variable
theElement
| void DGElementAssembly | ( | TrMatrix< T_ > & | A | ) |
Assemble element matrix into global one for the Discontinuous Galerkin approximation.
- Parameters
-
[in] A Global matrix stored as an TrMatrix instance
- Warning
- The element pointer is given by the global variable
theElement
| void SideAssembly | ( | Matrix< T_ > * | A | ) |
| void SideAssembly | ( | SkSMatrix< T_ > & | A | ) |
Assemble side (edge or face) matrix into global one.
- Parameters
-
[in] A Global matrix stored as an SkSMatrix instance
- Warning
- The side pointer is given by the global variable
theSide
| void SideAssembly | ( | SkMatrix< T_ > & | A | ) |
Assemble side (edge or face) matrix into global one.
- Parameters
-
[in] A Global matrix stored as an SkMatrix instance
- Warning
- The side pointer is given by the global variable
theSide
| void SideAssembly | ( | SpMatrix< T_ > & | A | ) |
Assemble side (edge or face) matrix into global one.
- Parameters
-
[in] A Global matrix stored as an SpMatrix instance
- Warning
- The side pointer is given by the global variable
theSide
| void ElementAssembly | ( | Vect< T_ > & | v | ) |
Assemble element vector into global one.
- Parameters
-
[in] v Global vector (Vect instance)
- Warning
- The element pointer is given by the global variable
theElement
| void SideAssembly | ( | Vect< T_ > & | v | ) |
Assemble side (edge or face) vector into global one.
- Parameters
-
[in] v Global vector (Vect instance)
- Warning
- The side pointer is given by the global variable
theSide
| real_t setMaterialProperty | ( | const string & | exp, |
| const string & | prop | ||
| ) |
Define a material property by an algebraic expression.
- Parameters
-
[in] exp Algebraic expression [in] prop Property name
- Returns
- Return value in expression evaluation:
-
=0, Normal evaluation -
!=0, An error message is displayed
-