Itasca C++ Interface
ivertexarray.h
Go to the documentation of this file.
1 #pragma once
2 // ivertexarray.h
3 #include "base/src/farray.h"
4 
11 namespace itasca
12 {
13  class IContainer;
14  class IThing;
15 }
16 
17 namespace block
18 {
19  using namespace itasca;
20 
21  class IVertexThing;
22  class VertexThing;
23  class IGpData;
24 
25 
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 IVertexThing * findVertexWithID(quint64 id) const=0;
44  virtual IVertexThing * findVertexWithID(quint64 id)=0;
46  virtual quint32 getVertexType() const=0;
48  virtual quint64 getNumVertices() const=0;
50  virtual const IVertexThing * findVertex(const DVect3 &loc, bool visible=false) =0;
51 
53  virtual FArray<IVertexThing*> findAllVertices(const DVect3& loc, double radius, bool visible = false)=0;
54 
65  virtual int claimBit() const=0;
67  virtual void releaseBit(int bit) const=0;
78  virtual int claimValue() const=0;
80  virtual void releaseValue(int bit) const=0;
82  virtual IGpData * createIGpData() const=0;
84  virtual uint getVertexExtraNotice() const=0;
86  virtual uint getDisplacementNotice() const=0;
88  virtual uint getVelocityNotice() const=0;
90  virtual uint getPorePressureNotice() const=0;
92  virtual uint getTemperatureNotice() const=0;
94  virtual uint getGeometryNotice() const=0;
96  virtual uint getBoundaryNotice() const=0;
97 
99  virtual double getTolerance() const = 0;
100  };
101 
102 } // end namespace block
103 // EOF
An array class that attempts to minimize unnecessary heap access.
Definition: farray.h:25
This class maintains a list of scalar data (x-position, density, velocity magnitude,...
Definition: igpdata.h:19
Container to store VertexThings. ID of VertexThing is stored in offset $KVCPP in Fortran vertex linke...
Definition: ivertexarray.h:30
virtual void releaseBit(int bit) const =0
Releases a bit index previously obtained with claimBit(). Thread-safe.
virtual IThing * getIThing()=0
Returns a pointer to an IThing interface representing the IVertexArray.
virtual IGpData * createIGpData() const =0
Returns a pointer to a new IGpData object. This pointer must be destroyed by the caller.
virtual quint32 getVertexType() const =0
Returns the vertex type identifier.
virtual void releaseValue(int bit) const =0
Releases a value index back to the zones utility value array. Thread-safe.
virtual int claimBit() const =0
Claims a bit from the vertex utility bit field.
virtual uint getBoundaryNotice() const =0
Returns the tag for vertex boundary condition change notice.
virtual uint getVelocityNotice() const =0
Returns the tag for the vertex velocity change notice.
virtual const IThing * getIThing() const =0
Returns a const pointer to an IThing interface representing the IVertexArray.
virtual uint getVertexExtraNotice() const =0
Returns the tag for the vertex extra variable change notice.
virtual const IContainer * getIContainer() const =0
Returns a const pointer to the IContainer interface representing the global list of grid points.
virtual IContainer * getIContainer()=0
Returns a pointer to the IContainer interface representing the global list of grid points.
virtual quint64 getNumVertices() const =0
Returns number of vertices in the container.
virtual uint getDisplacementNotice() const =0
Returns the tag for the vertex displacement change notice.
virtual uint getPorePressureNotice() const =0
Returns the tag for the vertex pore pressure change notice.
virtual double getTolerance() const =0
Global tolerance (atol)
virtual const IVertexThing * findVertex(const DVect3 &loc, bool visible=false)=0
Return vertex nearest to input location.
virtual const IVertexThing * findVertexWithID(quint64 id) const =0
Returns a const pointer to the vertex, IVertexThing, with the ID id, or 0 if the vertex does not exis...
virtual int claimValue() const =0
Claims a bit from the zones utility value array.
virtual FArray< IVertexThing * > findAllVertices(const DVect3 &loc, double radius, bool visible=false)=0
return array of vertices withing distance radius of inpult location.
virtual IVertexThing * findVertexWithID(quint64 id)=0
Returns a pointer to the vertex, IVertexThing, with the ID id, or 0 if the vertex does not exist.
virtual uint getTemperatureNotice() const =0
Returns the tag for the vertex temperature change notice.
virtual uint getGeometryNotice() const =0
Returns the tag for vertex geometry change notice.
This is the interface for VertexThing. This will be stored in a container and the ID will be stored i...
Definition: ivertexthing.h:29
Interface for containers of IThings.
Definition: icontainer.h:21
Base class for items that will be stored in containers.
Definition: ithing.h:30
An array class that attempts to minimize unnecessary heap access.
namespace Itasca
Definition: basememory.cpp:10