LifeV
OneDFSIBC Class Reference

OneDFSIBC - Class featuring methods to handle boundary conditions. More...

#include <OneDFSIBC.hpp>

+ Collaboration diagram for OneDFSIBC:

Private Attributes

std::map< bcLine_Type, bcType_TypeM_bcType
 
bcSide_Type M_bcSide
 
std::map< bcLine_Type, bcFunction_TypeM_bcFunction
 

Type definitions

typedef OneDFSIFunctionSolverDefined bcFunctionSolverDefined_Type
 
typedef std::shared_ptr< bcFunctionSolverDefined_TypebcFunctionSolverDefinedPtr_Type
 
typedef bcFunctionSolverDefined_Type::bcFunction_Type bcFunction_Type
 
typedef bcFunctionSolverDefined_Type::bcFunctionPtr_Type bcFunctionPtr_Type
 
typedef bcFunctionSolverDefined_Type::fluxPtr_Type fluxPtr_Type
 
typedef bcFunctionSolverDefined_Type::sourcePtr_Type sourcePtr_Type
 
typedef bcFunctionSolverDefined_Type::solution_Type solution_Type
 
typedef bcFunctionSolverDefined_Type::solutionPtr_Type solutionPtr_Type
 
typedef bcFunctionSolverDefined_Type::container2D_Type container2D_Type
 
typedef bcFunctionSolverDefined_Type::vectorPtrContainer_Type vectorPtrContainer_Type
 
typedef bcFunctionSolverDefined_Type::vector_Type vector_Type
 
typedef bcFunctionSolverDefined_Type::matrix_Type matrix_Type
 
typedef bcFunctionSolverDefined_Type::bcLine_Type bcLine_Type
 
typedef bcFunctionSolverDefined_Type::bcSide_Type bcSide_Type
 
typedef bcFunctionSolverDefined_Type::bcType_Type bcType_Type
 

Constructors & Destructor

 OneDFSIBC (const bcSide_Type &bcSide)
 Constructor. More...
 
 OneDFSIBC (const OneDFSIBC &bc)
 Copy constructor. More...
 
virtual ~OneDFSIBC ()
 Destructor. More...
 

Methods

void applyBC (const Real &time, const Real &timeStep, const solution_Type &solution, const fluxPtr_Type &fluxPtr, vectorPtrContainer_Type &rhs)
 Apply boundary conditions to the rhs of the Taylor-Galerkin problem. More...
 
void applyViscoelasticBC (const fluxPtr_Type &fluxPtr, matrix_Type &matrix, vector_Type &rhs)
 Apply boundary conditions to the rhs of the viscoelastic problem. More...
 

Set Methods

void setType (const bcLine_Type &bcLine, const bcType_Type &bcType)
 Set the type of boundary condition. More...
 
void setBCFunction (const bcLine_Type &bcLine, const bcFunction_Type &rhs)
 Set the boundary condition function. More...
 

Get Methods

const bcType_Typetype (const bcLine_Type &bcLine) const
 Get the type of boundary condition. More...
 
const bcFunction_TypebcFunction (const bcLine_Type &bcLine) const
 Get the boundary condition function. More...
 

Unimplemented Methods

OneDFSIBCoperator= (const OneDFSIBC &bc)
 

Private Methods

void computeMatrixAndRHS (const Real &time, const Real &timeStep, const fluxPtr_Type &fluxPtr, const bcLine_Type &bcLine, const container2D_Type &leftEigenvector1, const container2D_Type &leftEigenvector2, const UInt &dof, std::map< bcLine_Type, container2D_Type > &bcMatrix, Real &bcRHS)
 Compute the matrix and the RHS for the BC 2x2 linear system. More...
 
container2D_Type solveLinearSystem (const container2D_Type &line1, const container2D_Type &line2, const container2D_Type &rhs) const
 Solve a 2x2 linear system by the Cramer method (for the boundary conditions) More...
 

Detailed Description

OneDFSIBC - Class featuring methods to handle boundary conditions.

Author
Lucia Mirabella, Tiziano Passerini, Cristiano Malossi
See also
Equations and networks of 1-D models [7]
Geometrical multiscale coupling of 1-D models [12] [13]

We need to impose 2 boundary condition on each side of the 1D segment. These class stores the boundary conditions on one side.

Definition at line 64 of file OneDFSIBC.hpp.

Member Typedef Documentation

◆ bcFunctionSolverDefined_Type

◆ bcFunctionSolverDefinedPtr_Type

Definition at line 72 of file OneDFSIBC.hpp.

◆ bcFunction_Type

◆ bcFunctionPtr_Type

◆ fluxPtr_Type

◆ sourcePtr_Type

◆ solution_Type

◆ solutionPtr_Type

◆ container2D_Type

◆ vectorPtrContainer_Type

◆ vector_Type

◆ matrix_Type

◆ bcLine_Type

◆ bcSide_Type

◆ bcType_Type

Constructor & Destructor Documentation

◆ OneDFSIBC() [1/2]

