OFELI's Logo

An Object Oriented Finite Element Library

To build element equation for a 1-D elliptic equation using the 2-Node line element (P1). More...

#include <Laplace1DL2.h>

+ Inheritance diagram for Laplace1DL2:

Public Member Functions

 Laplace1DL2 ()
 Default constructor.
 
 Laplace1DL2 (Mesh &ms, Vect< real_t > &u)
 
 Laplace1DL2 (Mesh &ms)
 
 ~Laplace1DL2 ()
 Destructor.
 
void LHS ()
 Add finite element matrix to left hand side.
 
void buildEigen (int opt=0)
 Build global stiffness and mass matrices for the eigen system. More...
 
void BodyRHS (const Vect< real_t > &f)
 Add Right-Hand Side Contribution. More...
 
void BoundaryRHS (const Vect< real_t > &f)
 Add Neumann contribution to Right-Hand Side. More...
 
void setBoundaryCondition (real_t f, int lr)
 Set Dirichlet boundary data. More...
 
void setTraction (real_t f, int lr)
 Set Traction data. More...
 
- Public Member Functions inherited from Equa_Laplace< 2, 2, 1, 1 >
 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 a 1-D elliptic equation using the 2-Node line element (P1).

Author
Rachid Touzani

Constructor & Destructor Documentation

◆ Laplace1DL2() [1/2]

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

Constructor using mesh instance and solution vector

Parameters
[in]msMesh instance
[in,out]uVect instance that contains, after execution of run() the solution

◆ Laplace1DL2() [2/2]

Laplace1DL2 ( Mesh ms)

Constructor using mesh instance

Parameters
[in]msMesh instance

Member Function Documentation

◆ BodyRHS()

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

Add Right-Hand Side Contribution.

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

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

◆ BoundaryRHS()

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

Add Neumann contribution to Right-Hand Side.

Parameters
[in]fVector with size the total number of nodes. The first entry stands for the force at the first node (Neumann condition) and the last entry is the force at the last node (Neumann condition)

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

◆ 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< 2, 2, 1, 1 >.

◆ setBoundaryCondition()

void setBoundaryCondition ( real_t  f,
int  lr 
)

Set Dirichlet boundary data.

Parameters
[in]fValue to assign
[in]lrOption to choose location of the value (-1: Left end, 1: Right end)

◆ setTraction()

void setTraction ( real_t  f,
int  lr 
)

Set Traction data.

Parameters
[in]fValue of traction (Neumann boundary condition)
[in]lrOption to choose location of the traction (-1: Left end, 1: Right end)





Copyright © 1998-2022 Rachid Touzani