43 #include <lifev/one_d_fsi/solver/OneDFSIPhysicsLinear.hpp> 54 W1 = U2 + celerity0 ( iNode ) * ( U1 - M_dataPtr->area0 ( iNode ) );
56 W2 = U2 - celerity0 ( iNode ) * ( U1 - M_dataPtr->area0 ( iNode ) );
58 #ifdef HAVE_LIFEV_DEBUG 59 debugStream ( 6320 ) <<
"[OneDFSIModel_Physics_Linear::fromUToW] Q " << U2 <<
"\n";
60 debugStream ( 6320 ) <<
"[OneDFSIModel_Physics_Linear::fromUToW] W1 " << W1 <<
"\n";
61 debugStream ( 6320 ) <<
"[OneDFSIModel_Physics_Linear::fromUToW] W2 " << W2 <<
"\n";
62 debugStream ( 6320 ) <<
"[OneDFSIModel_Physics_Linear::fromUToW] celerity " << celerity0 ( iNode ) <<
"\n";
63 debugStream ( 6320 ) <<
"[OneDFSIModel_Physics_Linear::fromUToW] ( _U1 - area0( iNode ) ) " << ( U1 - M_dataPtr->area0 ( iNode ) ) <<
"\n";
70 U1 = M_dataPtr -> area0 ( iNode ) + ( W1 - W2) / ( 2 * celerity0 ( iNode ) );
78 return ( M_dataPtr -> beta0 ( iNode )
79 * ( OneDFSI::pow05 ( 1 / M_dataPtr->area0 ( iNode ), M_dataPtr -> beta1 ( iNode ) )
80 * OneDFSI::pow05 ( (W1 - W2 ) / ( 2 * celerity0 ( iNode ) ) + M_dataPtr -> area0 ( iNode ), M_dataPtr -> beta1 ( iNode ) )
88 Real add ( 2 * celerity0 ( iNode ) * M_dataPtr -> area0 ( iNode ) * ( OneDFSI::pow20 ( P / M_dataPtr -> beta0 ( iNode ) + 1,
89 1 / M_dataPtr -> beta1 ( iNode ) ) - 1 ) );
91 #ifdef HAVE_LIFEV_DEBUG 92 debugStream (6320) <<
"[fromPToW] " 93 <<
"2 * celerity0( iNode ) * area0( iNode ) = " << 2 * celerity0 ( iNode ) * M_dataPtr -> area0 ( iNode )
94 <<
", pow( ( P / beta0( iNode ) + 1 ), 1 / beta1( iNode ) ) = " 95 << OneDFSI::pow20 ( P / M_dataPtr -> beta0 ( iNode ) + 1 , 1 / M_dataPtr -> beta1 ( iNode ) ) <<
"\n";
96 debugStream (6320) <<
"[fromPToW] add term = " << add <<
"\n";
108 ERROR_MSG (
"You can only find W1 or W2 as function of P");
127 ERROR_MSG (
"You can only find W1 or W2 as function of Q");
137 Real beta0beta1overA0beta1 ( M_dataPtr->beta0 ( iNode ) * M_dataPtr -> beta1 ( iNode ) / OneDFSI::pow05 ( M_dataPtr -> area0 ( iNode ),
138 M_dataPtr -> beta1 ( iNode ) ) );
142 Real result ( beta0beta1overA0beta1 * oneover2celerity );
143 result *= ( ( W1 - W2 ) * oneover2celerity + M_dataPtr -> area0 ( iNode ) );
155 ERROR_MSG (
"P(W1,W2)'s differential function has only 2 components.");
void fromWToU(Real &U1, Real &U2, const Real &W1, const Real &W2, const UInt &iNode) const
Compute from .
Real celerity0(const UInt &iNode) const
Compute the reference celerity.
void updateInverseJacobian(const UInt &iQuadPt)
Real fromPToW(const Real &P, const Real &W, const ID &iW, const UInt &iNode) const
Compute or from .
Real dPdW(const Real &W1, const Real &W2, const ID &iW, const UInt &iNode) const
Compute the derivative of pressure with respect to .
Real fromQToW(const Real &Q, const Real &W_tn, const Real &W, const ID &iW, const UInt &iNode) const
Compute or from .
OneDFSIPhysicsLinear - Class providing linear physical operations for the 1D model data...
double Real
Generic real data.
Real fromWToP(const Real &W1, const Real &W2, const UInt &iNode) const
Compute from .
uint32_type UInt
generic unsigned integer (used mainly for addressing)
void fromUToW(Real &W1, Real &W2, const Real &U1, const Real &U2, const UInt &iNode) const
Compute from .