OFELI's Logo

An Object Oriented Finite Element Library

SteklovPoincare2DBE Class Reference

Solver of the Steklov Poincare problem in 2-D geometries using piecewie constant boundary elemen. More...

#include <SteklovPoincare2DBE.h>

+ Inheritance diagram for SteklovPoincare2DBE:

Public Member Functions

 SteklovPoincare2DBE ()
 Default Constructor.
 
 SteklovPoincare2DBE (Mesh &ms)
 Constructor using mesh data. More...
 
 SteklovPoincare2DBE (Mesh &ms, Vect< real_t > &u)
 Constructor that solves the Steklov Poincare problem. More...
 
 ~SteklovPoincare2DBE ()
 Destructor.
 
void setMesh (Mesh &ms)
 set Mesh instance More...
 
void setExterior ()
 Choose domain of the Laplace equation as exterior one. More...
 
int run ()
 Solve Setklov-Poincare problem. 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

Solver of the Steklov Poincare problem in 2-D geometries using piecewie constant boundary elemen.

SteklovPoincare2DBE solves the Steklov Poincare problem in 2-D: Given the trace of a harmonic function on the boundary of a given (inner or outer) domain, this class computes the normal derivative of the function. The normal is considered as oriented out of the bounded (inner) domain in both inner and outer configurations. The numerical approximation uses piecewise constant (P0) approximation on edges of the boundary. Solution is obtained from the GMRES iterative solver without preconditioning. The given data is the vector (instance of class Vect) of piecewise constant values of the harmonic function on the boundary and the returned solution is piecewise constant value of the normal derivative considered either as a Vect instance.

Note
Although the mesh of the inner domain is not necessary to solve the problem, this one must be provided in order to calculate the outward normal.
Author
Rachid Touzani

Constructor & Destructor Documentation

◆ SteklovPoincare2DBE() [1/2]

Constructor using mesh data.

Parameters
[in]msReference to Mesh instance.

◆ SteklovPoincare2DBE() [2/2]

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

Constructor that solves the Steklov Poincare problem.

This constructor calls member function setMesh and Solve.

Parameters
[in]msReference to mesh instance.
[in]uReference to solution vector. It contains the solution (normal derivative on boundary, once problem is solved

Member Function Documentation

◆ run()

int run ( )

Solve Setklov-Poincare problem.

This member function builds and solves the Steklov-Poincare equation.

◆ setExterior()

void setExterior ( )

Choose domain of the Laplace equation as exterior one.

By default the domain where the Laplace equation is considered is the interior domain, i.e. bounded. This function chooses the exterior of a bounded domain

◆ setMesh()

void setMesh ( Mesh ms)

set Mesh instance

Parameters
[in]msMesh instance





Copyright © 1998-2022 Rachid Touzani