LifeV
OneDFSIPhysicsNonLinear Class Reference

OneDFSIPhysicsNonLinear - Class providing non linear physical operations for the 1D model data. More...

#include <OneDFSIPhysicsNonLinear.hpp>

+ Inheritance diagram for OneDFSIPhysicsNonLinear:
+ Collaboration diagram for OneDFSIPhysicsNonLinear:

Type definitions and Enumerators

typedef OneDFSIPhysics super
 

Constructors & Destructor

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

Conversion methods

void fromUToW (Real &W1, Real &W2, const Real &U1, const Real &U2, const UInt &iNode) const
 Compute $\mathbf U$ from $\mathbf W$. More...
 
void fromWToU (Real &U1, Real &U2, const Real &W1, const Real &W2, const UInt &iNode) const
 Compute $\mathbf W$ from $\mathbf U$. More...
 
Real fromWToP (const Real &W1, const Real &W2, const UInt &iNode) const
 Compute $P$ from $\mathbf W$. More...
 
Real fromPToW (const Real &P, const Real &W, const ID &iW, const UInt &iNode) const
 Compute $W_1$ or $W_2$ from $P$. More...
 
Real fromQToW (const Real &Q, const Real &W_tn, const Real &W, const ID &iW, const UInt &iNode) const
 Compute $W_1$ or $W_2$ from $Q$. More...
 

Derivatives methods

Real dPdW (const Real &W1, const Real &W2, const ID &iW, const UInt &iNode) const
 Compute the derivative of pressure with respect to $ \mathbf W$. More...
 

Unimplemented Methods

 OneDFSIPhysicsNonLinear (const OneDFSIPhysicsNonLinear &physics)
 
OneDFSIPhysicsNonLinearoperator= (const OneDFSIPhysicsNonLinear &physics)
 

Additional Inherited Members

- Public Types inherited from OneDFSIPhysics
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
 
- Public Member Functions inherited from OneDFSIPhysics
 OneDFSIPhysics ()
 Empty constructor. More...
 
 OneDFSIPhysics (const dataPtr_Type dataPtr)
 Constructor. More...
 
virtual ~OneDFSIPhysics ()
 Destructor. 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...
 
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...
 
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...
 
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...
 
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...
 
dataPtr_Type data () const
 Get the data container of the problem. More...
 
- Protected Attributes inherited from OneDFSIPhysics
dataPtr_Type M_dataPtr
 

Detailed Description

OneDFSIPhysicsNonLinear - Class providing non linear 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 63 of file OneDFSIPhysicsNonLinear.hpp.

Member Typedef Documentation

◆ super

Definition at line 70 of file OneDFSIPhysicsNonLinear.hpp.

Constructor & Destructor Documentation

◆ OneDFSIPhysicsNonLinear() [1/3]

OneDFSIPhysicsNonLinear ( )
inlineexplicit

Empty constructor.

Definition at line 79 of file OneDFSIPhysicsNonLinear.hpp.

+ Here is the caller graph for this function:

◆ OneDFSIPhysicsNonLinear() [2/3]

OneDFSIPhysicsNonLinear ( const dataPtr_Type  dataPtr)
inlineexplicit

Constructor.

Parameters
dataPtrpointer to the data container of the problem

Definition at line 85 of file OneDFSIPhysicsNonLinear.hpp.

◆ ~OneDFSIPhysicsNonLinear()

virtual ~OneDFSIPhysicsNonLinear ( )
inlinevirtual

Destructor.

Definition at line 88 of file OneDFSIPhysicsNonLinear.hpp.

◆ OneDFSIPhysicsNonLinear() [3/3]

OneDFSIPhysicsNonLinear ( const OneDFSIPhysicsNonLinear physics)
explicitprivate

Member Function Documentation

◆ fromUToW()

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

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

Riemann Invariants corresponding to data (Q, A) at node iNode W1,2 = (Q / A) +- (2 / beta1) * sqrt(chi) * (celerity - celerity0) being chi the correction coefficient proposed by A. Robertson and H. Zakaria

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

Implements OneDFSIPhysics.

Definition at line 51 of file OneDFSIPhysicsNonLinear.cpp.

◆ fromWToU()

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

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

Physical variables corresponding to (W1, W2) at node iNode A = A0 * ( rho / (beta0 * beta1) )^(1/beta1)

  • ( beta1 / (4 * sqrt(chi) ) * (W1 - W2) + celerity0 )^(2/beta1)

Q = A (W1 + W2) / 2

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

Implements OneDFSIPhysics.

Definition at line 64 of file OneDFSIPhysicsNonLinear.cpp.

◆ fromWToP()

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

Compute $P$ from $\mathbf W$.

Parameters
W1first Riemann variable
W2second Riemann variable
iNodenode of the mesh
Returns
P = beta0 * ( rho / (beta0 * beta1) * ( beta1 / (4 * sqrt(chi)) * (W1 - W2) + celerity0 )^2 - 1 )

Implements OneDFSIPhysics.

Definition at line 78 of file OneDFSIPhysicsNonLinear.cpp.

◆ fromPToW()

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

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

W1 - W2 = (4 * sqrt(chi) / beta1) * sqrt( beta0 * beta1 / rho ) ) * ( sqrt( P / beta0 + 1 ) - 1 ) W1 - W2 = 4 * sqrt( beta0 / (beta1 * rho ) ) * ( sqrt( P / beta0 + 1 ) - 1 )

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

Implements OneDFSIPhysics.

Definition at line 89 of file OneDFSIPhysicsNonLinear.cpp.

◆ fromQToW()

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

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

( W1 - W2 + celerity0/K0 )^(2/beta1) * ( W1 + W2 ) = Q / K1

where

K0 = beta1 / ( 4 * sqrt(chi) ) K1 = A0 / 2 * ( rho / (beta0*beta1) )^(1/beta1) * K0^(2/beta1)

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

Implements OneDFSIPhysics.

Definition at line 121 of file OneDFSIPhysicsNonLinear.cpp.

◆ dPdW()

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

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

dP(W1,W2)/dW_1 = rho / (2 * sqrt(chi)) * ( beta1 / (4 * sqrt(chi)) * (W1 - W2) + celerity0 ) dP(W1,W2)/dW_2 = - rho / (2 * sqrt(chi)) * ( beta1 / (4 * sqrt(chi)) * (W1 - W2) + celerity0 )

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}$

dP/dW1

dP/dW2

Implements OneDFSIPhysics.

Definition at line 164 of file OneDFSIPhysicsNonLinear.cpp.

◆ operator=()

OneDFSIPhysicsNonLinear& operator= ( const OneDFSIPhysicsNonLinear physics)
private

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