53 m_pNode1(p1), m_pNode2(p2),
54 m_dKappa12(dK12), m_dKappa21(dK21), m_Area(A),
65 ASSERT(A > std::numeric_limits<doublereal>::epsilon());
84 return out <<
"MinorLoss not implemented yet!" << std::endl;
96 silent_cerr(
"MinorLoss has no dofs!" << std::endl);
113 DEBUGCOUT(
"Entering MinorLoss::AssJac()" << std::endl);
134 if (jumpPres < 1.e8*std::numeric_limits<doublereal>::epsilon()) {
135 jumpPres = 1.e8*std::numeric_limits<doublereal>::epsilon();
165 DEBUGCOUT(
"Entering MinorLoss::AssRes()" << std::endl);
190 DEBUGCOUT(
"RES p1: " << p1 << std::endl);
191 DEBUGCOUT(
"RES p2: " << p2 << std::endl);
193 DEBUGCOUT(
"****************************************************" << std::endl);
195 DEBUGCOUT(
" se positiva il fluido va dal nodo 1 al nodo 2 " << std::endl);
197 DEBUGCOUT(
"****************************************************" << std::endl);
212 <<
" " <<
vel <<
" " <<
flow << std::endl;
222 unsigned int uL,
const DofOwner* pDO,
229 m_pNode0(p0), m_pNode1(p1), m_pNode2(p2), m_pNodeN(0),
230 m_dKappa12(dK12), m_dKappa21(dK21), m_Area1(A1), m_Area2(A2),
244 ASSERT(A1 > std::numeric_limits<doublereal>::epsilon());
245 ASSERT(A2 > std::numeric_limits<doublereal>::epsilon());
264 return out <<
"ThreeWayMinorLoss not implemented yet!" << std::endl;
276 silent_cerr(
"MinorLoss has no dofs!" << std::endl);
293 DEBUGCOUT(
"Entering ThreeWayMinorLoss::AssJac()" << std::endl);
316 if (jumpPres < 1.e8*std::numeric_limits<doublereal>::epsilon()) {
317 jumpPres = 1.e8*std::numeric_limits<doublereal>::epsilon();
347 DEBUGCOUT(
"Entering ThreeWayMinorLoss::AssRes()" << std::endl);
383 DEBUGCOUT(
"RES p0: " << p0 << std::endl);
386 DEBUGCOUT(
"****************************************************" << std::endl);
388 DEBUGCOUT(
" se positiva il fluido va dal nodo 0 al nodo n " << std::endl);
390 DEBUGCOUT(
"****************************************************" << std::endl);
408 <<
" " <<
vel <<
" " <<
flow << std::endl;
427 m_pNode1(p1), m_pNode2(p2),
428 diameter(Dh), m_Area_diaf(A_diaf),
429 m_Area_pipe(A_pipe), ReCr(ReCr),
439 ASSERT(Dh > std::numeric_limits<doublereal>::epsilon());
440 ASSERT(A_diaf > std::numeric_limits<doublereal>::epsilon());
441 ASSERT(A_pipe > std::numeric_limits<doublereal>::epsilon());
462 doublereal Cc = (((.4855*rapp - .4971)*rapp + .158)*rapp + .1707)*rapp + .6005;
466 if (rad < 1.e3*std::numeric_limits<doublereal>::epsilon()) {
467 silent_cerr(
"Orifice(" <<
GetLabel() <<
"): error computing Cd" << std::endl);
491 return out <<
"Orifice not implemented yet!" << std::endl;
503 silent_cerr(
"Orifice has no dofs!" << std::endl);
520 DEBUGCOUT(
"Entering Orifice::AssJac()" << std::endl);
567 DEBUGCOUT(
"Entering Orifice::AssRes()" << std::endl);
584 DEBUGCOUT(
"we are in orifice laminar" << std::endl);
592 DEBUGCOUT(
"we are in orifice turbulent:" << std::endl);
602 DEBUGCOUT(
"jumpPres: " << jumpPres << std::endl);
603 DEBUGCOUT(
"density: " << density << std::endl);
617 DEBUGCOUT(
"******************************************" << std::endl);
619 DEBUGCOUT(
" se positiva il fluido va dal nodo 1 al nodo 2" << std::endl);
620 DEBUGCOUT(
"*********************************************" << std::endl);
SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
void PutColIndex(integer iSubCol, integer iCol)
const PressureNode * m_pNode0
const PressureNode * m_pNode2
virtual bool bToBeOutput(void) const
GradientExpression< BinaryExpr< FuncPow, LhsExpr, RhsExpr > > pow(const GradientExpression< LhsExpr > &u, const GradientExpression< RhsExpr > &v)
virtual DofOrder::Order GetDofType(unsigned int i) const
#define MBDYN_EXCEPT_ARGS
MinorLoss(unsigned int uL, const DofOwner *pD, HydraulicFluid *hf, const PressureNode *p1, const PressureNode *p2, doublereal dK12, doublereal dK21, doublereal A, flag fOut)
const PressureNode * m_pNode1
FullSubMatrixHandler & SetFull(void)
virtual unsigned int iGetNumDof(void) const
VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
Orifice(unsigned int uL, const DofOwner *pD, HydraulicFluid *hf, const PressureNode *p1, const PressureNode *p2, doublereal Dh, doublereal A_diaf, doublereal A_pipe, doublereal ReCR, flag fOut)
const PressureNode * m_pNode2
void Resize(integer iNewRow, integer iNewCol)
virtual HydraulicElem::Type GetHydraulicType(void) const
virtual HydraulicElem::Type GetHydraulicType(void) const
void PutCoef(integer iRow, integer iCol, const doublereal &dCoef)
ThreeWayMinorLoss(unsigned int uL, const DofOwner *pD, HydraulicFluid *hf, const PressureNode *p0, const PressureNode *p1, const PressureNode *p2, doublereal dK12, doublereal dK21, doublereal A1, doublereal A2, flag fOut)
virtual HydraulicElem::Type GetHydraulicType(void) const
GradientExpression< UnaryExpr< FuncFabs, Expr > > fabs(const GradientExpression< Expr > &u)
VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
const PressureNode * m_pNodeN
virtual void PutItem(integer iSubRow, integer iRow, const doublereal &dCoef)
virtual unsigned int iGetNumDof(void) const
virtual unsigned int iGetNumDof(void) const
virtual doublereal dGetDensity(void) const =0
virtual DofOrder::Order GetDofType(unsigned int i) const
virtual const doublereal & dGetX(void) const
SubVectorHandler & AssRes(SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
virtual void Output(OutputHandler &OH) const
virtual std::ostream & Restart(std::ostream &out) const
doublereal copysign(doublereal x, doublereal y)
virtual std::ostream & Restart(std::ostream &out) const
const PressureNode * m_pNode1
virtual std::ostream & Restart(std::ostream &out) const
VariableSubMatrixHandler & AssJac(VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
virtual integer iGetFirstRowIndex(void) const
#define ASSERT(expression)
virtual doublereal dGetViscosity(void) const =0
GradientExpression< UnaryExpr< FuncSqrt, Expr > > sqrt(const GradientExpression< Expr > &u)
virtual void Output(OutputHandler &OH) const
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
void PutRowIndex(integer iSubRow, integer iRow)
virtual void Output(OutputHandler &OH) const
virtual Node::Type GetNodeType(void) const
std::ostream & Hydraulic(void) const
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
const PressureNode * m_pNode1
virtual DofOrder::Order GetDofType(unsigned int i) const
unsigned int GetLabel(void) const
virtual void Resize(integer iNewSize)=0
const PressureNode * m_pNode2
virtual integer iGetFirstColIndex(void) const