Abstract class for classes about the Laplace equation. More...


Public Member Functions | |
Equa_Laplace () | |
Default constructor. More... | |
virtual | ~Equa_Laplace () |
Destructor. | |
int | run () |
Solve the equation. | |
void | updateBC (const Element &el, const Vect< T_ > &bc) |
Update Right-Hand side by taking into account essential boundary conditions. More... | |
void | updateBC (const Vect< T_ > &bc) |
Update Right-Hand side by taking into account essential boundary conditions. More... | |
void | DiagBC (int 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 | ElementNodeVector (const Vect< T_ > &b, LocalVect< T_, NEN_ > &be, int dof) |
Localize Element 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 | ElementSideVector (const Vect< T_ > &b, LocalVect< T_, NSE_ > &be) |
Localize Element Vector from a Vect instance. More... | |
void | ElementVector (const Vect< T_ > &b, int dof_type=NODE_FIELD, int flag=0) |
Localize Element Vector. More... | |
void | SideVector (const Vect< T_ > &b) |
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 (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 | ElementAssembly (Vect< T_ > &v) |
Assemble element vector 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 | 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. | |
T_ * | A () |
Return element matrix as a C-array. | |
T_ * | sA () |
Return side matrix as a C-array. | |
T_ * | b () |
Return element right-hand side as a C-array. | |
T_ * | sb () |
Return side right-hand side as a C-array. | |
T_ * | Prev () |
Return element matrix as a C-array. | |
LocalMatrix< T_, NEE_, NEE_ > & | EA () |
Return element matrix as a LocalMatrix instance. | |
LocalMatrix< T_, NSE_, NSE_ > & | SA () |
Return side matrix as a LocalMatrix instance. | |
LocalVect< T_, NEE_ > & | Eb () |
Return element right-hand side as a LocalVect instance. | |
LocalVect< T_, NEE_ > & | Ep () |
Return element matrix as a C-array. | |
void | setInitialSolution (const Vect< T_ > &u) |
Set initial solution (previous time step) | |
real_t | setMaterialProperty (const string &exp, const string &prop) |
Define a material property by an algebraic expression. More... | |
void | setMesh (class 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. | |
void | setSolver (int ls, int pc=IDENT_PREC) |
Choose solver for the linear system. More... | |
int | solveEigenProblem (int nb_eigv, bool g=false) |
Compute eigenvalues and eigenvectors. More... | |
real_t | getEigenValue (int n) const |
Return the n-th eigenvalue. More... | |
void | getEigenVector (int n, Vect< real_t > &v) const |
Store the eigenvector corresponding to a given eigenvalue. More... | |
class Eigen & | getEigenSolver () |
Return reference to eigenproblem solver. | |
Protected Member Functions | |
void | Init (const Element *el) |
Set element arrays to zero. | |
void | Init (const Side *sd) |
Set side arrays to zero. | |
Detailed Description
template<class T_, size_t NEN_, size_t NEE_, size_t NSN_, size_t NSE_>
class OFELI::Equa_Laplace< T_, NEN_, NEE_, NSN_, NSE_ >
Abstract class for classes about the Laplace equation.
Template Arguments:
- T_ : data type (double, float, ...)
- NEN_ : Number of element nodes
- NEE_ : Number of element equations
- NSN_ : Number of side nodes
- NSE_ : Number of side equations
Constructor & Destructor Documentation
Equa_Laplace | ( | ) |
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
|
inherited |
Update Right-Hand side by taking into account essential boundary conditions.
- Parameters
-
[in] bc Vector that contains imposed values at all DOFs
- Remarks
- The current element is pointed by
_theElement
|
inherited |
Update element matrix to impose bc by diagonalization technique.
- Parameters
-
[in] dof_type DOF type option. To choose among the enumerated values: -
NODE_FIELD
, DOFs are supported by nodes [Default] -
ELEMENT_FIELD
, DOFs are supported by elements -
SIDE_FIELD
, DOFs are supported by sides
[in] dof DOF setting: -
= 0
, All DOFs are taken into account [Default] -
!= 0
, Only DOF No.dof
is handled in the system
-
|
inherited |
|
inherited |
Localize Element Vector.
- Parameters
-
[in] b Global vector to be localized [in] dof_type DOF type option. To choose among the enumerated values: -
NODE_FIELD
, DOFs are supported by nodes [Default] -
ELEMENT_FIELD
, DOFs are supported by elements -
SIDE_FIELD
, DOFs are supported by sides
[in] flag Option to set: -
= 0
, All DOFs are taken into account [Default] -
!= 0
, Only DOF numberdof
is handled in the system
ePrev
. -
|
inherited |
Localize Side Vector.
- Parameters
-
[in] b Global vector to be localized -
NODE_FIELD
, DOFs are supported by nodes [ default ] -
ELEMENT_FIELD
, DOFs are supported by elements -
SIDE_FIELD
, DOFs are supported by sides
ePrev
. -
|
inherited |
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
|
inherited |
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
|
inherited |
|
inherited |
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
|
inherited |
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
|
inherited |
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
|
inherited |
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
|
inherited |
Assemble element vector into global one.
- Parameters
-
[in] v Global vector (Vect instance)
- Warning
- The element pointer is given by the global variable
theElement
|
inherited |
|
inherited |
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
|
inherited |
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
|
inherited |
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
|
inherited |
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
|
inherited |
|
inherited |
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
|
inherited |
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
|
inherited |
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
|
inherited |
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
|
inherited |
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
-
|
inherited |
|
inherited |
Choose solver for the linear system.
- Parameters
-
[in] ls Solver of the linear system. To choose among the enumerated values: DIRECT_SOLVER
,CG_SOLVER
,GMRES_SOLVER
-
DIRECT_SOLVER
, Use a facorization solver [default] -
CG_SOLVER
, Conjugate Gradient iterative solver -
CGS_SOLVER
, Squared Conjugate Gradient iterative solver -
BICG_SOLVER
, BiConjugate Gradient iterative solver -
BICG_STAB_SOLVER
, BiConjugate Gradient Stabilized iterative solver -
GMRES_SOLVER
, GMRES iterative solver -
QMR_SOLVER
, QMR iterative solver
[in] pc Preconditioner to associate to the iterative solver. If the direct solver was chosen for the first argument this argument is not used. Otherwise choose among the enumerated values: -
IDENT_PREC
, Identity preconditioner (no preconditioning [default]) -
DIAG_PREC
, Diagonal preconditioner -
ILU_PREC
, Incomplete LU factorization preconditioner
-
|
inherited |
Compute eigenvalues and eigenvectors.
Eigenvalues and vectors are computed using the Bathe's subspace iteration method.
- Parameters
-
[in] nb_eigv Number of eigenvalues to compute [in] g Option to choose whether to solve a generalized eigenvalue problem (true) or a standard one (false). The generalized eigenvalue problem corresponds to the case where a consistent mass matrix (rather than a lumped one) is computed. Default value is false.
|
inherited |
Return the n-th eigenvalue.
This functions works only if the member function getEigen was called with an argument nb_eigv
greater or equal to n
. Otherwise it returns 0
.