Solver of the Steklov Poincare problem in 2-D geometries using piecewie constant boundary elemen. More...
Public Member Functions | |
SteklovPoincare2DBE (bool ext=false) | |
Default Constructor. More... | |
SteklovPoincare2DBE (const Mesh &mesh, bool ext=false) | |
Constructor using mesh data. More... | |
SteklovPoincare2DBE (const Mesh &mesh, const Vect< real_t > &g, Vect< real_t > &b, bool ext=false) | |
Constructor that solves the Steklov Poincare problem. More... | |
~SteklovPoincare2DBE () | |
Destructor. | |
void | setMesh (const Mesh &mesh, bool ext=false) |
set Mesh instance More... | |
void | Solve () |
Build equation left and right-hand sides for P0 (piecewise constant) approximation. More... | |
int | Solve (Vect< real_t > &b, const Vect< real_t > &g) |
Build equation left and right-hand sides for P0 (piecewise constant) approximation. 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.
Constructor & Destructor Documentation
SteklovPoincare2DBE | ( | bool | ext = false | ) |
Default Constructor.
- Parameters
-
[in] ext Boolean variable to say if the domain is external (true) or internal (false: Default value).
SteklovPoincare2DBE | ( | const Mesh & | mesh, |
bool | ext = false |
||
) |
Constructor using mesh data.
This constructor calls member function setMesh.
- Parameters
-
[in] mesh Reference to mesh instance. [in] ext Boolean variable to say if the domain is external (true) or internal (false: Default value).
SteklovPoincare2DBE | ( | const Mesh & | mesh, |
const Vect< real_t > & | g, | ||
Vect< real_t > & | b, | ||
bool | ext = false |
||
) |
Constructor that solves the Steklov Poincare problem.
This constructor calls member function setMesh and Solve.
- Parameters
-
[in] mesh Reference to mesh instance. [in] g Vector (instance of class Vect) that contains imposed solution on the boundary [in] b Vector (instance of class Vect) that contains the left hand side in input and the solution in output [in] ext Boolean variable to say if the domain is external (true) or internal (false: Default value).
Member Function Documentation
void setMesh | ( | const Mesh & | mesh, |
bool | ext = false |
||
) |
void Solve | ( | ) |
Build equation left and right-hand sides for P0
(piecewise constant) approximation.
This member function is to be used if the constructor using mesh
, b
and g
has been used.
Build equation left and right-hand sides for P0
(piecewise constant) approximation.
This member function is to be used if the constructor using mesh
has been used. It concerns cases where the imposed boundary condition is given by sides
- Parameters
-
[in] g Vector that contains imposed solution on the boundary [in] b Vector that contains the left hand side in input and the solution in output