LifeV
OneDFSIPhysics Class Referenceabstract

OneDFSIPhysics - Base class providing physical operations for the 1D model data. More...

#include <OneDFSIPhysics.hpp>

+ Inheritance diagram for OneDFSIPhysics:
+ Collaboration diagram for OneDFSIPhysics:

Protected Attributes

dataPtr_Type M_dataPtr
 

Private Attributes

vectorPtr_Type M_previousAreaPtr
 

Type definitions and Enumerators

typedef FactorySingleton< Factory< OneDFSIPhysics, OneDFSI::physicsType_Type > > factoryPhysics_Type
 
typedef OneDFSIData data_Type
 
typedef std::shared_ptr< data_TypedataPtr_Type
 
typedef VectorEpetra vector_Type
 
typedef std::shared_ptr< vector_TypevectorPtr_Type
 

Constructors & Destructor

 OneDFSIPhysics ()
 Empty constructor. More...
 
 OneDFSIPhysics (const dataPtr_Type dataPtr)
 Constructor. More...
 
virtual ~OneDFSIPhysics ()
 Destructor. More...
 

Conversion methods

virtual void fromWToU (Real &U1, Real &U2, const Real &W1, const Real &W2, const UInt &iNode) const =0
 Compute $\mathbf U$ from $\mathbf W$. More...
 
virtual void fromUToW (Real &W1, Real &W2, const Real &U1, const Real &U2, const UInt &iNode) const =0
 Compute $\mathbf W$ from $\mathbf U$. More...
 
virtual Real fromWToP (const Real &W1, const Real &W2, const UInt &iNode) const =0
 Compute $P$ from $\mathbf W$. More...
 
virtual Real fromPToW (const Real &P, const Real &W, const ID &iW, const UInt &iNode) const =0
 Compute $W_1$ or $W_2$ from $P$. More...
 
virtual Real fromQToW (const Real &Q, const Real &W_tn, const Real &W, const ID &iW, const UInt &iNode) const =0
 Compute $W_1$ or $W_2$ from $Q$. More...
 
Real fromPToA (const Real &P, const Real &timeStep, const UInt &iNode, const bool &elasticExternalNodes=true) const
 Compute the area $A$ given the elastic pressure $P_\mathrm{elastic}$. More...
 

Derivatives methods

Real dAdt (const Real &Anp1, const Real &timeStep, const UInt &iNode) const
 Compute the derivative of the area with respect to the time using a first order finite difference. More...
 
virtual Real dPdW (const Real &W1, const Real &W2, const ID &iW, const UInt &iNode) const =0
 Compute the derivative of pressure with respect to $ \mathbf W$. More...
 
Real dPdA (const Real &A, const Real &timeStep, const UInt &iNode, const bool &elasticExternalNodes=true) const
 Compute the derivative of the pressure with respect to $A$. More...
 
Real dPdAelastic (const Real &A, const UInt &iNode) const
 Compute the derivative of the elastic pressure with respect to $A$. More...
 
Real dPdAviscoelastic (const Real &A, const Real &timeStep, const UInt &iNode, const bool &elasticExternalNodes=true) const
 Compute the derivative of the viscoelastic pressure with respect to $A$. More...
 
Real dAdP (const Real &P, const Real &timeStep, const UInt &iNode, const bool &elasticExternalNodes=true) const
 Compute the derivative of the area with respect to $P$. More...
 
Real dPTdU (const Real &A, const Real &Q, const Real &timeStep, const ID &id, const UInt &iNode) const
 Compute the derivative of total pressure with respect to $A$ or $Q$. More...
 

Methods

Real celerity0 (const UInt &iNode) const
 Compute the reference celerity. More...
 
Real pressure (const Real &A, const Real &timeStep, const UInt &iNode, const bool &elasticExternalNodes=true) const
 Compute the pressure. More...
 
const RealexternalPressure () const
 Return the external pressure. More...
 
const RealvenousPressure () const
 Return the venous pressure. More...
 
Real elasticPressure (const Real &A, const UInt &iNode) const
 Compute the elastic pressure. More...
 
Real viscoelasticPressure (const Real &A, const Real &timeStep, const UInt &iNode, const bool &elasticExternalNodes=true) const
 Compute the viscoelastic pressure. More...
 
Real totalPressure (const Real &A, const Real &Q, const UInt &iNode) const
 Compute the total pressure. More...
 

Set Methods

void setData (const dataPtr_Type &dataPtr)
 Set the data container of the problem. More...
 
void setArea_tn (const vector_Type &area_tn)
 Set the area at time $t^n$. More...
 

Get Methods

dataPtr_Type data () const
 Get the data container of the problem. More...
 

