Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
imoduleccfd.h
Go to the documentation of this file.
1 #pragma once
2 
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 const TType getElementFluidType() const =0;
27  virtual const ICcfdElement * findElementFluidWithID(quint64 id) const =0;
28  virtual ICcfdElement * findElementFluidWithID(quint64 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 uint getElementCyclingNotice() const = 0;
40  virtual uint getElementGeometryNotice() const = 0;
41  virtual uint getElementExtraNotice() const = 0;
42  virtual uint getElementGroupNotice() const = 0;
43  virtual uint 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<uint> *scalarNotices,QStringList *stringAtts,FArray<uint> *stringNotices,QStringList *vectorAtts,FArray<uint> *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
namespace Itasca
Definition: basememory.cpp:9
ccfd namespace
Definition: iballfluid.h:19
An array class that attempts to minimize unnecessary heap access.
debug checked shorthand for std::numeric_limits<T>::
Definition: limit.h:25
unsigned int TType
class type indicator
Definition: basedef.h:41
Interface for the PFC ccfd module.
Definition: imoduleccfd.h:24
DExtent3 DExtent
A DExtent2 in 2D, a DExtent3 in 3D.
Definition: dim.h:149
An array class that attempts to minimize unnecessary heap access.
Definition: farray.h:27
Interface for containers of IThings.
Definition: icontainer.h:23
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:145
Definition: iccfdelement.h:17