LifeV
|
OneDFSIFunctionSolverDefinedWindkessel3 - Class which implements windkessel RCR boundary conditions for the 1D segment. More...
#include <OneDFSIFunctionSolverDefined.hpp>
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... | |
OneDFSIFunctionSolverDefinedWindkessel3 - Class which implements windkessel RCR boundary conditions for the 1D segment.
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)
Definition at line 578 of file OneDFSIFunctionSolverDefined.hpp.
Definition at line 585 of file OneDFSIFunctionSolverDefined.hpp.
typedef super::fluxPtr_Type fluxPtr_Type |
Definition at line 587 of file OneDFSIFunctionSolverDefined.hpp.
typedef super::sourcePtr_Type sourcePtr_Type |
Definition at line 588 of file OneDFSIFunctionSolverDefined.hpp.
Definition at line 589 of file OneDFSIFunctionSolverDefined.hpp.
|
explicit |
Constructor.
bcLine | the line of the boundary condition (first or second). |
bcType | the type of the boundary condition ( , , , , , ). |
resistance1 | the first terminal resistance. |
resistance2 | the second terminal resistance. |
compliance | the compliance. |
absorbing | is an absorbing boundary condition |
venousPressure | the venous pressure |
Definition at line 370 of file OneDFSIFunctionSolverDefined.cpp.
|
explicit |
Copy constructor.
bcFunctionWindkessel3 | OneDFSIFunctionSolverDefinedWindkessel3 |
Definition at line 389 of file OneDFSIFunctionSolverDefined.cpp.
|
inlinevirtual |
Destructor.
Definition at line 620 of file OneDFSIFunctionSolverDefined.hpp.
Operator()
Evaluate the function.
time | the current time. |
timeStep | the time step. |
Reimplemented from OneDFSIFunctionSolverDefinedCompatibility.
Definition at line 406 of file OneDFSIFunctionSolverDefined.cpp.
|
protected |
Definition at line 642 of file OneDFSIFunctionSolverDefined.hpp.
|
protected |
Definition at line 643 of file OneDFSIFunctionSolverDefined.hpp.
|
protected |
Definition at line 644 of file OneDFSIFunctionSolverDefined.hpp.
|
protected |
Definition at line 645 of file OneDFSIFunctionSolverDefined.hpp.
|
protected |
Definition at line 646 of file OneDFSIFunctionSolverDefined.hpp.
|
protected |
Definition at line 649 of file OneDFSIFunctionSolverDefined.hpp.
|
protected |
Definition at line 652 of file OneDFSIFunctionSolverDefined.hpp.
|
protected |
Definition at line 655 of file OneDFSIFunctionSolverDefined.hpp.
|
protected |
Definition at line 658 of file OneDFSIFunctionSolverDefined.hpp.