Abstract class for Finite Element classes for lienar PDEs'. More...
#include <Equa_LinearPDE.h>

Public Member Functions | |
Equa_LinearPDE () | |
Default constructor. More... | |
virtual | ~Equa_LinearPDE () |
Destructor. | |
void | setNoLumping () |
Set no lumping. More... | |
void | setStab () |
Set stabilization for convection term. More... | |
void | set_00 (real_t a=1.0) |
Set coefficient for term (0,0): 0th order in time and space. More... | |
void | set_00 (Fct &f) |
Set coefficient for term (0,0): 0th order in time and space. More... | |
void | set_00 (const string &f) |
Set coefficient for term (0,0): 0th order in time and space. More... | |
void | set_10 (real_t a=1.0) |
Set coefficient for term (1,0): 1st order in time, 0th order in space. More... | |
void | set_10 (Fct &f) |
Set coefficient for term (1,0): 1st order in time, 0th order in space. More... | |
void | set_20 (real_t a=1.0) |
Set coefficient for term (2,0): 2nd order in time, 0th order in space. More... | |
void | set_20 (Fct &f) |
Set coefficient for term (2,0): 2nd order in time, 0th order in space. More... | |
void | set_01 (real_t a=1.0) |
Set coefficient for term (0,1): 0th order in time, 1st order in space. More... | |
void | set_01 (Point< real_t > &a) |
Set coefficient for term (0,1): 0th order in time, 1st order in space. More... | |
void | set_01 (Fct &f) |
Set coefficient for term (0,1): 0th order in time, 1st order in time and space. More... | |
void | set_01 (Vect< real_t > &a) |
Set coefficient for term (0,1): 0th order in time, 1st order in space. More... | |
void | set_02 (real_t a=1.0) |
Set coefficient for term (0,2): 0th order in time, 2nd order in space. More... | |
void | set_02 (Fct &f) |
Set coefficient for term (0,2): 0th order in time, 2nd order in time and space. More... | |
virtual void | Mat_00 (real_t coef=1.0) |
Add 0th order term, in time and space, to left-hand side. More... | |
virtual void | Mat_10 (real_t coef=1.0) |
Add 1st order term in time, 0th in space to left-hand side. More... | |
virtual void | Mat_20 (real_t coef=1.0) |
Add 2nd order term in time, 0th in space to left-hand side. More... | |
virtual void | Mat_01 (real_t coef=1.0) |
Add 0th order term in time, 1st in space to left-hand side. More... | |
virtual void | Mat_02 (real_t coef=1.0) |
Add 0th order term in time, 2nd in space to left-hand side. More... | |
virtual void | BodyRHS (const Vect< real_t > &f) |
Add body right-hand side term to right-hand side. More... | |
virtual void | BoundaryRHS (const Vect< real_t > &f) |
Add boundary right-hand side term to right-hand side. More... | |
void | build () |
Build the linear system of equations for the steady state case. | |
void | build (TimeStepping &s) |
Build the linear system of equations. More... | |
void | build (EigenProblemSolver &e) |
Build the linear system for an eigenvalue problem. More... | |
![]() | |
Equation () | |
Equation (Mesh &mesh) | |
Constructor with mesh instance. More... | |
Equation (Mesh &mesh, Vect< real_t > &u) | |
Constructor with mesh instance and solution vector. More... | |
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. More... | |
~Equation () | |
Destructor. | |
void | updateBC (const Element &el, const Vect< real_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< 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 | SideNodeVector (const Vect< real_t > &b, LocalVect< real_t, NSE_ > &bs) |
Localize Side Vector from a Vect instance. More... | |
void | SideSideVector (const Vect< real_t > &b, std::valarray< real_t > &bs) |
Localize Side 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, DOFSupport dof_type=NODE_DOF, int flag=0) |
Localize Element Vector. More... | |
void | SideVector (const Vect< real_t > &b, std::valarray< real_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< real_t > *A) |
Assemble element matrix 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 | 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 | 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 | 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. | |
real_t | setMaterialProperty (const string &exp, const string &prop) |
Define a material property by an algebraic expression. More... | |
![]() | |
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 & | 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. More... | |
void | setMatrixType (int t) |
Choose type of matrix. More... | |
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. More... | |
int | solveLinearSystem (Vect< real_t > &b, Vect< real_t > &x) |
Solve the linear system with given right-hand side. More... | |
void | LinearSystemInfo () |
Print info on linear system solver. | |
Detailed Description
class OFELI::Equa_LinearPDE< NEN_, NSN_ >
Abstract class for Finite Element classes for lienar PDEs'.
- Template Parameters
-
<NEN> Number of element nodes <NSN_> Number of side nodes
Constructor & Destructor Documentation
◆ Equa_LinearPDE()
Equa_LinearPDE | ( | ) |
Default constructor.
Constructs an empty equation.
Member Function Documentation
◆ BodyRHS()
Add body right-hand side term to right-hand side.
- Parameters
-
[in] f Vector containing source at nodes.
Reimplemented in LinearPDE1D, and LinearPDE2D.
◆ BoundaryRHS()
Add boundary right-hand side term to right-hand side.
- Parameters
-
[in] f Vector containing source at nodes.
Reimplemented in LinearPDE2D.
◆ build() [1/2]
void build | ( | EigenProblemSolver & | e | ) |
Build the linear system for an eigenvalue problem.
- Parameters
-
[in] e Reference to used EigenProblemSolver instance
◆ build() [2/2]
void build | ( | TimeStepping & | s | ) |
Build the linear system of equations.
Before using this function, one must have properly selected appropriate options for:
- The choice of a steady state or transient analysis. By default, the analysis is stationary
- In the case of transient analysis, the choice of a time integration scheme and a lumped or consistent capacity matrix. If transient analysis is chosen, the lumped capacity matrix option is chosen by default, and the implicit Euler scheme is used by default for time integration.
- Parameters
-
[in] s Reference to used TimeStepping instance
◆ Mat_00()
|
virtual |
Add 0th order term, in time and space, to left-hand side.
- Parameters
-
[in] coef coefficient to multiply by the matrix before adding [Default: 1
]
Reimplemented in LinearPDE1D, and LinearPDE2D.
◆ Mat_01()
|
virtual |
Add 0th order term in time, 1st in space to left-hand side.
- Parameters
-
[in] coef coefficient to multiply by the matrix before adding [Default: 1
]
Reimplemented in LinearPDE1D, and LinearPDE2D.
◆ Mat_02()
|
virtual |
Add 0th order term in time, 2nd in space to left-hand side.
- Parameters
-
[in] coef coefficient to multiply by the matrix before adding [Default: 1
]
Reimplemented in LinearPDE1D, and LinearPDE2D.
◆ Mat_10()
|
virtual |
Add 1st order term in time, 0th in space to left-hand side.
- Parameters
-
[in] coef coefficient to multiply by the matrix before adding [Default: 1
]
Reimplemented in LinearPDE1D, and LinearPDE2D.
◆ Mat_20()
|
virtual |
Add 2nd order term in time, 0th in space to left-hand side.
- Parameters
-
[in] coef coefficient to multiply by the matrix before adding [Default: 1
]
Reimplemented in LinearPDE1D, and LinearPDE2D.
◆ set_00() [1/3]
void set_00 | ( | const string & | f | ) |
Set coefficient for term (0,0): 0th order in time and space.
- Parameters
-
[in] f Function to multiply by 0-th order term (Function of x
andt
)
◆ set_00() [2/3]
void set_00 | ( | Fct & | f | ) |
Set coefficient for term (0,0): 0th order in time and space.
- Parameters
-
[in] f Function to multiply by 0-th order term (Function of x
andt
)
◆ set_00() [3/3]
void set_00 | ( | real_t | a = 1.0 | ) |
Set coefficient for term (0,0): 0th order in time and space.
- Parameters
-
[in] a Constant coefficient to multiply by 0-th order term [Default: 1.
]
◆ set_01() [1/4]
void set_01 | ( | Fct & | f | ) |
Set coefficient for term (0,1): 0th order in time, 1st order in time and space.
- Parameters
-
[in] f Function to multiply by (0,1)-order term (Function of x
andt
)
◆ set_01() [2/4]
Set coefficient for term (0,1): 0th order in time, 1st order in space.
- Parameters
-
[in] a Constant coefficient to multiply by (0,1)-order term [Default: 1.
]
◆ set_01() [3/4]
void set_01 | ( | real_t | a = 1.0 | ) |
Set coefficient for term (0,1): 0th order in time, 1st order in space.
- Parameters
-
[in] a Constant coefficient to multiply by (0,1)-order term [Default: 1.
]
◆ set_01() [4/4]
Set coefficient for term (0,1): 0th order in time, 1st order in space.
- Parameters
-
[in] a Constant coefficient to multiply by (0,1)-order term [Default: 1.
]
◆ set_02() [1/2]
void set_02 | ( | Fct & | f | ) |
Set coefficient for term (0,2): 0th order in time, 2nd order in time and space.
- Parameters
-
[in] f Function to multiply by (0,2)-order term (Function of x
andt
)
◆ set_02() [2/2]
void set_02 | ( | real_t | a = 1.0 | ) |
Set coefficient for term (0,2): 0th order in time, 2nd order in space.
- Parameters
-
[in] a Constant coefficient to multiply by (0,2)-order term [Default: 1.
]
◆ set_10() [1/2]
void set_10 | ( | Fct & | f | ) |
Set coefficient for term (1,0): 1st order in time, 0th order in space.
- Parameters
-
[in] f Function to multiply by (1,0)-order term (Function of x
andt
)
◆ set_10() [2/2]
void set_10 | ( | real_t | a = 1.0 | ) |
Set coefficient for term (1,0): 1st order in time, 0th order in space.
- Parameters
-
[in] a Constant coefficient to multiply by (1,0)-order term [Default: 1.
]
◆ set_20() [1/2]
void set_20 | ( | Fct & | f | ) |
Set coefficient for term (2,0): 2nd order in time, 0th order in space.
- Parameters
-
[in] f Function to multiply by (2,0)-order term (Function of x
andt
)
◆ set_20() [2/2]
void set_20 | ( | real_t | a = 1.0 | ) |
Set coefficient for term (2,0): 2nd order in time, 0th order in space.
- Parameters
-
[in] a Constant coefficient to multiply by (2,0)-order term [Default: 1.
]
◆ setNoLumping()
void setNoLumping | ( | ) |
Set no lumping.
- Remarks
- Default is lumping
◆ setStab()
void setStab | ( | ) |
Set stabilization for convection term.
- Remarks
- Default is no stabilization