MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
Dynamic_pipe Class Reference

#include <pipe.h>

Inheritance diagram for Dynamic_pipe:
Collaboration diagram for Dynamic_pipe:

Public Member Functions

 Dynamic_pipe (unsigned int uL, const DofOwner *pD, HydraulicFluid *hf, const PressureNode *p1, const PressureNode *p2, doublereal Dh, doublereal A, doublereal L, flag transition, doublereal q0, flag fOut)
 
 ~Dynamic_pipe (void)
 
virtual HydraulicElem::Type GetHydraulicType (void) const
 
virtual std::ostream & Restart (std::ostream &out) const
 
virtual unsigned int iGetNumDof (void) const
 
virtual DofOrder::Order GetDofType (unsigned int i) const
 
virtual void WorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
VariableSubMatrixHandlerAssJac (VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
SubVectorHandlerAssRes (SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP)
 
virtual void Output (OutputHandler &OH) const
 
virtual void SetValue (DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *ph=0)
 
virtual void GetConnectedNodes (std::vector< const Node * > &connectedNodes) const
 
- Public Member Functions inherited from Elem
 Elem (unsigned int uL, flag fOut)
 
virtual ~Elem (void)
 
virtual std::ostream & DescribeDof (std::ostream &out, const char *prefix="", bool bInitial=false) const
 
virtual void DescribeDof (std::vector< std::string > &desc, bool bInitial=false, int i=-1) const
 
virtual std::ostream & DescribeEq (std::ostream &out, const char *prefix="", bool bInitial=false) const
 
virtual void DescribeEq (std::vector< std::string > &desc, bool bInitial=false, int i=-1) const
 
virtual void AssMats (VariableSubMatrixHandler &WorkMatA, VariableSubMatrixHandler &WorkMatB, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual bool bInverseDynamics (void) const
 
void SetInverseDynamicsFlags (unsigned uIDF)
 
unsigned GetInverseDynamicsFlags (void) const
 
bool bIsErgonomy (void) const
 
bool bIsRightHandSide (void) const
 
virtual VariableSubMatrixHandlerAssJac (VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
 
virtual SubVectorHandlerAssRes (SubVectorHandler &WorkVec, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr, const VectorHandler &XPrimePrimeCurr, InverseDynamics::Order iOrder=InverseDynamics::INVERSE_DYNAMICS)
 
virtual int GetNumConnectedNodes (void) const
 
- Public Member Functions inherited from WithLabel
 WithLabel (unsigned int uL=0, const std::string &sN="")
 
virtual ~WithLabel (void)
 
void PutLabel (unsigned int uL)
 
void PutName (const std::string &sN)
 
unsigned int GetLabel (void) const
 
const std::string & GetName (void) const
 
- Public Member Functions inherited from SimulationEntity
 SimulationEntity (void)
 
virtual ~SimulationEntity (void)
 
virtual bool bIsValidIndex (unsigned int i) const
 
virtual DofOrder::Order GetEqType (unsigned int i) const
 
virtual HintParseHint (DataManager *pDM, const char *s) const
 
virtual void BeforePredict (VectorHandler &, VectorHandler &, VectorHandler &, VectorHandler &) const
 
virtual void AfterPredict (VectorHandler &X, VectorHandler &XP)
 
virtual void Update (const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void DerivativesUpdate (const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void Update (const VectorHandler &XCurr, InverseDynamics::Order iOrder)
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP, const VectorHandler &XPP)
 
virtual unsigned int iGetNumPrivData (void) const
 
virtual unsigned int iGetPrivDataIdx (const char *s) const
 
virtual doublereal dGetPrivData (unsigned int i) const
 
virtual std::ostream & OutputAppend (std::ostream &out) const
 
virtual void ReadInitialState (MBDynParser &HP)
 
- Public Member Functions inherited from ToBeOutput
 ToBeOutput (flag fOut=fDefaultOut)
 
virtual ~ToBeOutput (void)
 
virtual void OutputPrepare (OutputHandler &OH)
 
virtual void Output (OutputHandler &OH, const VectorHandler &X, const VectorHandler &XP) const
 
virtual flag fToBeOutput (void) const
 
virtual bool bToBeOutput (void) const
 
virtual void SetOutputFlag (flag f=flag(1))
 
- Public Member Functions inherited from HydraulicElem
 HydraulicElem (unsigned int uL, const DofOwner *pDO, HydraulicFluid *hf, flag fOut)
 
virtual ~HydraulicElem (void)
 
virtual Elem::Type GetElemType (void) const
 
- Public Member Functions inherited from ElemWithDofs
 ElemWithDofs (unsigned int uL, const DofOwner *pDO, flag fOut)
 
virtual ~ElemWithDofs (void)
 
- Public Member Functions inherited from DofOwnerOwner
 DofOwnerOwner (const DofOwner *pDO)
 
virtual ~DofOwnerOwner ()
 
virtual const DofOwnerpGetDofOwner (void) const
 
virtual integer iGetFirstIndex (void) const
 
virtual void SetInitialValue (VectorHandler &X)
 

Private Attributes

const PressureNodepNode1
 
const PressureNodepNode2
 
doublereal diameter
 
doublereal area
 
doublereal length
 
flag turbulent
 
doublereal q0
 
doublereal flow1
 
doublereal flow2
 
doublereal Re
 
doublereal ktrb
 
doublereal klam
 
doublereal ktra
 
doublereal densitySt
 
doublereal densityMe
 
doublereal densityEn
 
doublereal densityDPres
 
doublereal viscosity
 
doublereal VelS
 
doublereal VelM
 
doublereal VelE
 
doublereal fa
 
doublereal pp
 

Additional Inherited Members

- Public Types inherited from Elem
enum  Type {
  UNKNOWN = -1, AIRPROPERTIES = 0, INDUCEDVELOCITY, AUTOMATICSTRUCTURAL,
  GRAVITY, BODY, JOINT, JOINT_REGULARIZATION,
  BEAM, PLATE, FORCE, INERTIA,
  ELECTRICBULK, ELECTRIC, THERMAL, HYDRAULIC,
  BULK, LOADABLE, DRIVEN, EXTERNAL,
  AEROMODAL, AERODYNAMIC, GENEL, SOCKETSTREAM_OUTPUT,
  RTAI_OUTPUT = SOCKETSTREAM_OUTPUT, LASTELEMTYPE
}
 
- Public Types inherited from SimulationEntity
typedef std::vector< Hint * > Hints
 
- Public Types inherited from ToBeOutput
enum  { OUTPUT = 0x1U, OUTPUT_MASK = 0xFU, OUTPUT_PRIVATE = 0x10U, OUTPUT_PRIVATE_MASK = ~OUTPUT_MASK }
 
- Public Types inherited from HydraulicElem
enum  Type {
  UNKNOWN = -1, MINOR_LOSS = 0, THREEWAYMINORLOSS, CONTROL_VALVE,
  DYNAMIC_CONTROL_VALVE, PRESSURE_FLOW_CONTROL_VALVE, PRESSURE_VALVE, FLOW_VALVE,
  ORIFICE, ACCUMULATOR, TANK, PIPE,
  DYNAMIC_PIPE, HYDRAULIC_ACTUATOR, ACTUATOR, LASTHYDRAULICTYPE
}
 
- Protected Attributes inherited from WithLabel
unsigned int uLabel
 
std::string sName
 
- Protected Attributes inherited from ToBeOutput
flag fOutput
 
- Protected Attributes inherited from HydraulicElem
HydraulicFluidHF
 

Detailed Description

Definition at line 117 of file pipe.h.

Constructor & Destructor Documentation

Dynamic_pipe::Dynamic_pipe ( unsigned int  uL,
const DofOwner pD,
HydraulicFluid hf,
const PressureNode p1,
const PressureNode p2,
doublereal  Dh,
doublereal  A,
doublereal  L,
flag  transition,
doublereal  q0,
flag  fOut 
)

Definition at line 469 of file pipe.cc.

References area, ASSERT, HydraulicFluid::dGetDensity(), HydraulicFluid::dGetViscosity(), ScalarAlgebraicNode::dGetX(), diameter, PressureNode::GetNodeType(), HydraulicElem::HF, Node::HYDRAULIC, klam, ktra, ktrb, length, pNode1, pNode2, grad::pow(), and viscosity.

474 : Elem(uL, fOut),
475 HydraulicElem(uL, pDO, hf, fOut),
476 pNode1(p1), pNode2(p2),
477 diameter(Dh), area(A),
478 length(L), turbulent(transition), q0(q0)
479 {
480  ASSERT(pNode1 != NULL);
482  ASSERT(pNode2 != NULL);
484  ASSERT(Dh > std::numeric_limits<doublereal>::epsilon());
485  ASSERT(A > std::numeric_limits<doublereal>::epsilon());
486  ASSERT(L > std::numeric_limits<doublereal>::epsilon());
487 
489  doublereal density = HF->dGetDensity((pNode1->dGetX()+pNode2->dGetX())/2.);
490 
491  klam = 8.*length*viscosity/(diameter*diameter);
492  ktra = .5/(density*area*diameter);
493  ktrb = .5*length*.1582*pow(viscosity, .25)/(pow(diameter, 1.25)*pow(area, .75));
494 }
doublereal length
Definition: pipe.h:123
const PressureNode * pNode1
Definition: pipe.h:119
GradientExpression< BinaryExpr< FuncPow, LhsExpr, RhsExpr > > pow(const GradientExpression< LhsExpr > &u, const GradientExpression< RhsExpr > &v)
Definition: gradient.h:2961
doublereal diameter
Definition: pipe.h:121
virtual doublereal dGetDensity(void) const =0
virtual const doublereal & dGetX(void) const
Definition: node.h:492
HydraulicElem(unsigned int uL, const DofOwner *pDO, HydraulicFluid *hf, flag fOut)
Definition: preselem.cc:54
doublereal area
Definition: pipe.h:122
HydraulicFluid * HF
Definition: preselem.h:79
doublereal klam
Definition: pipe.h:131
flag turbulent
Definition: pipe.h:124
doublereal viscosity
Definition: pipe.h:138
#define ASSERT(expression)
Definition: colamd.c:977
virtual doublereal dGetViscosity(void) const =0
const PressureNode * pNode2
Definition: pipe.h:120
doublereal q0
Definition: pipe.h:125
virtual Node::Type GetNodeType(void) const
Definition: presnode.h:54
doublereal ktra
Definition: pipe.h:132
Elem(unsigned int uL, flag fOut)
Definition: elem.cc:41
double doublereal
Definition: colamd.c:52
doublereal ktrb
Definition: pipe.h:130

Here is the call graph for this function:

Dynamic_pipe::~Dynamic_pipe ( void  )

Definition at line 496 of file pipe.cc.

References NO_OP.

497 {
498  NO_OP;
499 }
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

void Dynamic_pipe::AfterConvergence ( const VectorHandler X,
const VectorHandler XP 
)
virtual

Reimplemented from SimulationEntity.

Definition at line 954 of file pipe.cc.

References DEBUGCOUT, HydraulicFluid::dGetRe(), WithLabel::GetLabel(), HydraulicElem::HF, HydraulicFluid::LOWER, Re, turbulent, and HydraulicFluid::UPPER.

955 {
956  if (Re < HF->dGetRe(HydraulicFluid::LOWER)) {
957  turbulent = 0;
958  } else if (Re > HF->dGetRe(HydraulicFluid::UPPER)) {
959  turbulent = 1;
960  }
961 
962 #ifdef HYDR_DEVEL
963  DEBUGCOUT("Dynamic_Pipe(" << GetLabel() << "): turbulent mode = "
964  << turbulent << std::endl);
965 #endif /* HYDR_DEVEL */
966 }
virtual doublereal dGetRe(Re which)
Definition: hfluid.h:95
HydraulicFluid * HF
Definition: preselem.h:79
#define DEBUGCOUT(msg)
Definition: myassert.h:232
flag turbulent
Definition: pipe.h:124
doublereal Re
Definition: pipe.h:129
unsigned int GetLabel(void) const
Definition: withlab.cc:62

Here is the call graph for this function:

VariableSubMatrixHandler & Dynamic_pipe::AssJac ( VariableSubMatrixHandler WorkMat,
doublereal  dCoef,
const VectorHandler XCurr,
const VectorHandler XPrimeCurr 
)
virtual

Implements Elem.

Definition at line 532 of file pipe.cc.

References a, area, c, DEBUGCOUT, densityDPres, HydraulicFluid::dGetDensity(), HydraulicFluid::dGetDensityDPres(), HydraulicFluid::dGetRe(), ScalarAlgebraicNode::dGetX(), diameter, fa, grad::fabs(), HydraulicElem::HF, Node::iGetFirstColIndex(), DofOwnerOwner::iGetFirstIndex(), Node::iGetFirstRowIndex(), klam, length, HydraulicFluid::LOWER, pNode1, pNode2, grad::pow(), FullSubMatrixHandler::PutCoef(), FullSubMatrixHandler::PutColIndex(), FullSubMatrixHandler::PutRowIndex(), Re, FullSubMatrixHandler::ResizeReset(), VariableSubMatrixHandler::SetFull(), turbulent, HydraulicFluid::UPPER, and viscosity.

536 {
537  DEBUGCOUT("Entering Pipe::AssJac()" << std::endl);
538  DEBUGCOUT("Valore di dblepsilon INIZIO:" << std::numeric_limits<doublereal>::epsilon() << std::endl);
539  FullSubMatrixHandler& WM = WorkMat.SetFull();
540  WM.ResizeReset(5, 5);
541 
542  integer iNode1RowIndex = pNode1->iGetFirstRowIndex()+1;
543  integer iNode2RowIndex = pNode2->iGetFirstRowIndex()+1;
544  integer iNode1ColIndex = pNode1->iGetFirstColIndex()+1;
545  integer iNode2ColIndex = pNode2->iGetFirstColIndex()+1;
546  integer iFirstIndex = iGetFirstIndex();
547 
548  WM.PutRowIndex(1, iNode1RowIndex);
549  WM.PutRowIndex(2, iNode2RowIndex);
550  WM.PutColIndex(1, iNode1ColIndex);
551  WM.PutColIndex(2, iNode2ColIndex);
552  WM.PutRowIndex(3, iFirstIndex+1);
553  WM.PutColIndex(3, iFirstIndex+1);
554  WM.PutRowIndex(4, iFirstIndex+2);
555  WM.PutColIndex(4, iFirstIndex+2);
556  WM.PutRowIndex(5, iFirstIndex+3);
557  WM.PutColIndex(5, iFirstIndex+3);
558 
559  doublereal p1 = pNode1->dGetX();
560  doublereal p2 = pNode2->dGetX();
561 
562  doublereal q1 = XCurr(iFirstIndex+2); /* portata nodo 1 */
563  doublereal q2 = XCurr(iFirstIndex+3); /* portata nodo 2 */
564 
566  doublereal densityS = HF->dGetDensity(p1); /* densita' all'inizio del tubo */
567  doublereal densityE = HF->dGetDensity(p2); /* densita' alla fine del nodo */
569 
570  doublereal Jac14 = dCoef;
571  doublereal Jac25 = dCoef;
572  doublereal Jac31 = -.5;
573  doublereal Jac32 = -.5;
574  doublereal Jac33 = dCoef;
575  doublereal Jac43 = kappa1;
576  doublereal Jac44 = dCoef;
577  doublereal Jac45 = dCoef;
578  doublereal Jac51 = -area+q1*q1/(densityS*densityS*area)*densityDPres;
579  doublereal Jac52 = area-q2*q2/(densityE*densityE*area)*densityDPres;
580  doublereal Jac54 = -length/2.-2.*dCoef*(q1/(area*densityS));
581  doublereal Jac55 = length/2.+2.*dCoef*(q2/(area*densityE));
582 
583  doublereal lack54;
584  doublereal lack55;
585 
586  /* usata nel caso turbolento & transizione */
587  doublereal kappa2 = length/(6.*diameter*area);
588 
589  if (Re < HF->dGetRe(HydraulicFluid::LOWER)) {
590  /*******************************************
591  * moto sicuramente laminare (jacobiano)
592  ******************************************/
593  lack54 = dCoef*(-2.*klam/densityS);
594  lack55 = dCoef*(2.*klam/densityE);
595  } else if (Re > HF->dGetRe(HydraulicFluid::UPPER)) {
596  /*******************************************
597  * moto sicuramente turbolento (jacobiano)
598  ******************************************/
599 #ifdef HYDR_DEVEL
600  DEBUGCOUT("AssJac() sono turbolento" << std::endl);
601 #endif /* HYDR_DEVEL */
602  fa = .3164/pow(Re, .25);
603 
604  lack54 = -dCoef*(fa*kappa2/densityS)*fabs(-q2+2.*q1);
605  lack55 = dCoef*(fa*kappa2/densityE)*fabs(2.*q2-q1);
606 #ifdef HYDR_DEVEL
607  DEBUGCOUT("fa " << fa << std::endl);
608 #endif /* HYDR_DEVEL */
609  } else {
610  /***********************************
611  * moto di transizione (jacobiano)
612  **********************************/
613 #ifdef HYDR_DEVEL
614  DEBUGCOUT("AssJac() sono in transizione" << std::endl);
615 #endif /* HYDR_DEVEL */
616 
617  if (turbulent == 0) {
618  /*******************************************************
619  * moto di transizione laminare-turbolento (jacobiano)
620  ******************************************************/
621 #ifdef HYDR_DEVEL
622  DEBUGCOUT("Sono in transizione lam->turb" << std::endl);
623 #endif /* HYDR_DEVEL */
624  if (Re < HF->dGetRe(HydraulicFluid::LOWER)*1.25) {
625  /* uso lo jacobiano laminare */
626  lack54 = dCoef*(-2.*klam/densityS);
627  lack55 = dCoef*(+2.*klam/densityE);
628  } else {
630  doublereal c = -1.8e-5*dva;
631  doublereal dva2 = dva*dva;
632  doublereal b = 8.e-10*dva2;
633  doublereal dva3 = dva2*dva;
634  doublereal a = 7.e-13*dva3;
635  doublereal d = .0542;
636 
637  doublereal qm1 = fabs(q1);
638  doublereal qm2 = fabs(q2);
639 
640  doublereal fa1 = ((a*qm1+b)*qm1+c)*qm1+d;
641  doublereal fa2 = ((a*qm2+b)*qm2+c)*qm2+d;
642 #ifdef HYDR_DEVEL
643  DEBUGCOUT("JAC fa1: " << fa1 << std::endl);
644  DEBUGCOUT("JAC fa2: " << fa2 << std::endl);
645 #endif /* HYDR_DEVEL */
646  lack54 = -dCoef*(fa1*length/(6.*diameter*area*densityS))*fabs(-q2+2.*q1);
647  lack55 = dCoef*(fa2*length/(6.*diameter*area*densityE))*fabs(2.*q2-q1);
648  }
649  } else {
650  /*******************************************************
651  * moto di transizione turbolento-laminare (jacobiano)
652  ******************************************************/
653 #ifdef HYDR_DEVEL
654  DEBUGCOUT("Sono in transizione turb->lam" << std::endl);
655 #endif /* HYDR_DEVEL */
656 
657  if (Re > HF->dGetRe(HydraulicFluid::UPPER)*.775) {
658  /* uso lo jacobiano turbolento per la parte finale */
659  fa = .3164/pow(Re, .25);
660 
661  lack54 = -dCoef*(fa*kappa2/densityS)*fabs(-q2+2.*q1);
662  lack55 = dCoef*(fa*kappa2/densityE)*fabs(2.*q2-q1);
663 #ifdef HYDR_DEVEL
664  DEBUGCOUT("fa " << fa << std::endl);
665 #endif /* HYDR_DEVEL */
666  } else {
667 #ifdef HYDR_DEVEL
668  DEBUGCOUT("Jac turb->lam: TRATTO DI INTERPOLAZIONE"<< std::endl);
669 #endif /* HYDR_DEVEL */
671  doublereal c = -1.8e-5*dva;
672  doublereal dva2 = dva*dva;
673  doublereal b = 2.e-9*dva2;
674  doublereal dva3 = dva2*dva;
675  doublereal a = 9.e-13*dva3;
676  doublereal d = .0528;
677 
678  doublereal qm1 = fabs(q1);
679  doublereal qm2 = fabs(q2);
680 
681  doublereal fa1 = ((a*qm1+b)*qm1+c)*qm1+d;
682  doublereal fa2 = ((a*qm2+b)*qm2+c)*qm2+d;
683 #ifdef HYDR_DEVEL
684  DEBUGCOUT("JAC fa1: " << fa1 << std::endl);
685  DEBUGCOUT("JAC fa2: " << fa2 << std::endl);
686 #endif /* HYDR_DEVEL */
687  lack54 = -dCoef*(fa1*length/(6.*diameter*area*densityS))*fabs(-q2+2.*q1);
688  lack55 = dCoef*(fa2*length/(6.*diameter*area*densityE))*fabs(2.*q2-q1);
689  }
690  }
691  }
692 
693  Jac54 += lack54;
694  Jac55 += lack55;
695 
696 #ifdef HYDR_DEVEL
697  DEBUGCOUT("JAC Re: " << Re << std::endl);
698  DEBUGCOUT("JAC density: " << HF->dGetDensity() << std::endl);
699  DEBUGCOUT("JAC p1: " << p1 << std::endl);
700  DEBUGCOUT("JAC p2: " << p2 << std::endl);
701  DEBUGCOUT("JAC q1: " << q1 << std::endl);
702  DEBUGCOUT("JAC q2: " << q2 << std::endl);
703  doublereal q1p = XPrimeCurr(iFirstIndex+2); /* derivata q nodo 1 */
704  doublereal q2p = XPrimeCurr(iFirstIndex+3); /* derivata q nodo 2 */
705  DEBUGCOUT("JAC q1p: " << q1p << std::endl);
706  DEBUGCOUT("JAC q2p: " << q2p << std::endl);
707  DEBUGCOUT("JAC length: " << length << std::endl);
708  DEBUGCOUT("JAC diameter: " << diameter << std::endl);
709  DEBUGCOUT("JAC viscosity: " << viscosity << std::endl);
710  DEBUGCOUT("JAC turbulent: " << turbulent << std::endl);
711  DEBUGCOUT("JAC Jac14: " << Jac14 << std::endl);
712  DEBUGCOUT("JAC Jac25: " << Jac25 << std::endl);
713  DEBUGCOUT("JAC Jac31: " << Jac31 << std::endl);
714  DEBUGCOUT("JAC Jac32: " << Jac32 << std::endl);
715  DEBUGCOUT("JAC Jac33: " << Jac33 << std::endl);
716  DEBUGCOUT("JAC Jac43: " << Jac43 << std::endl);
717  DEBUGCOUT("JAC Jac44: " << Jac44 << std::endl);
718  DEBUGCOUT("JAC Jac45: " << Jac45 << std::endl);
719  DEBUGCOUT("JAC Jac51: " << Jac51 << std::endl);
720  DEBUGCOUT("JAC Jac52: " << Jac52 << std::endl);
721  DEBUGCOUT("JAC Jac54: " << Jac54 << std::endl);
722  DEBUGCOUT("JAC Jac55: " << Jac55 << std::endl);
723 #endif /* HYDR_DEVEL */
724 
725  WM.PutCoef(1, 4, Jac14);
726  WM.PutCoef(2, 5, Jac25);
727  WM.PutCoef(3, 1, Jac31);
728  WM.PutCoef(3, 2, Jac32);
729  WM.PutCoef(3, 3, Jac33);
730  WM.PutCoef(4, 3, Jac43);
731  WM.PutCoef(4, 4, Jac44);
732  WM.PutCoef(4, 5, Jac45);
733  WM.PutCoef(5, 1, Jac51);
734  WM.PutCoef(5, 2, Jac52);
735  WM.PutCoef(5, 4, Jac54);
736  WM.PutCoef(5, 5, Jac55);
737 
738  return WorkMat;
739 }
doublereal length
Definition: pipe.h:123
const PressureNode * pNode1
Definition: pipe.h:119
void PutColIndex(integer iSubCol, integer iCol)
Definition: submat.h:325
GradientExpression< BinaryExpr< FuncPow, LhsExpr, RhsExpr > > pow(const GradientExpression< LhsExpr > &u, const GradientExpression< RhsExpr > &v)
Definition: gradient.h:2961
virtual doublereal dGetRe(Re which)
Definition: hfluid.h:95
FullSubMatrixHandler & SetFull(void)
Definition: submat.h:1168
virtual doublereal dGetDensityDPres(void) const =0
doublereal diameter
Definition: pipe.h:121
doublereal fa
Definition: pipe.h:143
void PutCoef(integer iRow, integer iCol, const doublereal &dCoef)
Definition: submat.h:672
GradientExpression< UnaryExpr< FuncFabs, Expr > > fabs(const GradientExpression< Expr > &u)
Definition: gradient.h:2973
virtual doublereal dGetDensity(void) const =0
virtual const doublereal & dGetX(void) const
Definition: node.h:492
doublereal area
Definition: pipe.h:122
HydraulicFluid * HF
Definition: preselem.h:79
#define DEBUGCOUT(msg)
Definition: myassert.h:232
virtual integer iGetFirstRowIndex(void) const
Definition: node.cc:82
doublereal klam
Definition: pipe.h:131
flag turbulent
Definition: pipe.h:124
doublereal Re
Definition: pipe.h:129
doublereal viscosity
Definition: pipe.h:138
const PressureNode * pNode2
Definition: pipe.h:120
virtual void ResizeReset(integer, integer)
Definition: submat.cc:182
static std::stack< cleanup * > c
Definition: cleanup.cc:59
void PutRowIndex(integer iSubRow, integer iRow)
Definition: submat.h:311
doublereal densityDPres
Definition: pipe.h:136
static const doublereal a
Definition: hfluid_.h:289
virtual integer iGetFirstIndex(void) const
Definition: dofown.h:127
double doublereal
Definition: colamd.c:52
long int integer
Definition: colamd.c:51
virtual integer iGetFirstColIndex(void) const
Definition: node.cc:88

Here is the call graph for this function:

SubVectorHandler & Dynamic_pipe::AssRes ( SubVectorHandler WorkVec,
doublereal  dCoef,
const VectorHandler XCurr,
const VectorHandler XPrimeCurr 
)
virtual

Implements Elem.

Definition at line 743 of file pipe.cc.

References a, area, c, copysign(), DEBUGCOUT, densityDPres, densityEn, densityMe, densitySt, HydraulicFluid::dGetDensity(), HydraulicFluid::dGetDensityDPres(), HydraulicFluid::dGetRe(), HydraulicFluid::dGetViscosity(), ScalarAlgebraicNode::dGetX(), diameter, grad::fabs(), flow1, flow2, HydraulicElem::HF, DofOwnerOwner::iGetFirstIndex(), Node::iGetFirstRowIndex(), klam, ktrb, length, HydraulicFluid::LOWER, pNode1, pNode2, grad::pow(), pp, SubVectorHandler::PutItem(), Re, VectorHandler::Resize(), grad::sqrt(), turbulent, HydraulicFluid::UPPER, VelE, VelM, VelS, and viscosity.

747 {
748  DEBUGCOUT("Entering Dynamic_pipe::AssRes()" << std::endl);
749  WorkVec.Resize(5);
750 
751  integer iNode1RowIndex = pNode1->iGetFirstRowIndex()+1;
752  integer iNode2RowIndex = pNode2->iGetFirstRowIndex()+1;
753 
754  doublereal p1 = pNode1->dGetX();
755  doublereal p2 = pNode2->dGetX();
756  integer iFirstIndex = iGetFirstIndex();
757 
758  doublereal pr = XCurr(iFirstIndex+1); /* pressione */
759  doublereal prp = XPrimeCurr(iFirstIndex+1); /* derivata pressione */
760 
761  doublereal q1 = XCurr(iFirstIndex+2); /* portata nodo 1 */
762  doublereal q2 = XCurr(iFirstIndex+3); /* portata nodo 2 */
763  doublereal q1p = XPrimeCurr(iFirstIndex+2); /* derivata portata nodo 1 */
764  doublereal q2p = XPrimeCurr(iFirstIndex+3); /* derivata portata nodo 2 */
765 
766  flow1 = q1; /* per l'output */
767  flow2 = q2; /* per l'output */
768  pp = prp; /* per l'output */
769 
770  doublereal densityS = HF->dGetDensity(p1); /* densita' all'inizio del tubo */
771  doublereal densityE = HF->dGetDensity(p2); /* densita' alla fine del nodo */
772  doublereal densityM = HF->dGetDensity(pr); /* densita' a meta' tubo */
773 
774 
775  densitySt = densityS; /* per l'output */
776  densityEn = densityE; /* per l'output */
777  densityMe = densityM; /* per l'output */
778 
781 
783 
784  const doublereal x1 = -1./(sqrt(3.));
785  const doublereal x2 = -x1;
786  doublereal Qx1 = (q1+q2)*x1-q1+q2;
787  doublereal Qx2 = (q1+q2)*x2-q1+q2;
788 
789  doublereal densityx1 = HF->dGetDensity(.5*(p2-p1)*x1+pr);
790  doublereal densityx2 = HF->dGetDensity(.5*(p2-p1)*x2+pr);
791 
792  doublereal Res_1 = -q1;
793  doublereal Res_2 = -q2;
794  doublereal Res_3 = .5*(p1+p2)-pr;
795  doublereal Res_4 = -q2-q1-kappa1*prp;
796  doublereal Res_5 = (length/2.)*(q1p-q2p)+q1*q1/(area*densityS)-q2*q2/(area*densityE)+area*(p1-p2);
797  doublereal lack;
798 
799  if (Re < HF->dGetRe(HydraulicFluid::LOWER)) {
800 #ifdef HYDR_DEVEL
801  DEBUGCOUT("SONO IN LAMINARE" << std::endl);
802 #endif /* HYDR_DEVEL */
803  lack = -klam*(Qx1/densityx1+Qx2/densityx2);
804 
805  } else if (Re > HF->dGetRe(HydraulicFluid::UPPER)) {
806 #ifdef HYDR_DEVEL
807  DEBUGCOUT("SONO IN TURBOLENTO" << std::endl);
808 #endif /* HYDR_DEVEL */
809  const doublereal espo = 7./4.;
810 
811  lack = -ktrb*(copysign(pow(.5*fabs(Qx1), espo)/densityx1, Qx1)
812  +copysign(pow(.5*fabs(Qx2), espo)/densityx2, Qx2));
813 #ifdef HYDR_DEVEL
814  DEBUGCOUT("SONO IN TURBOLENTO lack: " << lack << std::endl);
815  DEBUGCOUT("SONO IN TURBOLENTO Qx1: " << Qx1 << std::endl);
816  DEBUGCOUT("SONO IN TURBOLENTO Qx2: " << Qx2 << std::endl);
817 #endif /* HYDR_DEVEL */
818  } else {
819  /*********************************
820  * moto di transizione (residuo)
821  ********************************/
822 #ifdef HYDR_DEVEL
823  DEBUGCOUT("SONO IN TRANSIZIONE" << std::endl);
824  DEBUGCOUT("Re: " << Re << std::endl);
825 #endif /* HYDR_DEVEL */
826  if (turbulent == 0) {
827  /****************************************************
828  * moto di transizione laminare-turbolento (residuo)
829  ***************************************************/
830 #ifdef HYDR_DEVEL
831  DEBUGCOUT("SONO IN TRANSIZIONE lam->turb" << std::endl);
832 #endif /* HYDR_DEVEL */
833  if (Re < HF->dGetRe(HydraulicFluid::LOWER)*1.25) {
834  /* uso il residuo laminare */
835  lack = -klam*(Qx1/densityx1+Qx2/densityx2);
836 #ifdef HYDR_DEVEL
837  DEBUGCOUT("RES lam->turb: TRATTO 64/RE" << std::endl);
838 #endif /* HYDR_DEVEL */
839  } else {
840 #ifdef HYDR_DEVEL
841  DEBUGCOUT("RES lam->turb: TRATTO DI INTERPOLAZIONE"<< std::endl);
842 #endif /* HYDR_DEVEL */
844  doublereal c = -1.8e-5*dva;
845  doublereal dva2 = dva*dva;
846  doublereal b = 8.e-10*dva2;
847  doublereal dva3 = dva2*dva;
848  doublereal a = 7.e-13*dva3;
849  doublereal d = .0542;
850 
851  doublereal qx1 = fabs(-q1+((q2+q1)/length)*x1); /* usata solo per calcolare il giusto fa in x1 */
852  doublereal qx2 = fabs(-q1+((q2+q1)/length)*x2); /* usata solo per calcolare il giusto fa in x2 */
853  doublereal fax1 = ((a*qx1+b)*qx1+c)*qx1+d;
854  doublereal fax2 = ((a*qx2+b)*qx2+c)*qx2+d;
855 
856  doublereal kappa3 = length/(16.*diameter*area);
857 #ifdef HYDR_DEVEL
858  DEBUGCOUT("RES lam->turb fax1: " << fax1 << std::endl);
859  DEBUGCOUT("RES lam->turb fax2: " << fax2 << std::endl);
860 #endif /* HYDR_DEVEL */
861  lack = -kappa3*(fax1*copysign(Qx1*Qx1, Qx1)/densityx1
862  +fax2*copysign(Qx2*Qx2, Qx2)/densityx2);
863  }
864  } else {
865  /****************************************************
866  * moto di transizione turbolento-laminare (residuo)
867  ***************************************************/
868 #ifdef HYDR_DEVEL
869  DEBUGCOUT("SONO IN TRANSIZIONE turb->lam" << std::endl);
870 #endif /* HYDR_DEVEL */
871  if (Re > HF->dGetRe(HydraulicFluid::UPPER)*.775) {
872  /* utilizzo il residuo turbolento */
873  const doublereal espo = 7./4.;
874 
875  lack = -ktrb*(copysign(pow(.5*fabs(Qx1), espo)/densityx1, Qx1)
876  +copysign(pow(.5*fabs(Qx2), espo)/densityx2, Qx2));
877 
878  /* DEBUGCOUT("RES turb->lam: TRATTO 0.3164/Re^0.25" << std::endl); */
879  } else {
880 #ifdef HYDR_DEVEL
881  DEBUGCOUT("RES turb->lam:TRATTO DI INTERPOLAZIONE" << std::endl);
882 #endif /* HYDR_DEVEL */
884  doublereal c = -1.8e-5*dva;
885  doublereal dva2 = dva*dva;
886  doublereal b = 2.e-9*dva2;
887  doublereal dva3 = dva2*dva;
888  doublereal a = 9.e-13*dva3;
889  doublereal d = .0528;
890 
891  doublereal qx1 = fabs(-q1+((q2+q1)/length)*x1); /* usata solo per calcolare il giusto fa in x1 */
892  doublereal qx2 = fabs(-q1+((q2+q1)/length)*x2); /* usata solo per calcolare il giusto fa in x2 */
893  doublereal fax1 = ((a*qx1+b)*qx1+c)*qx1+d;
894  doublereal fax2 = ((a*qx2+b)*qx2+c)*qx2+d;
895 #ifdef HYDR_DEVEL
896  DEBUGCOUT("RES turb->lam fax1: " << fax1 << std::endl);
897  DEBUGCOUT("RES turb->lam fax2: " << fax2 << std::endl);
898 #endif /* HYDR_DEVEL */
899  doublereal kappa3 = length/(16.*diameter*area);
900 
901  lack = -kappa3*(fax1*copysign(Qx1*Qx1, Qx1)/densityx1
902  +fax2*copysign(Qx2*Qx2, Qx2)/densityx2);
903  }
904  }
905  }
906 
907  Res_5 += lack; /* aggiungo la parte dovuta all'attrito */
908  VelS = -q1/(area*densityS); /* velocita' inizio */
909  VelM = ((-q1+q2)/2.)/(area*densityM); /* velocita' media */
910  VelE = q2/(area*densityE); /* velocita' fine */
911  Re = densityM*fabs(VelM)*diameter/viscosity; /* numero di Reynolds medio */
912 
913 #ifdef HYDR_DEVEL
914  DEBUGCOUT("RES density: " << HF->dGetDensity() << std::endl);
915  DEBUGCOUT("RES densityS: " << densityS << std::endl);
916  DEBUGCOUT("RES densityM: " << densityM << std::endl);
917  DEBUGCOUT("RES densityE: " << densityE << std::endl);
918  DEBUGCOUT("RES p1 : " << p1 << std::endl);
919  DEBUGCOUT("RES p2 : " << p2 << std::endl);
920  DEBUGCOUT("RES pr : " << pr << std::endl);
921  DEBUGCOUT("RES prp: " << prp << std::endl);
922  DEBUGCOUT("RES q1: " << q1 << std::endl);
923  DEBUGCOUT("RES q2: " << q2 << std::endl);
924  DEBUGCOUT("RES q1p: " << q1p << std::endl);
925  DEBUGCOUT("RES q2p: " << q2p << std::endl);
926  DEBUGCOUT("RES length: " << length << std::endl);
927  DEBUGCOUT("RES diameter: " << diameter << std::endl);
928  DEBUGCOUT("RES viscosity: " << viscosity << std::endl);
929  DEBUGCOUT("RES area: " << area << std::endl);
930  DEBUGCOUT("RES Re: " << Re << std::endl);
931  DEBUGCOUT("***********************************************"<< std::endl);
932  DEBUGCOUT("RES velocita' Start: " << VelS << std::endl);
933  DEBUGCOUT("RES velocita' Middle: " << VelM << std::endl);
934  DEBUGCOUT("RES velocita' End: " << VelE << std::endl);
935  DEBUGCOUT(" se positiva il fluido va dal nodo 1 al nodo 2 " << std::endl);
936  DEBUGCOUT("***********************************************"<< std::endl);
937  DEBUGCOUT("RES Res_1: " << Res_1 << std::endl);
938  DEBUGCOUT("RES Res_2: " << Res_2 << std::endl);
939  DEBUGCOUT("RES Res_3: " << Res_3 << std::endl);
940  DEBUGCOUT("RES Res_4: " << Res_4 << std::endl);
941  DEBUGCOUT("RES Res_5: " << Res_5 << std::endl);
942 #endif /* HYDR_DEVEL */
943 
944  WorkVec.PutItem(1, iNode1RowIndex, Res_1);
945  WorkVec.PutItem(2, iNode2RowIndex, Res_2);
946  WorkVec.PutItem(3, iFirstIndex+1, Res_3);
947  WorkVec.PutItem(4, iFirstIndex+2, Res_4);
948  WorkVec.PutItem(5, iFirstIndex+3, Res_5);
949 
950  return WorkVec;
951 }
doublereal length
Definition: pipe.h:123
const PressureNode * pNode1
Definition: pipe.h:119
doublereal VelE
Definition: pipe.h:142
GradientExpression< BinaryExpr< FuncPow, LhsExpr, RhsExpr > > pow(const GradientExpression< LhsExpr > &u, const GradientExpression< RhsExpr > &v)
Definition: gradient.h:2961
doublereal densityEn
Definition: pipe.h:135
virtual doublereal dGetRe(Re which)
Definition: hfluid.h:95
virtual doublereal dGetDensityDPres(void) const =0
doublereal diameter
Definition: pipe.h:121
GradientExpression< UnaryExpr< FuncFabs, Expr > > fabs(const GradientExpression< Expr > &u)
Definition: gradient.h:2973
virtual void PutItem(integer iSubRow, integer iRow, const doublereal &dCoef)
Definition: submat.h:1445
virtual doublereal dGetDensity(void) const =0
virtual const doublereal & dGetX(void) const
Definition: node.h:492
doublereal area
Definition: pipe.h:122
HydraulicFluid * HF
Definition: preselem.h:79
doublereal copysign(doublereal x, doublereal y)
Definition: gradient.h:97
doublereal VelM
Definition: pipe.h:141
#define DEBUGCOUT(msg)
Definition: myassert.h:232
virtual integer iGetFirstRowIndex(void) const
Definition: node.cc:82
doublereal klam
Definition: pipe.h:131
flag turbulent
Definition: pipe.h:124
doublereal Re
Definition: pipe.h:129
doublereal densitySt
Definition: pipe.h:133
doublereal viscosity
Definition: pipe.h:138
virtual doublereal dGetViscosity(void) const =0
const PressureNode * pNode2
Definition: pipe.h:120
GradientExpression< UnaryExpr< FuncSqrt, Expr > > sqrt(const GradientExpression< Expr > &u)
Definition: gradient.h:2974
doublereal pp
Definition: pipe.h:145
static std::stack< cleanup * > c
Definition: cleanup.cc:59
doublereal flow1
Definition: pipe.h:127
doublereal densityDPres
Definition: pipe.h:136
doublereal densityMe
Definition: pipe.h:134
doublereal flow2
Definition: pipe.h:128
static const doublereal a
Definition: hfluid_.h:289
virtual integer iGetFirstIndex(void) const
Definition: dofown.h:127
doublereal VelS
Definition: pipe.h:140
double doublereal
Definition: colamd.c:52
long int integer
Definition: colamd.c:51
doublereal ktrb
Definition: pipe.h:130
virtual void Resize(integer iNewSize)=0

Here is the call graph for this function:

virtual void Dynamic_pipe::GetConnectedNodes ( std::vector< const Node * > &  connectedNodes) const
inlinevirtual

Reimplemented from Elem.

Definition at line 188 of file pipe.h.

References pNode1, and pNode2.

188  {
189  connectedNodes.resize(2);
190  connectedNodes[0] = pNode1;
191  connectedNodes[1] = pNode2;
192  };
const PressureNode * pNode1
Definition: pipe.h:119
const PressureNode * pNode2
Definition: pipe.h:120
DofOrder::Order Dynamic_pipe::GetDofType ( unsigned int  i) const
virtual

Reimplemented from Elem.

Definition at line 518 of file pipe.cc.

References ASSERT, and DofOrder::DIFFERENTIAL.

519 {
520  ASSERT(i >= 0 && i <= 2);
521  return DofOrder::DIFFERENTIAL;
522 }
#define ASSERT(expression)
Definition: colamd.c:977
HydraulicElem::Type Dynamic_pipe::GetHydraulicType ( void  ) const
virtual

Implements HydraulicElem.

Definition at line 502 of file pipe.cc.

References HydraulicElem::DYNAMIC_PIPE.

unsigned int Dynamic_pipe::iGetNumDof ( void  ) const
virtual

Reimplemented from Elem.

Definition at line 512 of file pipe.cc.

513 {
514  return 3;
515 }
void Dynamic_pipe::Output ( OutputHandler OH) const
virtual

Reimplemented from ToBeOutput.

Definition at line 968 of file pipe.cc.

References ToBeOutput::bToBeOutput(), densityEn, densityMe, densitySt, flow1, flow2, WithLabel::GetLabel(), OutputHandler::Hydraulic(), pp, Re, VelE, VelM, and VelS.

969 {
970  if (bToBeOutput()) {
971  std::ostream& out = OH.Hydraulic();
972  out
973  << std::setw(8) << GetLabel()
974  << " " << Re << " " << -flow1 << " " << flow2
975  << " " << densitySt << " " << densityMe << " " << densityEn
976  << " " << VelS << " " << VelM << " " << VelE
977  << " " << pp
978  << std::endl;
979  }
980 }
doublereal VelE
Definition: pipe.h:142
virtual bool bToBeOutput(void) const
Definition: output.cc:890
doublereal densityEn
Definition: pipe.h:135
doublereal VelM
Definition: pipe.h:141
doublereal Re
Definition: pipe.h:129
doublereal densitySt
Definition: pipe.h:133
doublereal pp
Definition: pipe.h:145
doublereal flow1
Definition: pipe.h:127
doublereal densityMe
Definition: pipe.h:134
doublereal flow2
Definition: pipe.h:128
std::ostream & Hydraulic(void) const
Definition: output.h:492
doublereal VelS
Definition: pipe.h:140
unsigned int GetLabel(void) const
Definition: withlab.cc:62

Here is the call graph for this function:

std::ostream & Dynamic_pipe::Restart ( std::ostream &  out) const
virtual

Implements Elem.

Definition at line 507 of file pipe.cc.

508 {
509  return out << "Pipe not implemented yet!" << std::endl;
510 }
void Dynamic_pipe::SetValue ( DataManager pDM,
VectorHandler X,
VectorHandler XP,
SimulationEntity::Hints ph = 0 
)
virtual

Reimplemented from SimulationEntity.

Definition at line 983 of file pipe.cc.

References ScalarAlgebraicNode::dGetX(), DofOwnerOwner::iGetFirstIndex(), pNode1, pNode2, VectorHandler::PutCoef(), and q0.

986 {
987  integer i = iGetFirstIndex();
988 
989  doublereal p1 = pNode1->dGetX();
990  doublereal p2 = pNode2->dGetX();
991 
992  X.PutCoef(i+1, .5*(p1+p2));
993  X.PutCoef(i+2, q0);
994  X.PutCoef(i+3, -q0);
995 
996  XP.PutCoef(i+1, 0.);
997  XP.PutCoef(i+2, 0.);
998  XP.PutCoef(i+3, 0.);
999 }
const PressureNode * pNode1
Definition: pipe.h:119
virtual const doublereal & dGetX(void) const
Definition: node.h:492
const PressureNode * pNode2
Definition: pipe.h:120
virtual void PutCoef(integer iRow, const doublereal &dCoef)=0
doublereal q0
Definition: pipe.h:125
virtual integer iGetFirstIndex(void) const
Definition: dofown.h:127
double doublereal
Definition: colamd.c:52
long int integer
Definition: colamd.c:51

Here is the call graph for this function:

void Dynamic_pipe::WorkSpaceDim ( integer piNumRows,
integer piNumCols 
) const
virtual

Implements Elem.

Definition at line 525 of file pipe.cc.

526 {
527  *piNumRows = 5;
528  *piNumCols = 5;
529 }

Member Data Documentation

doublereal Dynamic_pipe::area
private

Definition at line 122 of file pipe.h.

Referenced by AssJac(), AssRes(), and Dynamic_pipe().

doublereal Dynamic_pipe::densityDPres
private

Definition at line 136 of file pipe.h.

Referenced by AssJac(), and AssRes().

doublereal Dynamic_pipe::densityEn
private

Definition at line 135 of file pipe.h.

Referenced by AssRes(), and Output().

doublereal Dynamic_pipe::densityMe
private

Definition at line 134 of file pipe.h.

Referenced by AssRes(), and Output().

doublereal Dynamic_pipe::densitySt
private

Definition at line 133 of file pipe.h.

Referenced by AssRes(), and Output().

doublereal Dynamic_pipe::diameter
private

Definition at line 121 of file pipe.h.

Referenced by AssJac(), AssRes(), and Dynamic_pipe().

doublereal Dynamic_pipe::fa
private

Definition at line 143 of file pipe.h.

Referenced by AssJac().

doublereal Dynamic_pipe::flow1
private

Definition at line 127 of file pipe.h.

Referenced by AssRes(), and Output().

doublereal Dynamic_pipe::flow2
private

Definition at line 128 of file pipe.h.

Referenced by AssRes(), and Output().

doublereal Dynamic_pipe::klam
private

Definition at line 131 of file pipe.h.

Referenced by AssJac(), AssRes(), and Dynamic_pipe().

doublereal Dynamic_pipe::ktra
private

Definition at line 132 of file pipe.h.

Referenced by Dynamic_pipe().

doublereal Dynamic_pipe::ktrb
private

Definition at line 130 of file pipe.h.

Referenced by AssRes(), and Dynamic_pipe().

doublereal Dynamic_pipe::length
private

Definition at line 123 of file pipe.h.

Referenced by AssJac(), AssRes(), and Dynamic_pipe().

const PressureNode* Dynamic_pipe::pNode1
private

Definition at line 119 of file pipe.h.

Referenced by AssJac(), AssRes(), Dynamic_pipe(), GetConnectedNodes(), and SetValue().

const PressureNode* Dynamic_pipe::pNode2
private

Definition at line 120 of file pipe.h.

Referenced by AssJac(), AssRes(), Dynamic_pipe(), GetConnectedNodes(), and SetValue().

doublereal Dynamic_pipe::pp
private

Definition at line 145 of file pipe.h.

Referenced by AssRes(), and Output().

doublereal Dynamic_pipe::q0
private

Definition at line 125 of file pipe.h.

Referenced by SetValue().

doublereal Dynamic_pipe::Re
private

Definition at line 129 of file pipe.h.

Referenced by AfterConvergence(), AssJac(), AssRes(), and Output().

flag Dynamic_pipe::turbulent
private

Definition at line 124 of file pipe.h.

Referenced by AfterConvergence(), AssJac(), and AssRes().

doublereal Dynamic_pipe::VelE
private

Definition at line 142 of file pipe.h.

Referenced by AssRes(), and Output().

doublereal Dynamic_pipe::VelM
private

Definition at line 141 of file pipe.h.

Referenced by AssRes(), and Output().

doublereal Dynamic_pipe::VelS
private

Definition at line 140 of file pipe.h.

Referenced by AssRes(), and Output().

doublereal Dynamic_pipe::viscosity
private

Definition at line 138 of file pipe.h.

Referenced by AssJac(), AssRes(), and Dynamic_pipe().


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