LifeV
OneDFSIFunctionSolverDefinedWindkessel3 Class Reference

OneDFSIFunctionSolverDefinedWindkessel3 - Class which implements windkessel RCR boundary conditions for the 1D segment. More...

#include <OneDFSIFunctionSolverDefined.hpp>

+ Inheritance diagram for OneDFSIFunctionSolverDefinedWindkessel3:
+ Collaboration diagram for OneDFSIFunctionSolverDefinedWindkessel3:

Protected Attributes

Real M_resistance1
 
Real M_resistance2
 
Real M_compliance
 
bool M_absorbing
 
Real M_venousPressure
 
Real M_P0
 
Real M_Q_tn
 
Real M_dQdt_tn
 
Real M_integral_tn
 
- Protected Attributes inherited from OneDFSIFunctionSolverDefinedCompatibility
UInt M_bcElement
 ID of the boundary edge. More...
 
UInt M_bcInternalNode
 Dof of the internal node adjacent to the boundary. More...
 
container2D_Type M_eigenvalues
 Eigen values of the jacobian diffFlux (= dF/dU = H) More...
 
container2D_Type M_deltaEigenvalues
 
container2D_Type M_leftEigenvector1
 Left eigen vectors for the two eigen values. More...
 
container2D_Type M_leftEigenvector2
 
container2D_Type M_deltaLeftEigenvector1
 
container2D_Type M_deltaLeftEigenvector2
 
- Protected Attributes inherited from OneDFSIFunctionSolverDefinedRiemann
container2D_Type M_bcU
 Value of U at the boundary. More...
 
container2D_Type M_bcW
 Value of W at the boundary. More...
 
- Protected Attributes inherited from OneDFSIFunctionSolverDefined
fluxPtr_Type M_fluxPtr
 
sourcePtr_Type M_sourcePtr
 
solutionPtr_Type M_solutionPtr
 
UInt M_bcNode
 
bcSide_Type M_bcSide
 
bcType_Type M_bcType
 

Type definitions

typedef OneDFSIFunctionSolverDefinedCompatibility super
 
typedef super::fluxPtr_Type fluxPtr_Type
 
typedef super::sourcePtr_Type sourcePtr_Type
 
typedef super::solutionPtr_Type solutionPtr_Type
 

Constructors & Destructor

 OneDFSIFunctionSolverDefinedWindkessel3 (const bcSide_Type &bcSide, const bcType_Type &bcType, const Real &resistance1, const Real &resistance2, const Real &compliance, const bool &absorbing=false, const Real &venousPressure=6666.)
 Constructor. More...
 
 OneDFSIFunctionSolverDefinedWindkessel3 (const OneDFSIFunctionSolverDefinedWindkessel3 &bcFunctionWindkessel3)
 Copy constructor. More...
 
virtual ~OneDFSIFunctionSolverDefinedWindkessel3 ()
 Destructor. More...
 

Methods

Real operator() (const Real &time, const Real &timeStep)
 Operator() More...
 

Additional Inherited Members

- Public Types inherited from OneDFSIFunctionSolverDefinedCompatibility
typedef OneDFSIFunctionSolverDefinedRiemann super
 
typedef super::fluxPtr_Type fluxPtr_Type
 
typedef super::sourcePtr_Type sourcePtr_Type
 
typedef super::solutionPtr_Type solutionPtr_Type
 
typedef super::mesh_Type mesh_Type
 
typedef super::container2D_Type container2D_Type
 
- Public Types inherited from OneDFSIFunctionSolverDefinedRiemann
typedef OneDFSIFunctionSolverDefined super
 
typedef super::container2D_Type container2D_Type
 
- Public Types inherited from OneDFSIFunctionSolverDefined
typedef OneDFSIFunction bcFunction_Type
 
typedef std::shared_ptr< bcFunction_TypebcFunctionPtr_Type
 
typedef OneDFSIFlux flux_Type
 
typedef std::shared_ptr< flux_TypefluxPtr_Type
 
typedef OneDFSISource source_Type
 
