Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
iccfdelement.h
1 #pragma once
2 // iccfdelement.h
3 #include "base/src/farray.h"
4 
5 namespace itasca {
6  class IThing;
7 }
8 
9 namespace itascaxd {
10  class IBody;
11 }
12 
13 namespace ccfd {
14  using namespace itasca;
15  using namespace itascaxd;
16 
17  class ICcfdElement {
18  public:
19  inline static const TType type_ = 0x4fe8e071;
20  virtual const IThing * getIThing() const = 0;
21  virtual IThing * getIThing() = 0;
22  virtual const IBody * getIBody() const = 0;
23  virtual IBody * getIBody() = 0;
24 
25  virtual int getNumberOfNodes() const = 0;
26  virtual int getNumberOfFaces() const = 0;
27  virtual DVect getDragForce() const = 0;
28  virtual void setDragForce(const DVect &v) = 0;
29  virtual double getPorosity() const = 0;
30  virtual void setPorosity(const double &) = 0;
31  virtual double getVolume() const = 0;
32  virtual void setVolume(const double &) = 0;
33  virtual DVect getFluidPressureGradient() const = 0;
34  virtual void setFluidPressureGradient(const DVect3 &) = 0;
35  virtual DVect getFluidVelocity() const = 0;
36  virtual void setFluidVelocity(const DVect3 &) = 0;
37  virtual const DVect & getOldFluidVelocity() const = 0;
38  virtual void setOldFluidVelocity(const DVect3 &) = 0;
39  virtual const DVect & getNode(int i) const = 0;
40  virtual DVect getCentroid() const = 0;
41  virtual double getFluidViscosity() const = 0;
42  virtual void setFluidViscosity(const double &) = 0;
43  virtual double getFluidDensity() const = 0;
44  virtual void setFluidDensity(const double &) = 0;
45  virtual double getFluidPressure() const = 0;
46  virtual void setFluidPressure(const double &) = 0;
47 
48  virtual int nNodesOnFace() const = 0;
49  virtual DVect faceNode(int face, int node) const = 0;
50  virtual const DVect & faceNodeAddress(int face, int node) const = 0;
51  virtual bool isExternalFace(int n) const = 0;
52  virtual ICcfdElement * adjacentToFace(int n) const = 0;
53  virtual void getFaceConnectedList(FArray<ICcfdElement*> *ret) const = 0;
54  virtual void getEdgeConnectedList(FArray<ICcfdElement*> *ret) const = 0;
55  virtual void getNodeConnectedList(FArray<ICcfdElement*> *ret) const = 0;
56  };
57 
58 } // namespace ccfd
59 // EoF
60 
namespace Itasca
Definition: basememory.cpp:9
Base class for items that will be stored in containers.
Definition: ithing.h:31
ccfd namespace
Definition: iballfluid.h:19
An array class that attempts to minimize unnecessary heap access.
unsigned int TType
class type indicator
Definition: basedef.h:41
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4
An array class that attempts to minimize unnecessary heap access.
Definition: farray.h:27
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:145
Definition: iccfdelement.h:17
Definition: ibody.h:20