Itasca C++ Interface
ifacearray.h
Go to the documentation of this file.
1 #pragma once
2 // ifaceaarray.h
3 
10 #include "iblockdef.h"
11 #include "base/src/callback.h"
12 
13 namespace itasca
14 {
15  class IContainer;
16  class IThing;
17 }
18 
19 namespace block
20 {
21  using namespace itasca;
22 
23  class IFaceThing;
24  class IFaceData;
25 
29  class IFaceArray
30  {
31  public:
32 
34  virtual const IThing * getIThing() const=0;
36  virtual IThing * getIThing()=0;
38  virtual const IContainer * getIContainer() const=0;
40  virtual IContainer * getIContainer() =0;
42  virtual const IFaceThing * findFaceWithID(quint64 id) const=0;
44  virtual IFaceThing * findFaceWithID(quint64 id)=0;
46  virtual quint32 getFaceType() const=0;
48  virtual uint getFaceExtraNotice() const=0;
50  virtual uint getGroupNotice() const=0;
51 
52  virtual IFaceData* createIFaceData() const = 0;
53 
55  virtual void threadedCallbackObject(
57  void* v = nullptr, bool useThreads = true) const = 0;
58 
60  template <class S, void (S::*MFP)(const IFaceThing*, uint32, uint32, void*)>
61  void threadedCallbackMethod(S* s, void* v = nullptr, bool useThreads = true) const {
63  threadedCallbackObject(callback, v, useThreads);
64  }
65  };
66 
67 } // end namespace block
68 // EOF
Definition: callback.h:37
Definition: callback.h:130
Container to store FaceThings (zoned or triangulated block faces). ID of FaceThing is stored in offse...
Definition: ifacearray.h:30
virtual uint getFaceExtraNotice() const =0
Returns the tag for the face extra variable change notice.
virtual void threadedCallbackObject(Callback4< void, const IFaceThing *, uint32, uint32, void * > &callback, void *v=nullptr, bool useThreads=true) const =0
Object for creation of multithreaded loop over blocks.
virtual const IContainer * getIContainer() const =0
Returns a const pointer to the IContainer interface representing the global list of faces.
virtual uint getGroupNotice() const =0
Returns the tag for the face group change notice.
virtual IFaceThing * findFaceWithID(quint64 id)=0
Returns a pointer to the face, IFace, with the ID id, or 0 if the face does not exist.
void threadedCallbackMethod(S *s, void *v=nullptr, bool useThreads=true) const
Implementation of the multithreaded loop using the threadedCallbackObject.
Definition: ifacearray.h:61
virtual IThing * getIThing()=0
Returns a pointer to an IThing interface representing the IFaceArray.
virtual IContainer * getIContainer()=0
Returns a pointer to the IContainer interface representing the global list of faces.
virtual const IFaceThing * findFaceWithID(quint64 id) const =0
Returns a const pointer to the face, IFace, with the ID id, or 0 if the face does not exist.
virtual quint32 getFaceType() const =0
Returns the face type identifier.
virtual const IThing * getIThing() const =0
Returns a const pointer to an IThing interface representing the IFaceArray.
This class maintains a list of scalar data . getNames() returns the names of the data available throu...
Definition: ifacedata.h:19
This is the interface for FaceThing, a class that holds extra data not in the fortran arrays....
Definition: ifacething.h:33
Interface for containers of IThings.
Definition: icontainer.h:21
Base class for items that will be stored in containers.
Definition: ithing.h:30
Fortran to C++ type declarations.
namespace Itasca
Definition: basememory.cpp:10