Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
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 bool isNull() const =0;
48 virtual void setOpen(const bool& b) =0;
49 virtual bool getOpen() const =0;
50 virtual void setPressureFixed(const bool& b) =0;
51 virtual bool getPressureFixed() const =0;
52 virtual void setPorePressure(const double& d) =0;
53 virtual double getPorePressure() const =0;
54 virtual void setHydrostaticPressure(const double& d) =0;
55 virtual double getHydrostaticPressure() const =0;
56 virtual double getPressureHead() const =0;
57 virtual DVect2 getFlowRateQi() const =0; // see flowRateQi_
58 virtual void setFlowRateQs(const double& d) =0; // see flowRateQs_
59 virtual double getFlowRateQs() const =0;
60 virtual double getFlowRateQr() const =0; // see flowRateQr_
61 virtual double getFlowRateSum() const =0;
62 virtual void setAccumVolume(const double& d, bool external) =0;
63 virtual DVect2 getAccumVolume() const =0; // see accumVolume_
64 virtual DVect2 getLength_li() const =0; // see length_li_
65 virtual void setAreaPipe(const double& d) =0;
66 virtual double getAreaPipe() const =0;
67 virtual double getAreaContact() const =0;
68 virtual double getVolumeMaterial() const =0;
69 virtual DVect getTotalForceGbl() const =0;
70 virtual DVect getEffectiveForceGbl() const =0;
71 virtual DVect getPressureForceGbl() const =0;
72 virtual double getPressureForce() const =0;
73
74 // Fluid physics
75 virtual double getCritTS() const =0;
76 virtual void setPipeSegmentLengths() =0;
77 virtual void getAndSendConductivityTerms() =0;
78 virtual void updateFlowAndPressureAtKnot( double& timestep ) =0;
79 };
80}
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