Unimplemented Methods

 OneDFSIPhysics (const OneDFSIPhysics &physics)
 
OneDFSIPhysicsoperator= (const OneDFSIPhysics &physics)
 

Detailed Description

OneDFSIPhysics - Base class providing physical operations for the 1D model data.

Author
Vincent Martin, Cristiano Malossi
See also
Equations and networks of 1-D models [7]
Geometrical multiscale coupling of 1-D models [12] [13] [3]

It contains the following methods:

  1. utilities for converting Riemann variables to physical quantities (and viceversa);
  2. utilities to compute the different pressure components (and derivatives).

Definition at line 71 of file OneDFSIPhysics.hpp.

Member Typedef Documentation

◆ factoryPhysics_Type

◆ data_Type

Definition at line 79 of file OneDFSIPhysics.hpp.

◆ dataPtr_Type

typedef std::shared_ptr< data_Type > dataPtr_Type

Definition at line 80 of file OneDFSIPhysics.hpp.

◆ vector_Type

Definition at line 82 of file OneDFSIPhysics.hpp.

◆ vectorPtr_Type

typedef std::shared_ptr< vector_Type > vectorPtr_Type

Definition at line 83 of file OneDFSIPhysics.hpp.

Constructor & Destructor Documentation

◆ OneDFSIPhysics() [1/3]

OneDFSIPhysics ( )
inlineexplicit

Empty constructor.

Definition at line 92 of file OneDFSIPhysics.hpp.

+ Here is the caller graph for this function:

◆ OneDFSIPhysics() [2/3]

OneDFSIPhysics ( const dataPtr_Type  dataPtr)
inlineexplicit

Constructor.

Parameters
dataPtrpointer to the data container of the problem

Definition at line 98 of file OneDFSIPhysics.hpp.

+ Here is the caller graph for this function:

◆ ~OneDFSIPhysics()

virtual ~OneDFSIPhysics ( )
inlinevirtual

Destructor.

Definition at line 101 of file OneDFSIPhysics.hpp.

◆ OneDFSIPhysics() [3/3]

OneDFSIPhysics ( const OneDFSIPhysics physics)
explicitprivate

Member Function Documentation

◆ fromWToU()

virtual void fromWToU ( Real U1,
Real U2,
const Real W1,
const Real W2,
const UInt iNode 
) const
pure virtual

Compute $\mathbf U$ from $\mathbf W$.

Parameters
U1first physical variable
U2second physical variable
W1first Riemann variable
W2second Riemann variable
iNodenode of the mesh

Implemented in OneDFSIPhysicsNonLinear, and OneDFSIPhysicsLinear.

◆ fromUToW()

virtual void fromUToW ( Real W1,
Real W2,
const Real U1,
const Real U2,
const UInt iNode 
) const
pure virtual

Compute $\mathbf W$ from $\mathbf U$.

Parameters
W1first Riemann variable
W2second Riemann variable
U1first physical variable
U2second physical variable
iNodenode of the mesh

Implemented in OneDFSIPhysicsLinear, and OneDFSIPhysicsNonLinear.

◆ fromWToP()

virtual Real fromWToP ( const Real W1,
const Real W2,
const UInt iNode 
) const
pure virtual

Compute $P$ from $\mathbf W$.

Parameters
W1first Riemann variable
W2second Riemann variable
iNodenode of the mesh
Returns
pressure

Implemented in OneDFSIPhysicsNonLinear, and OneDFSIPhysicsLinear.

◆ fromPToW()

virtual Real fromPToW ( const Real P,
const Real W,
const ID iW,
const UInt iNode 
) const
pure virtual

Compute $W_1$ or $W_2$ from $P$.

Parameters
Ppressure
WRiemann variable
iWRiemann variable ID (0 for $W_1$, 1 or $W_2$)
iNodenode of the mesh
Returns
the other Riemann variable

Implemented in OneDFSIPhysicsNonLinear, and OneDFSIPhysicsLinear.

◆ fromQToW()

virtual Real fromQToW ( const Real Q,
const Real W_tn,
const Real W,
const ID iW,
const UInt iNode 
) const
pure virtual

Compute $W_1$ or $W_2$ from $Q$.

Parameters
Qpressure
W_tnRiemann variable at time $t^n$
WRiemann variable
iWRiemann variable ID (0 for $W_1$, 1 or $W_2$)
iNodenode of the mesh
Returns
the other Riemann variable

Implemented in OneDFSIPhysicsNonLinear, and OneDFSIPhysicsLinear.

◆ fromPToA()

Real fromPToA ( const Real P,
const Real timeStep,
const UInt iNode,
const bool &  elasticExternalNodes = true 
) const
inline

Compute the area $A$ given the elastic pressure $P_\mathrm{elastic}$.

