LifeV
MonolithicRobinInterface Class Reference

MonolithicRobinInterface - Class for the Robin coupling of etherogeneaous problems. More...

#include <MonolithicRobinInterface.hpp>

+ Inheritance diagram for MonolithicRobinInterface:
+ Collaboration diagram for MonolithicRobinInterface:

Constructor & Destructor

 MonolithicRobinInterface ()
 
 ~MonolithicRobinInterface ()
 

Public Methods

void setRobinData (const GetPot &data, const std::string &section)
 method to set the data relative to the Robin coupling from GetPot More...
 
void setRobinMatrix (MonolithicBlock::matrixPtr_Type &robinMatrix)
 method to initialize the pointer to the robin coupling part of the matrix More...
 
void setRobinRhs (MonolithicBlock::vectorPtr_Type &vec)
 method to initialize the pointer to the robin RHS More...
 
void applyRobinCoupling (std::vector< MonolithicBlock::matrixPtr_Type > blockVector)
 method to apply the robin coupling to the blocks. More...
 

Protected Methods

void applyRobinCoupling (MonolithicBlock::matrixPtr_Type firstBlock)
 

Protected Members

Real M_alphaf
 
Real M_alphas
 
MonolithicBlock::matrixPtr_Type M_robinCoupling
 
MonolithicBlock::matrixPtr_Type M_robinPart
 
MonolithicBlock::vectorPtr_Type M_rhsVec
 

Detailed Description

MonolithicRobinInterface - Class for the Robin coupling of etherogeneaous problems.

Author
Paolo Crosetto

This class is a base interface for the monolithic Robin coupling of 2 problems. A coupled Dirichlet-Neumann problem can be transformed into a Robin one by inheriting from this class. The allocation of the memory for M_robinCoupling has to be done outside.

The Robin conditions are obtained algebraically through linear combination of the lines corresponding to the Dirichlet and Neumann coupling conditions already present in the matrix. This is achieved by multiplying the matrix times a restriction matrix (M_robinCoupling) which performs the restriction to the interface and the linear combination. Then the result is summed to the original matrix. The update of the rhs vector must be done outside this class.

Todo:
Remove this class and try to implement the same coupling otherwise.

Definition at line 64 of file MonolithicRobinInterface.hpp.

Constructor & Destructor Documentation

◆ MonolithicRobinInterface()

Definition at line 72 of file MonolithicRobinInterface.hpp.

◆ ~MonolithicRobinInterface()

Definition at line 80 of file MonolithicRobinInterface.hpp.

Member Function Documentation

◆ setRobinData()

void setRobinData ( const GetPot data,
const std::string &  section 
)

method to set the data relative to the Robin coupling from GetPot

Parameters
datadata file
sectionthe section (usually /robin) in the GetPot file where the parameters are specified

Definition at line 37 of file MonolithicRobinInterface.cpp.

◆ setRobinMatrix()

void setRobinMatrix ( MonolithicBlock::matrixPtr_Type robinMatrix)
inline

method to initialize the pointer to the robin coupling part of the matrix

Parameters
datadata file
sectionthe section (usually /robin) in the GetPot file where the parameters are specified

Definition at line 100 of file MonolithicRobinInterface.hpp.

◆ setRobinRhs()

void setRobinRhs ( MonolithicBlock::vectorPtr_Type vec)
inline

method to initialize the pointer to the robin RHS

Parameters
vecthe rhs vector

Definition at line 109 of file MonolithicRobinInterface.hpp.

◆ applyRobinCoupling() [1/2]

void applyRobinCoupling ( std::vector< MonolithicBlock::matrixPtr_Type blockVector)

method to apply the robin coupling to the blocks.

Note that the coupling matrix M_robinCoupling must be set before calling this.

Parameters
blockVectorthe vector of blocks to couple.

Definition at line 43 of file MonolithicRobinInterface.cpp.

◆ applyRobinCoupling() [2/2]

void applyRobinCoupling ( MonolithicBlock::matrixPtr_Type  firstBlock)
protected

Definition at line 58 of file MonolithicRobinInterface.cpp.

Field Documentation

◆ M_alphaf

Real M_alphaf
protected

Definition at line 137 of file MonolithicRobinInterface.hpp.

◆ M_alphas

Real M_alphas
protected

Definition at line 138 of file MonolithicRobinInterface.hpp.

◆ M_robinCoupling

MonolithicBlock::matrixPtr_Type M_robinCoupling
protected

Definition at line 139 of file MonolithicRobinInterface.hpp.

◆ M_robinPart

MonolithicBlock::matrixPtr_Type M_robinPart
protected

Definition at line 140 of file MonolithicRobinInterface.hpp.

◆ M_rhsVec

MonolithicBlock::vectorPtr_Type M_rhsVec
protected

Definition at line 141 of file MonolithicRobinInterface.hpp.


The documentation for this class was generated from the following files: