Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
ibodylogic.h
1 //ibodylogic.h
2 #pragma once
3 
4 #include "module/interface/dim.h"
5 
6 namespace zone {
7  class IBodyLogic {
8  public:
9  virtual void computeBody() const=0;
10  virtual uint getBodyNotice() const=0;
11 
12  virtual DVect3 computeFaceGP(int fi, int g1, int g2) const=0;
13  virtual DVect3 computeWedgeFaceGP(int fi, double g1, double g2) const=0;
14  // virtual DVect3 computeFaceSubGP(int fi, int g1, int g2, int s1, int s2, int m1, int m2) const=0;
15  virtual DVect3 computeCellGP(int ci, int g1, int g2, int g3/*, int n1, int n2, int n3*/) const=0;
16 
17  virtual int getVertCount() const=0;
18  virtual int getEdgeCount() const=0;
19  virtual int getFaceCount() const=0;
20  virtual int getCellCount() const=0;
21  virtual int getDimCount() const=0;
22  virtual int getSizeCount() const=0;
23  virtual int getRatCount() const=0;
24  virtual bool isVertUsed(int vi) const=0;
25  virtual bool isEdgeUsed(int ei) const=0;
26  virtual bool isFaceUsed(int fi) const=0;
27  virtual bool isCellUsed(int ci) const=0;
28  virtual DVect getVertexPos(int vi)const =0;
29  virtual int getEdgeType(int ei) const=0; //0=linear, 1=arc
30  virtual int getEdgeVertexIndex1(int ei) const=0;
31  virtual int getEdgeVertexIndex2(int ei) const=0;
32  virtual int getEdgeArcDimIndex(int ei) const=0;
33  virtual int getEdgeArcCenterIndex(int ei) const=0;
34  virtual int getEdgeSizeIndex(int ei) const=0;
35  virtual int getEdgeRatioIndex(int ei) const=0;
36  virtual int getFaceVertexIndex(int fi,int n) const=0;
37  virtual int getFaceEdgeIndex(int fi,int n) const=0;
38  virtual int getFaceISizeValue(int fi) const=0;
39  virtual int getFaceJSizeValue(int fi) const=0;
40  virtual bool isFaceSimple(int fi) const=0;
41  virtual bool isFaceVisible(int fi) const=0;
42  virtual int getCellVertexIndex(int ci,int n) const=0; // n=0..7
43  virtual int getCellEdgeIndex(int ci,int n) const=0; // n=0..11
44  virtual int getCellFaceIndex(int ci,int n) const=0; // n=0..5
45  virtual bool isCellFilled(int ci) const=0;
46  virtual DVect getCellCenter(int ci) const=0;
47  // virtual int getCellMultI(int ci) const=0;
48  // virtual int getCellMultJ(int ci) const=0;
49  // virtual int getCellMultK(int ci) const=0;
50  virtual int getCellGroupIndex(int ci) const=0;
51  // virtual int getCellFaceMultI(int ci, int findex) const=0; // findex=0..5
52  // virtual int getCellFaceMultJ(int ci, int findex) const=0;
53  virtual int getCellForm(int ci) const=0;
54  virtual double getDimValue(int di) const=0;
55  virtual double getRatioValue(int ri) const=0;
56  virtual int getSizeValue(int ni) const=0;
57  virtual int getGroupSize() const=0;
58  virtual QString getGroupName(int gi) const=0;
59  virtual QString getName() const=0;
60  };
61 } // namespace zone
62 // EoF
DIM - Provides code portability between 2D and 3D codes.
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:145
Definition: ibodylogic.h:7