To be used in initialization, when time derivative of A is supposed equal to zero.

Parameters
Pelastic pressure
timeStepthe time step
iNodenode of the mesh
elasticExternalNodesconsider elastic the external nodes (neglect viscoelasticity)
Returns
$ A = A^0 \left( \displaystyle\frac{P_\mathrm{elastic} - P_\mathrm{ext}}{\beta_0} + 1 \right)^{\left(\displaystyle\frac{1}{\beta_1}\right)} $

Definition at line 404 of file OneDFSIPhysics.hpp.

◆ dAdt()

Real dAdt ( const Real Anp1,
const Real timeStep,
const UInt iNode 
) const
inline

Compute the derivative of the area with respect to the time using a first order finite difference.

Parameters
Anp1area at time $t^{n+1}$
timeStepthe time step
iNodenode of the mesh
Returns
$\displaystyle\frac{dA(t)}{dt}$

Definition at line 450 of file OneDFSIPhysics.hpp.

◆ dPdW()

virtual Real dPdW ( const Real W1,
const Real W2,
const ID iW,
const UInt iNode 
) const
pure virtual

Compute the derivative of pressure with respect to $ \mathbf W$.

Parameters
W1first Riemann variable
W2second Riemann variable
iWRiemann derivative ID (0 for $\displaystyle\frac{dP}{dW_1}$, 1 or $\displaystyle\frac{dP}{dW_2}$)
iNodenode of the mesh
Returns
$\displaystyle\frac{dP}{dW_1}$ or $\displaystyle\frac{dP}{dW_2}$

Implemented in OneDFSIPhysicsNonLinear, and OneDFSIPhysicsLinear.

◆ dPdA()

Real dPdA ( const Real A,
const Real timeStep,
const UInt iNode,
const bool &  elasticExternalNodes = true 
) const
inline

Compute the derivative of the pressure with respect to $A$.

Parameters
Aarea
timeStepthe time step
iNodenode of the mesh
elasticExternalNodesconsider elastic the external nodes (neglect viscoelasticity)
Returns
$\displaystyle\frac{dP(A)}{dA} = \displaystyle\frac{dP_\mathrm{elastic}(A)}{dA} + \displaystyle\frac{dP_\mathrm{viscoelastic}(A)}{dA}$

Definition at line 456 of file OneDFSIPhysics.hpp.

+ Here is the caller graph for this function:

◆ dPdAelastic()

Real dPdAelastic ( const Real A,
const UInt iNode 
) const
inline

Compute the derivative of the elastic pressure with respect to $A$.

Parameters
Aarea
iNodenode of the mesh
Returns
$\displaystyle\frac{dP_\mathrm{elastic}(A)}{dA} = \displaystyle\frac{\beta_1 \beta_0 ( \displaystyle\frac{A}{A^0} )^{\beta_1}}{A}$

Definition at line 462 of file OneDFSIPhysics.hpp.

+ Here is the caller graph for this function:

◆ dPdAviscoelastic()

Real dPdAviscoelastic ( const Real A,
const Real timeStep,
const UInt iNode,
const bool &  elasticExternalNodes = true 
) const
inline

Compute the derivative of the viscoelastic pressure with respect to $A$.

Parameters
Aarea
timeStepthe time step
iNodenode of the mesh
elasticExternalNodesconsider elastic the external nodes (neglect viscoelasticity)
Returns
$\displaystyle\frac{dP_\mathrm{viscoelastic}(A)}{dA} = \displaystyle\frac{\gamma}{A^{3/2}} \left( \displaystyle\frac{1}{\Delta t} - \displaystyle\frac{dA}{dt} \displaystyle\frac{3}{2A} \right)$

Definition at line 468 of file OneDFSIPhysics.hpp.

+ Here is the caller graph for this function:

◆ dAdP()

Real dAdP ( const Real P,
const Real timeStep,
const UInt iNode,
const bool &  elasticExternalNodes = true 
) const
inline

Compute the derivative of the area with respect to $P$.

Parameters
Ppressure
timeStepthe time step
iNodenode of the mesh
elasticExternalNodesconsider elastic the external nodes (neglect viscoelasticity)
Returns
$\displaystyle\frac{dA(P)}{dP} = \displaystyle\frac{dA(P)}{dP_\mathrm{elastic}} + \displaystyle\frac{dA(P)}{dP_\mathrm{viscoelastic}}$, with $\displaystyle\frac{dA(P)}{dP_\mathrm{elastic}} = \displaystyle\frac{A^0}{\beta_0 \beta_1} \left( 1 + \displaystyle\frac{ P - P_\mathrm{ext} }{ \beta_0 }\right)^{\displaystyle\frac{1}{\beta_1} - 1}$

