OFELI's Logo

An Object Oriented Finite Element Library

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

#include <Laplace3DT4.h>

+ Inheritance diagram for Laplace2DT3:

Public Member Functions

 Laplace2DT3 ()
 Default constructor.
 
 Laplace2DT3 (Mesh &ms)
 Constructor with mesh. More...
 
 Laplace2DT3 (Mesh &ms, Vect< real_t > &u)
 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 ()
 Destructor.
 
void LHS ()
 Add finite element matrix to left-hand side.
 
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 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...
 
- Public Member Functions inherited from Equa_Laplace< 3, 3, 2, 2 >
 Equa_Laplace ()
 Default constructor. More...
 
virtual ~Equa_Laplace ()
 Destructor.
 
virtual void LHS ()
 Add finite element matrix to left-hand side.
 
virtual void BodyRHS (const Vect< real_t > &f)
 Add body source term to right-hand side. More...
 
virtual void BoundaryRHS (const Vect< real_t > &h)
 Add boundary source term to right-hand side. More...
 
void build ()
 Build global matrix and right-hand side. More...
 
void build (EigenProblemSolver &e)
 Build the linear system for an eigenvalue problem. More...
 
virtual void buildEigen (int opt=0)
 Build matrices for an eigenvalue problem.
 
- Public Member Functions inherited from Equation< NEN_, NEE_, NSN_, NSE_ >
 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 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 ElementNodeVector (const Vect< real_t > &b, LocalVect< real_t, NEN_ > &be, int dof)
 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 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 ElementAssembly (Vect< real_t > &v)
 Assemble element vector 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...
 
- 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.
 
MeshgetMesh () const
 Return reference to Mesh instance. More...
 
LinearSolver< real_t > & 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 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< 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...
 

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).

Author
Rachid Touzani

Constructor & Destructor Documentation

◆ Laplace2DT3() [1/3]

Laplace2DT3 ( Mesh ms)

Constructor with mesh.

Parameters
[in]msMesh instance

◆ Laplace2DT3() [2/3]

Laplace2DT3 ( Mesh ms,
Vect< real_t > &  u 
)

Constructor using mesh and solution vector.

Parameters
[in]msMesh instance
[in]uProblem right-hand side

◆ Laplace2DT3() [3/3]

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]msMesh instance
[in]bVector containing the source term (right-hand side of the equation) at mesh nodes
[in]DbcVector containing prescribed values of the solution (Dirichlet boundary condition) at nodes with positive code. Its size is the total number of nodes
[in]NbcVector containing prescribed fluxes (Neumann boundary conditions) at sides, its size is the total number of sides
[in]uVector to contain the finite element solution at nodes once the member function run() is called.

Member Function Documentation

◆ BodyRHS()

void BodyRHS ( const Vect< real_t > &  f)
virtual

Add body source term to right-hand side.

Parameters
[in]fVector containing the source given function at mesh nodes

Reimplemented from Equa_Laplace< 3, 3, 2, 2 >.

◆ BoundaryRHS()

void BoundaryRHS ( const Vect< real_t > &  h)
virtual

Add boundary source term to right-hand side.

Parameters
[in]hVector containing the source given function at mesh nodes

Reimplemented from Equa_Laplace< 3, 3, 2, 2 >.

◆ buildEigen()

void buildEigen ( int  opt = 0)
virtual

Build global stiffness and mass matrices for the eigen system.

Parameters
[in]optFlag to choose a lumped mass matrix (0) or consistent (1) [Default: 0]

Reimplemented from Equa_Laplace< 3, 3, 2, 2 >.

◆ Post()

void Post ( const Vect< real_t > &  u,
Vect< Point< real_t > > &  p 
)

Perform post calculations.

Parameters
[in]uSolution at nodes
[out]pVector containing gradient at elements





Copyright © 1998-2022 Rachid Touzani