OneDFSIBC ( const bcSide_Type bcSide)
explicit

Constructor.

Definition at line 52 of file OneDFSIBC.cpp.

+ Here is the caller graph for this function:

◆ OneDFSIBC() [2/2]

OneDFSIBC ( const OneDFSIBC bc)
explicit

Copy constructor.

Parameters
bcOneDFSIBC

Definition at line 59 of file OneDFSIBC.cpp.

+ Here is the caller graph for this function:

◆ ~OneDFSIBC()

virtual ~OneDFSIBC ( )
inlinevirtual

Destructor.

Definition at line 108 of file OneDFSIBC.hpp.

Member Function Documentation

◆ applyBC()

void applyBC ( const Real time,
const Real timeStep,
const solution_Type solution,
const fluxPtr_Type fluxPtr,
vectorPtrContainer_Type rhs 
)

Apply boundary conditions to the rhs of the Taylor-Galerkin problem.

Parameters
timethe current time.
timeStepthe time step.
solutionthe solution container.
fluxPtrpointer to the flux class.
rhsthe rhs of the Taylor-Galerking problem.

Definition at line 69 of file OneDFSIBC.cpp.

◆ applyViscoelasticBC()

void applyViscoelasticBC ( const fluxPtr_Type fluxPtr,
matrix_Type matrix,
vector_Type rhs 
)

Apply boundary conditions to the rhs of the viscoelastic problem.

Parameters
fluxPtrpointer to the flux class.
matrixthe matrix of the viscoelastic problem.
rhsthe rhs of the viscoelastic problem.

Definition at line 113 of file OneDFSIBC.cpp.

◆ setType()

void setType ( const bcLine_Type bcLine,
const bcType_Type bcType 
)
inline

Set the type of boundary condition.

Parameters
bcLinethe line of the boundary condition (first or second).
bcTypethe type of the boundary condition ( $Q$, $A$, $P$, $S$, $W_1$, $W_2$).

Definition at line 146 of file OneDFSIBC.hpp.

◆ setBCFunction()

void setBCFunction ( const bcLine_Type bcLine,
const bcFunction_Type rhs 
)
inline

Set the boundary condition function.

Parameters
bcLinethe line of the boundary condition (first or second).
bcFunctionthe boundary condition function.

Definition at line 156 of file OneDFSIBC.hpp.

◆ type()

const bcType_Type& type ( const bcLine_Type bcLine) const
inline

Get the type of boundary condition.

Parameters
bcLinethe line of the boundary condition (first or second).
Returns
the type of the boundary condition ( $Q$, $A$, $P$, $S$, $W_1$, $W_2$).

Definition at line 172 of file OneDFSIBC.hpp.

◆ bcFunction()

const bcFunction_Type& bcFunction ( const bcLine_Type bcLine) const
inline

Get the boundary condition function.

Parameters
bcLinethe line of the boundary condition (first or second).
Returns
the boundary condition function.

Definition at line 182 of file OneDFSIBC.hpp.

◆ operator=()

OneDFSIBC& operator= ( const OneDFSIBC bc)
private

◆ computeMatrixAndRHS()

void computeMatrixAndRHS ( const Real time,
const Real timeStep,
const fluxPtr_Type fluxPtr,
const bcLine_Type bcLine,
const container2D_Type leftEigenvector1,
const container2D_Type leftEigenvector2,
const UInt dof,
std::map< bcLine_Type, container2D_Type > &  bcMatrix,
Real bcRHS 
)
private

Compute the matrix and the RHS for the BC 2x2 linear system.

Parameters
timethe current time.
timeStepthe time step.
fluxPtrpointer to the flux class.
bcLinethe line of the boundary condition (first or second).
leftEigenvector1first line of the left eigenvector matrix.
leftEigenvector2second line of the left eigenvector matrix.
dofdegree of freedom of the boundary condition.
bcMatrixthe 2x2 matrix problem for the boundary condition computation.
bcRHSthe rhs of the 2x2 problem for the boundary condition computation.

Definition at line 149 of file OneDFSIBC.cpp.

◆ solveLinearSystem()

OneDFSIBC::container2D_Type solveLinearSystem ( const container2D_Type line1,
const container2D_Type line2,
const container2D_Type rhs 
) const
private

Solve a 2x2 linear system by the Cramer method (for the boundary conditions)

Matrix A is given by two pairs corresponding to the 2 lines.

Parameters
line1first line of the 2x2 matrix.
line2second line of the 2x2 matrix.
rhsrhs of the 2x2 system.
Returns
solution

Definition at line 204 of file OneDFSIBC.cpp.

Field Documentation

◆ M_bcType

std::map<bcLine_Type, bcType_Type> M_bcType
private

Definition at line 231 of file OneDFSIBC.hpp.

◆ M_bcSide

bcSide_Type M_bcSide
private

Definition at line 233 of file OneDFSIBC.hpp.

◆ M_bcFunction

std::map<bcLine_Type, bcFunction_Type> M_bcFunction
private

Definition at line 235 of file OneDFSIBC.hpp.


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