Itasca C++ Interface
Loading...
Searching...
No Matches
icontactfluid.h
1#pragma once
2// icontactfluid.h
3
4namespace itasca {
5 class IThing;
6}
7
8namespace itascaxd {
9 using namespace itasca;
10
11 class IContact;
12 class IContactModel;
13 class IContactModelFluid;
14 class IContactMechanical;
15 class IPiece;
16 class IPieceFluid;
17
18 class IContactFluid { // Fluid Contacts may exist between two IPieceFluid objects
19 public:
20 inline static const TType type_ = 0x65525faf;
21
22 virtual const IThing* getIThing() const = 0;
23 virtual IThing* getIThing() = 0;
24 virtual const IContact* getContact() const = 0;
25 virtual IContact* getContact() = 0;
26 virtual const IContactMechanical* getContactMechanical() const = 0;
27 virtual IContactMechanical* getContactMechanical() = 0;
28 virtual const IContactFluid* getContactFluid() const = 0;
29 virtual IContactFluid* getContactFluid() = 0;
30 virtual const IPiece* getEnd1() const = 0;
31 virtual IPiece* getEnd1() = 0;
32 virtual const IPiece* getEnd2() const = 0;
33 virtual IPiece* getEnd2() = 0;
34 virtual const IPieceFluid* getEnd1Fluid() const = 0;
35 virtual IPieceFluid* getEnd1Fluid() = 0;
36 virtual const IPieceFluid* getEnd2Fluid() const = 0;
37 virtual IPieceFluid* getEnd2Fluid() = 0;
38 // Return fluid contact model present at this mechanical contact
39 virtual const IContactModel* getModel() const = 0;
40 virtual IContactModel* getModel() = 0;
41 virtual QString getModelName() const = 0;
42 // Assigns a clone of fluid CM passed in arguments, and copies its properties.
43 virtual IContactModel* setModel(const IContactModel* toClone, bool validate = true) = 0;
44 // Assigns fluid contact model based on a name.
45 virtual IContactModel* setModelName(const QString& name) = 0;
46
47 virtual void setPorePressure(const double& d) =0;
48 virtual double getPorePressure() const =0;
49 virtual void setHydrostaticPressure(const double& d) =0;
50 virtual double getHydrostaticPressure() const =0;
51 virtual double getPressureHead() const =0;
52 virtual void setPressureFixity(const bool& b) =0;
53 virtual bool getPressureFixity() const =0;
54 virtual DVect2 getFlowRateQi() const =0; // see flowRateQi_
55 virtual void setFlowRateQs(const double& d) =0; // see flowRateQs_
56 virtual double getFlowRateQs() const =0;
57 virtual double getFlowRateQr() const =0; // see flowRateQr_
58 virtual double getFlowRateSum() const =0;
59 virtual void setAccumVolume(const double& d, bool external) =0;
60 virtual DVect2 getAccumVolume() const =0; // see accumVolume_
61 virtual DVect2 getLength_li() const =0; // see length_li_
62 virtual void setAreaPipe(const double& d) =0;
63 virtual double getAreaPipe() const =0;
64 virtual double getAreaContact() const =0;
65 virtual double getVolumeMaterial() const =0;
66 virtual DVect getTotalForceGbl() const =0;
67 virtual DVect getEffectiveForceGbl() const =0;
68 virtual DVect getFluidForceGbl() const =0;
69 virtual double getFluidForce() const =0;
70
71 // Fluid physics
72 virtual double getCritTS() const =0;
73 virtual void setPipeSegmentLengths() =0;
74 virtual void getAndSendConductivityTerms() =0;
75 virtual void updateFlowAndPressureAtKnot( double& timestep ) =0;
76 };
77}
Base class for items that will be stored in containers.
Definition ithing.h:30
Definition icontactfluid.h:18
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:154
namespace Itasca
Definition basememory.cpp:14
Itasca Library standard namespace, specific to 2D or 3D.
Definition icontactmodule.h:4