typedef std::shared_ptr< source_TypesourcePtr_Type
 
typedef OneDFSIData data_Type
 
typedef data_Type::mesh_Type mesh_Type
 
typedef data_Type::container2D_Type container2D_Type
 
typedef SolverAmesos linearSolver_Type
 
typedef linearSolver_Type::vector_type vector_Type
 
typedef std::shared_ptr< vector_TypevectorPtr_Type
 
typedef std::array< vectorPtr_Type, 2 > vectorPtrContainer_Type
 
typedef linearSolver_Type::matrix_type matrix_Type
 
typedef std::map< std::string, vectorPtr_Typesolution_Type
 
typedef std::shared_ptr< solution_TypesolutionPtr_Type
 
typedef OneDFSI::bcLine_Type bcLine_Type
 
typedef OneDFSI::bcSide_Type bcSide_Type
 
typedef OneDFSI::bcType_Type bcType_Type
 
- Public Member Functions inherited from OneDFSIFunctionSolverDefinedCompatibility
 OneDFSIFunctionSolverDefinedCompatibility (const bcSide_Type &bcSide, const bcType_Type &bcType)
 Constructor. More...
 
 OneDFSIFunctionSolverDefinedCompatibility (const OneDFSIFunctionSolverDefinedCompatibility &bcFunctionCompatibility)
 Copy constructor. More...
 
virtual ~OneDFSIFunctionSolverDefinedCompatibility ()
 Destructor. More...
 
- Public Member Functions inherited from OneDFSIFunctionSolverDefinedRiemann
 OneDFSIFunctionSolverDefinedRiemann (const bcSide_Type &bcSide, const bcType_Type &bcType)
 Constructor. More...
 
 OneDFSIFunctionSolverDefinedRiemann (const OneDFSIFunctionSolverDefinedRiemann &bcFunctionRiemann)
 Copy constructor. More...
 
virtual ~OneDFSIFunctionSolverDefinedRiemann ()
 Destructor. More...
 
- Public Member Functions inherited from OneDFSIFunctionSolverDefined
 OneDFSIFunctionSolverDefined (const bcSide_Type &bcSide, const bcType_Type &bcType)
 Constructor. More...
 
 OneDFSIFunctionSolverDefined (const OneDFSIFunctionSolverDefined &bcFunctionDefault)
 Copy constructor. More...
 
virtual ~OneDFSIFunctionSolverDefined ()
 Destructor. More...
 
void setFluxSource (const fluxPtr_Type &fluxPtr, const sourcePtr_Type &sourcePtr)
 Set the flux and the source classes for the problem. More...
 
void setSolution (const solutionPtr_Type &solutionPtr)
 Set the solution of the problem. More...
 
- Protected Member Functions inherited from OneDFSIFunctionSolverDefinedCompatibility
void setupNode ()
 Automatically identify the boundary node. More...
 
Real computeRHS (const Real &timeStep)
 Compute the rhs. More...
 
void computeEigenValuesVectors ()
 Compute the current eigenvalues and eigenvectors. More...
 
Real evaluateRHS (const Real &eigenvalue, const container2D_Type &eigenvector, const container2D_Type &deltaEigenvector, const Real &timeStep)
 Compute the rhs. More...
 
Real computeCFL (const Real &eigenvalue, const Real &timeStep) const
 Compute the current CFL. More...
 
Real scalarProduct (const container2D_Type &vector1, const container2D_Type &vector2)
 Scalar product between 2 2D vectors. More...
 
- Protected Member Functions inherited from OneDFSIFunctionSolverDefinedRiemann
void updateBCVariables ()
 Update the boundary condition variables. More...
 
- Protected Member Functions inherited from OneDFSIFunctionSolverDefined

Detailed Description

OneDFSIFunctionSolverDefinedWindkessel3 - Class which implements windkessel RCR boundary conditions for the 1D segment.

  • Q -> —R1----—R2— ^ | ^ P C Pv ^ | ^

The holding equation is:

