Itasca C++ Interface
imoduleccfd.h
Go to the documentation of this file.
1 #pragma once
8 // imoduleccfd.h
9 // For CCFD Module
10 #include "base/src/farray.h"
11 
12 namespace itasca {
13  class IContainer;
14 }
15 
17 namespace ccfd {
18  using namespace itasca;
19  class ICcfdElement;
22 
24  class IModuleCCFD {
25  public:
26  virtual TType getElementFluidType() const =0;
27  virtual const ICcfdElement * findElementFluidWithID(uint64 id) const =0;
28  virtual ICcfdElement * findElementFluidWithID(uint64 id) =0;
29 
30  virtual int getNumberOfElements() const =0;
31  virtual int getElementNode(int element, int node) const =0;
32  virtual int getElementFaces() const =0; // number of faces in an element
33  virtual int getElementNodes() const =0;
34  virtual const ICcfdElement * getICcfdElement(int i) const =0;
35  virtual const char * getCcfdElementType() const =0;
36  virtual int getElementNodeGlobalAddress(int e, int n) const =0;
37  virtual const IContainer *getIContainerElement() const = 0;
38  virtual IContainer * getIContainerElement() = 0;
39  virtual uint32 getElementCyclingNotice() const = 0;
40  virtual uint32 getElementGeometryNotice() const = 0;
41  virtual uint32 getElementExtraNotice() const = 0;
42  virtual uint32 getElementGroupNotice() const = 0;
43  virtual uint32 getCCFDCleanNotice() const = 0;
44  virtual void createMesh(const QList<double> &nlist, const QList<qint64> &elist)=0;
45 
46  // Populates sets of property names based on their type including the relevant notices
47  virtual void populateElementAttributeSets(QStringList *scalarAtts,FArray<uint32> *scalarNotices,QStringList *stringAtts,FArray<uint32> *stringNotices,QStringList *vectorAtts,FArray<uint32> *vectorNotices)const=0;
48 
49  //elements in a box
50  virtual void getElementsInBoxList(const DExtent &d,FArray<ICcfdElement *> *ret,bool intersect=true)=0;
51  virtual void getElementsInBoxList(const DExtent &d,FArray<const ICcfdElement *> *ret,bool intersect=true)=0;
52  virtual const ICcfdElement * findElementClosestTo(const DVect &v,const double &radius=limits<double>::max()) const=0;
53  virtual ICcfdElement * findElementClosestTo(const DVect &v,const double &radius=limits<double>::max())=0;
55 
56 
57  };
58 
59 } // namespace ccfd
60 // EoF
An array class that attempts to minimize unnecessary heap access.
Definition: farray.h:25
Definition: idef.h:50
Definition: iccfdelement.h:17
Interface for the PFC ccfd module.
Definition: imoduleccfd.h:24
Interface for containers of IThings.
Definition: icontainer.h:21
debug checked shorthand for std::numeric_limits<T>::
Definition: limit.h:25
An array class that attempts to minimize unnecessary heap access.
uint32 TType
class type indicator
Definition: basedef.h:46
DExtent3 DExtent
A DExtent2 in 2D, a DExtent3 in 3D.
Definition: dim.h:156
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:150
ccfd namespace
Definition: iballfluid.h:19
namespace Itasca
Definition: basememory.cpp:10