Itasca C++ Interface
icontactfluid.h
1 #pragma once
2 // icontactfluid.h
3 
4 namespace itascaxd {
5  using namespace itasca;
6 
7  class IContact;
8  class IContactMechanical;
9  class IContactModel;
10  class IContactModelFluid;
11  class IPiece;
12  class IPieceFluid;
13 
14  class IContactFluid {
15  public:
16  inline static const TType type_ = 0x65525faf;
17 
18  virtual const IThing* getIThing() const =0;
19  virtual IThing* getIThing() =0;
20  virtual const IContact* getContact() const =0;
21  virtual IContact* getContact() =0;
22  virtual const IContactMechanical* getContactMechanical() const =0;
23  virtual IContactMechanical* getContactMechanical() =0;
24  virtual const IContactFluid* getContactFluid() const =0;
25  virtual IContactFluid* getContactFluid() =0;
26  virtual const IPiece* getEnd1() const =0;
27  virtual IPiece* getEnd1() =0;
28  virtual const IPiece* getEnd2() const =0;
29  virtual IPiece* getEnd2() =0;
30  virtual const IPieceFluid* getEnd1Fluid() const =0;
31  virtual IPieceFluid* getEnd1Fluid() =0;
32  virtual const IPieceFluid* getEnd2Fluid() const =0;
33  virtual IPieceFluid* getEnd2Fluid() =0;
34  virtual const IContactModel* getModel() const =0;
35  virtual IContactModel* getModel() =0;
36  virtual QString getModelName() const =0;
37  virtual IContactModel* setModel(const IContactModel* toClone, bool validate = true) =0;
38  virtual IContactModel* setModelName(const QString& name) =0;
39 
40  virtual bool isInternal() const =0; // if not internal, then surface
41  virtual bool isNull() const =0;
42  virtual void setOpen(const bool& b) =0;
43  virtual bool isOpen() const =0;
44  virtual void setPressureFixed(const bool& b) =0;
45  virtual bool isPressureFixed() const =0;
46  virtual void setPorePressure(const double& d) =0;
47  virtual double getPorePressure() const =0;
48  virtual void setHydrostaticPressure(const double& d) =0;
49  virtual double getHydrostaticPressure() const =0;
50  virtual double getPressureHead() const =0;
51  virtual DVect2 getFlowRateQi() const =0; // see flowRateQi_
52  virtual void setFlowRateQs(const double& d) =0; // see flowRateQs_
53  virtual double getFlowRateQs() const =0;
54  virtual double getFlowRateQr() const =0; // see flowRateQr_
55  virtual double getFlowRateSum() const =0;
56  virtual void setAccumVolume(const double& d, bool external) =0;
57  virtual DVect2 getAccumVolume() const =0; // see accumVolume_
58  virtual DVect2 getLength_li() const =0; // see length_li_
59  virtual void setAreaPipe(const double& d) =0;
60  virtual double getAreaPipe() const =0;
61  virtual double getAreaContact() const =0;
62  virtual double getVolumeMaterial() const =0;
63  virtual DVect getTotalForceGbl() const =0;
64  virtual DVect getEffectiveForceGbl() const =0;
65  virtual DVect getPressureForceGbl() const =0;
66  virtual double getPressureForce() const =0;
67 
68  // Fluid physics
69  virtual double getCritTS() const =0;
70  virtual void setPipeSegmentLengths() =0;
71  virtual void getAndSendConductivityTerms() =0;
72  virtual void updateFlowAndPressureAtKnot( double& timestep ) =0;
73  };
74 }
Base class for items that will be stored in containers.
Definition: ithing.h:30
Definition: icontactfluid.h:14
Contact class.
Definition: icontact.h:33
ContactMechanical class.
Definition: icontactmechanical.h:37
Definition: ipiecefluid.h:13
Definition: ipiece.h:15
uint32 TType
class type indicator
Definition: basedef.h:46
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:150
namespace Itasca
Definition: basememory.cpp:10
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4