P + C R2 dP/dt = (R1 + R2 ) * Q + R1 R2 C dQ/dt + Pv

where the "venous" pressure Pv is taken constant and equal to 5mmHg (6666 dyn/cm^2).

You can solve this ODE in analytical fashion and obtain:

P(t) = P(0) + [ ^t ( pv + (R1+R2) Q(s) + R1*R2*C dQ(s)/ds ) exp( s / (R2*C) ) ds ] * exp( - t / (R2*C) )

then you just need to exploit numerical integration rules. Here a simple trapezoidal rule is used, with a first order approximation of derivative

dQ(s)/ds = Q(t(n+1)) - Q(t(n)) * (1/dt)

Author
Lucia Mirabella, Tiziano Passerini

Definition at line 578 of file OneDFSIFunctionSolverDefined.hpp.

Member Typedef Documentation

◆ super

◆ fluxPtr_Type

◆ sourcePtr_Type

◆ solutionPtr_Type

Constructor & Destructor Documentation

◆ OneDFSIFunctionSolverDefinedWindkessel3() [1/2]

OneDFSIFunctionSolverDefinedWindkessel3 ( const bcSide_Type bcSide,
const bcType_Type bcType,
const Real resistance1,
const Real resistance2,
const Real compliance,
const bool &  absorbing = false,
const Real venousPressure = 6666. 
)
explicit

Constructor.

Parameters
bcLinethe line of the boundary condition (first or second).
bcTypethe type of the boundary condition ( $Q$, $A$, $P$, $S$, $W_1$, $W_2$).
resistance1the first terminal resistance.
resistance2the second terminal resistance.
compliancethe compliance.
absorbingis an absorbing boundary condition
venousPressurethe venous pressure

Definition at line 370 of file OneDFSIFunctionSolverDefined.cpp.

◆ OneDFSIFunctionSolverDefinedWindkessel3() [2/2]

Copy constructor.

Parameters
bcFunctionWindkessel3OneDFSIFunctionSolverDefinedWindkessel3

Definition at line 389 of file OneDFSIFunctionSolverDefined.cpp.

◆ ~OneDFSIFunctionSolverDefinedWindkessel3()

virtual ~OneDFSIFunctionSolverDefinedWindkessel3 ( )
inlinevirtual

Destructor.

Definition at line 620 of file OneDFSIFunctionSolverDefined.hpp.

Member Function Documentation

◆ operator()()

Real operator() ( const Real time,
const Real timeStep 
)
virtual

Operator()

Evaluate the function.

Parameters
timethe current time.
timeStepthe time step.
Returns
the value of the function.

Reimplemented from OneDFSIFunctionSolverDefinedCompatibility.

Definition at line 406 of file OneDFSIFunctionSolverDefined.cpp.

Field Documentation

◆ M_resistance1

Real M_resistance1
protected

Definition at line 642 of file OneDFSIFunctionSolverDefined.hpp.

◆ M_resistance2

Real M_resistance2
protected

Definition at line 643 of file OneDFSIFunctionSolverDefined.hpp.

◆ M_compliance

Real M_compliance
protected

Definition at line 644 of file OneDFSIFunctionSolverDefined.hpp.

◆ M_absorbing

bool M_absorbing
protected

Definition at line 645 of file OneDFSIFunctionSolverDefined.hpp.

◆ M_venousPressure

Real M_venousPressure
protected

Definition at line 646 of file OneDFSIFunctionSolverDefined.hpp.

◆ M_P0

Real M_P0
protected

Definition at line 649 of file OneDFSIFunctionSolverDefined.hpp.

◆ M_Q_tn

Real M_Q_tn
protected

Definition at line 652 of file OneDFSIFunctionSolverDefined.hpp.

◆ M_dQdt_tn

Real M_dQdt_tn
protected

Definition at line 655 of file OneDFSIFunctionSolverDefined.hpp.

◆ M_integral_tn

Real M_integral_tn
protected

Definition at line 658 of file OneDFSIFunctionSolverDefined.hpp.


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