To build element equation for the Laplace equation using the 2-D triangle element (P1
).
More...


Public Member Functions | |
Laplace2DT3 (Mesh &ms) | |
Constructor with mesh. More... | |
Laplace2DT3 (Mesh &ms, SpMatrix< real_t > &A, Vect< real_t > &b) | |
Constructor with problem data. More... | |
Laplace2DT3 (Mesh &ms, Vect< real_t > &b) | |
Constructor using mesh and solution vector. More... | |
Laplace2DT3 (Mesh &ms, Vect< real_t > &b, Vect< real_t > &Dbc, Vect< real_t > &Nbc, Vect< real_t > &u) | |
Constructor that initializes a standard Poisson equation. More... | |
Laplace2DT3 (Element *el) | |
Constructor for an element. | |
Laplace2DT3 (Side *sd) | |
Constructor for a side. | |
~Laplace2DT3 () | |
Destructor. | |
void | LHS (real_t coef=1.) |
Add finite element matrix to left-hand side. More... | |
void | BodyRHS (const Vect< real_t > &f) |
Add body source term to right-hand side. More... | |
void | BoundaryRHS (const Vect< real_t > &h) |
Add boundary source term to right-hand side. More... | |
void | setSource (const Vect< real_t > &f) |
Define Source right-hand side of the equation. More... | |
void | build () |
Build global matrix and right-hand side. More... | |
void | buildEigen (int opt=0) |
Build global stiffness and mass matrices for the eigen system. More... | |
void | Post (const Vect< real_t > &u, Vect< Point< real_t > > &p) |
Perform post calculations. More... | |
int | solve (Vect< real_t > &u) |
Solve the linear system of equations using the Conjugate Gradient iterative method. More... | |
void | Axb (const Vect< real_t > &x, Vect< real_t > &b) |
Compute the product of the stiffness matrix by a given vector. More... | |
int | run () |
Build and solve the linear system of equations using an iterative method. More... | |
void | build (EigenProblemSolver &e) |
Build the linear system for an eigenvalue problem. More... | |
void | updateBC (const Element &el, const Vect< real_t > &bc) |
Update Right-Hand side by taking into account essential boundary conditions. More... | |
void | updateBC (const Vect< real_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< real_t > &b) |
Localize Element Vector from a Vect instance. More... | |
void | ElementNodeVector (const Vect< real_t > &b, LocalVect< real_t, NEE_ > &be) |
Localize Element Vector from a Vect instance. More... | |
void | ElementNodeVector (const Vect< real_t > &b, LocalVect< real_t, NEN_ > &be, int dof) |
Localize Element Vector from a Vect instance. More... | |
void | ElementNodeVectorSingleDOF (const Vect< real_t > &b, LocalVect< real_t, NEN_ > &be) |
Localize Element Vector from a Vect instance. More... | |
void | ElementSideVector (const Vect< real_t > &b, LocalVect< real_t, NSE_ > &be) |
Localize Element Vector from a Vect instance. More... | |
void | ElementVector (const Vect< real_t > &b, int dof_type=NODE_FIELD, int flag=0) |
Localize Element Vector. More... | |
void | SideVector (const Vect< real_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< real_t > *A) |
Assemble element matrix into global one. More... | |
void | ElementAssembly (PETScMatrix< real_t > &A) |
Assemble element matrix into global one. More... | |
void | ElementAssembly (PETScVect< real_t > &b) |
Assemble element right-hand side vector into global one. More... | |
void | ElementAssembly (BMatrix< real_t > &A) |
Assemble element matrix into global one. More... | |
void | ElementAssembly (SkSMatrix< real_t > &A) |
Assemble element matrix into global one. More... | |
void | ElementAssembly (SkMatrix< real_t > &A) |
Assemble element matrix into global one. More... | |
void | ElementAssembly (SpMatrix< real_t > &A) |
Assemble element matrix into global one. More... | |
void | ElementAssembly (TrMatrix< real_t > &A) |
Assemble element matrix into global one. More... | |
void | ElementAssembly (Vect< real_t > &v) |
Assemble element vector into global one. More... | |
void | SideAssembly (PETScMatrix< real_t > &A) |
Assemble side matrix into global one. More... | |
void | SideAssembly (PETScVect< real_t > &b) |
Assemble side right-hand side vector into global one. More... | |
void | SideAssembly (Matrix< real_t > *A) |
Assemble side (edge or face) matrix into global one. More... | |
void | SideAssembly (SkSMatrix< real_t > &A) |
Assemble side (edge or face) matrix into global one. More... | |
void | SideAssembly (SkMatrix< real_t > &A) |
Assemble side (edge or face) matrix into global one. More... | |
void | SideAssembly (SpMatrix< real_t > &A) |
Assemble side (edge or face) matrix into global one. More... | |
void | SideAssembly (Vect< real_t > &v) |
Assemble side (edge or face) vector into global one. More... | |
void | DGElementAssembly (Matrix< real_t > *A) |
Assemble element matrix into global one for the Discontinuous Galerkin approximation. More... | |
void | DGElementAssembly (SkSMatrix< real_t > &A) |
Assemble element matrix into global one for the Discontinuous Galerkin approximation. More... | |
void | DGElementAssembly (SkMatrix< real_t > &A) |
Assemble element matrix into global one for the Discontinuous Galerkin approximation. More... | |
void | DGElementAssembly (SpMatrix< real_t > &A) |
Assemble element matrix into global one for the Discontinuous Galerkin approximation. More... | |
void | DGElementAssembly (TrMatrix< real_t > &A) |
Assemble element matrix into global one for the Discontinuous Galerkin approximation. More... | |
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. More... | |
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. More... | |
size_t | getNbNodes () const |
Return number of element nodes. | |
size_t | getNbEq () const |
Return number of element equations. | |
void | setInitialSolution (const Vect< real_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 (Mesh &m) |
Define mesh and renumber DOFs after removing imposed ones. | |
Mesh & | getMesh () const |
Return reference to Mesh instance. More... | |
LinearSolver< real_t > & | getLinearSolver () |
Return reference to linear solver instance. | |
void | setSolver (Iteration ls, Preconditioner pc=IDENT_PREC) |
Choose solver for the linear system. More... | |
int | SolveLinearSystem (Matrix< real_t > *A, Vect< real_t > &b, Vect< real_t > &x) |
Solve the linear system. More... | |
Public Attributes | |
LocalMatrix< real_t, NEE_, NEE_ > | eMat |
LocalMatrix instance containing local matrix associated to current element. | |
LocalMatrix< real_t, NSE_, NSE_ > | sMat |
LocalMatrix instance containing local matrix associated to current side. | |
LocalVect< real_t, NEE_ > | ePrev |
LocalVect instance containing local vector associated to current element. More... | |
LocalVect< real_t, NEE_ > | eRHS |
LocalVect instance containing local right-hand side vector associated to current element. | |
LocalVect< real_t, NEE_ > | eRes |
LocalVect instance containing local residual vector associated to current element. | |
LocalVect< real_t, NSE_ > | sRHS |
LocalVect instance containing local right-hand side vector associated to current side. | |
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
To build element equation for the Laplace equation using the 2-D triangle element (P1
).
To build element equation for the Laplace equation using the 3-D tetrahedral element (P1
).
Constructor & Destructor Documentation
Laplace2DT3 | ( | Mesh & | ms | ) |
Constructor with mesh.
- Parameters
-
[in] ms Mesh instance
Constructor with problem data.
- Parameters
-
[in] ms Mesh instance [in] A Problem matrix in Sparse format. This matrix must be zeroed before calling the constructor [in] b Problem right-hand side
Laplace2DT3 | ( | Mesh & | ms, |
Vect< real_t > & | b | ||
) |
Constructor using mesh and solution vector.
- Parameters
-
[in] ms Mesh instance [in] b Problem right-hand side
Laplace2DT3 | ( | Mesh & | ms, |
Vect< real_t > & | b, | ||
Vect< real_t > & | Dbc, | ||
Vect< real_t > & | Nbc, | ||
Vect< real_t > & | u | ||
) |
Constructor that initializes a standard Poisson equation.
This constructor sets data for the Poisson equation with mixed (Dirichlet and Neumann) boundary conditions.
- Parameters
-
[in] ms Mesh instance [in] b Vector containing the source term (right-hand side of the equation) at mesh nodes [in] Dbc Vector containing prescribed values of the solution (Dirichlet boundary condition) at nodes with positive code. Its size is the total number of nodes [in] Nbc Vector containing prescribed fluxes (Neumann boundary conditions) at sides, its size is the total number of sides [in] u Vector to contain the finite element solution at nodes once the member function run() is called.
Member Function Documentation
void LHS | ( | real_t | coef = 1. | ) |
Add finite element matrix to left-hand side.
- Parameters
-
[in] coef Value to multiply by the added matrix
Add body source term to right-hand side.
- Parameters
-
[in] f Vector containing the source given function at mesh nodes
Add boundary source term to right-hand side.
- Parameters
-
[in] h Vector containing the source given function at mesh nodes
Define Source right-hand side of the equation.
- Parameters
-
f [in] Vector containing source values at nodes
|
virtual |
Build global matrix and right-hand side.
The problem matrix and right-hand side are the ones used in the constructor. They are updated in this member function.
Reimplemented from Equa_Laplace< real_t, 3, 3, 2, 2 >.
|
virtual |
Build global stiffness and mass matrices for the eigen system.
- Parameters
-
[in] opt Flag to choose a lumed mass matrix (0) or consistent (1) [Default: 0
]
Reimplemented from Equa_Laplace< real_t, 3, 3, 2, 2 >.
Perform post calculations.
- Parameters
-
[in] u Solution at nodes [out] p Vector containing gradient at elements
Solve the linear system of equations using the Conjugate Gradient iterative method.
The matrix is preconditioned by an ILU method.
- Parameters
-
[in] u Vector containing the solution at all sides (Sides where boundary conditions are prescribed are included).
- Returns
- Number of performed iterations in the CG method. Note that the maximal number is
1000
and the tolerance is1.e-8
Compute the product of the stiffness matrix by a given vector.
- Parameters
-
[in] x Vector by which the matrix is multiplied [in] b Product vector
int run | ( | ) |
Build and solve the linear system of equations using an iterative method.
The matrix is preconditioned by the diagonal ILU method. The linear system is solved either by the Conjugate Gradient method if the matrix is symmetric positive definite (eps=-1
) or the GMRES method if not. The solution is stored in the vector u
given in the constructor.
- Returns
- Number of performed iterations. Note that the maximal number is 1000 and the tolerance is 1.e-8
|
inherited |
Build the linear system for an eigenvalue problem.
- Parameters
-
[in] e Reference to used EigenProblemSolver instance
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
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
-
Localize Element Vector from a Vect instance.
- Parameters
-
[in] b Reference to global vector to be localized. The resulting local vector can be accessed by attribute ePrev. This member function is to be used if a constructor with Element was invoked.
Localize Element Vector from a Vect instance.
- Parameters
-
[in] b Global vector to be localized. [out] be Local vector, the length of which is the total number of element equations.
- Remarks
- All degrees of freedom are transferred to the local vector
|
inherited |
Localize Element Vector from a Vect instance.
- Parameters
-
[in] b Global vector to be localized. [out] be Local vector, the length of which is the total number of element equations. [in] dof Degree of freedom to transfer to the local vector
- Remarks
- Only yhe dega dof is transferred to the local vector
|
inherited |
Localize Element Vector from a Vect instance.
- Parameters
-
[in] b Global vector to be localized. [out] be Local vector, the length of which is the total number of element equations.
- Remarks
- Vector
b
is assumed to contain only one degree of freedom by node.
Localize Element Vector from a Vect instance.
- Parameters
-
[in] b Global vector to be localized. [out] be Local vector, the length of which is
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
. -
- Remarks
- This member function is to be used if a constructor with Element was invoked. It uses the Element pointer
_theElement
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
. -
- Remarks
- This member function is to be used if a constructor with Side was invoked. It uses the Side pointer
_theSide
|
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
Assemble element matrix into global one.
- Parameters
-
A Pointer to global matrix (abstract class: can be any of classes SkSMatrix, SkMatrix, SpMatrix)
- Warning
- The element pointer is given by the global variable
theElement
|
inherited |
Assemble element matrix into global one.
- Parameters
-
A Reference to global matrix
- Warning
- The element pointer is given by the global variable
theElement
Assemble element right-hand side vector into global one.
- Parameters
-
b Reference to global right-hand side vector
- Warning
- The element pointer is given by the global variable
theElement
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
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
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
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
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
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 |
Assemble side matrix into global one.
- Parameters
-
A Reference to global matrix
- Warning
- The side pointer is given by the global variable
theSide
Assemble side right-hand side vector into global one.
- Parameters
-
b Reference to global right-hand side vector
- Warning
- The side pointer is given by the global variable
theSide
Assemble side (edge or face) matrix into global one.
- Parameters
-
A Pointer to global matrix (abstract class: can be any of classes SkSMatrix, SkMatrix, SpMatrix)
- Warning
- The side pointer is given by the global variable
theSide
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
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
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
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
Assemble element matrix into global one for the Discontinuous Galerkin approximation.
- Parameters
-
A Pointer to global matrix (abstract class: can be any of classes SkSMatrix, SkMatrix, SpMatrix)
- Warning
- The element pointer is given by the global variable
theElement
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
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
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
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
Assemble product of element matrix by element vector into global vector.
- Parameters
-
[in] el Reference to Element instance [in] x Global vector to multiply by (Vect instance) [out] b Global vector to add (Vect instance)
Assemble product of side matrix by side vector into global vector.
- Parameters
-
[in] sd Reference to Side instance [in] x Global vector to multiply by (Vect instance) [out] b Global vector (Vect instance)
|
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 |
Return reference to Mesh instance.
- Returns
- Reference to Mesh instance
|
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
-
Solve the linear system.
- Parameters
-
[in] A Pointer to matrix of the system (Instance of class SpMatrix) [in] b Vector containing right-hand side [in,out] x Vector containing initial guess of solution on input, actual solution on output