Definition at line 481 of file OneDFSIPhysics.hpp.

◆ dPTdU()

Real dPTdU ( const Real A,
const Real Q,
const Real timeStep,
const ID id,
const UInt iNode 
) const
inline

Compute the derivative of total pressure with respect to $A$ or $Q$.

Parameters
Aarea
Qflow rate
timeStepthe time step
variableID (0 for $A$, 1 or $Q$)
iNodenode of the mesh
Returns
$\displaystyle\frac{dP_t}{dA}$ or $\displaystyle\frac{dP_t}{dQ}$

Definition at line 498 of file OneDFSIPhysics.hpp.

◆ celerity0()

Real celerity0 ( const UInt iNode) const
inline

Compute the reference celerity.

Parameters
iNodenode of the mesh
Returns
reference celerity

Definition at line 518 of file OneDFSIPhysics.hpp.

+ Here is the caller graph for this function:

◆ pressure()

Real pressure ( const Real A,
const Real timeStep,
const UInt iNode,
const bool &  elasticExternalNodes = true 
) const
inline

Compute the pressure.

Includes the contribution of the external, elastic and viscoelastic pressure.

Parameters
Aarea
timeStepthe time step
iNodenode of the mesh
elasticExternalNodesconsider elastic the external nodes (neglect viscoelasticity)
Returns
$P = P_\mathrm{elastic} + P_\mathrm{viscoelastic} + P_\mathrm{external}$

Definition at line 524 of file OneDFSIPhysics.hpp.

+ Here is the caller graph for this function:

◆ externalPressure()

const Real& externalPressure ( ) const
inline

Return the external pressure.

Returns
$P_\mathrm{external}$

Definition at line 296 of file OneDFSIPhysics.hpp.

+ Here is the caller graph for this function:

◆ venousPressure()

const Real& venousPressure ( ) const
inline

Return the venous pressure.

Returns
$P_\mathrm{venous}$

Definition at line 305 of file OneDFSIPhysics.hpp.

◆ elasticPressure()

Real elasticPressure ( const Real A,
const UInt iNode 
) const
inline

Compute the elastic pressure.

Parameters
Aarea
iNodenode of the mesh
Returns
$P_\mathrm{elastic} = \beta_0 \left( \left( \displaystyle\frac{A}{A^0} \right)^{\beta_1} - 1 \right)$

Definition at line 530 of file OneDFSIPhysics.hpp.

+ Here is the caller graph for this function:

◆ viscoelasticPressure()

Real viscoelasticPressure ( const Real A,
const Real timeStep,
const UInt iNode,
const bool &  elasticExternalNodes = true 
) const
inline

Compute the viscoelastic pressure.

Parameters
Aarea
timeStepthe time step
iNodenode of the mesh
elasticExternalNodesconsider elastic the external nodes (neglect viscoelasticity)
Returns
$P_\mathrm{viscoelastic} = \gamma \displaystyle\frac{1}{2\sqrt{\pi A}} \displaystyle\frac{dA}{dt}$

Definition at line 536 of file OneDFSIPhysics.hpp.

+ Here is the caller graph for this function:

◆ totalPressure()

Real totalPressure ( const Real A,
const Real Q,
const UInt iNode 
) const
inline

Compute the total pressure.

Parameters
Aarea
Qflow rate
iNodenode of the mesh
Returns
$P_t = P + \displaystyle\frac{\rho}{2} \left(\displaystyle\frac{Q}{A}\right)^2$

Definition at line 549 of file OneDFSIPhysics.hpp.

◆ setData()

void setData ( const dataPtr_Type dataPtr)
inline

Set the data container of the problem.

Parameters
dataPtrpointer to the data container of the problem

Definition at line 351 of file OneDFSIPhysics.hpp.

◆ setArea_tn()

void setArea_tn ( const vector_Type area_tn)
inline

Set the area at time $t^n$.

This parameter is required for computing the derivative of the area in time.

Parameters
area_tn$A^{n}$

Definition at line 361 of file OneDFSIPhysics.hpp.

◆ data()

dataPtr_Type data ( ) const
inline

Get the data container of the problem.

Returns
shared pointer to the data container of the problem

Definition at line 375 of file OneDFSIPhysics.hpp.

◆ operator=()

OneDFSIPhysics& operator= ( const OneDFSIPhysics physics)
private

Field Documentation

◆ M_dataPtr

dataPtr_Type M_dataPtr
protected

Definition at line 384 of file OneDFSIPhysics.hpp.

◆ M_previousAreaPtr

vectorPtr_Type M_previousAreaPtr
private

Definition at line 397 of file OneDFSIPhysics.hpp.


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