Itasca C++ Interface
idomain.h
Go to the documentation of this file.
1 #pragma once
2 //
3 
10 #include "dim.h"
11 #include "shared/interface/signal.h"
12 
13 namespace itasca {
14  class IThing;
15 }
16 
17 namespace itascaxd {
19 
22  using namespace itasca;
23  class IDomain {
24  public:
26  inline static const TType type_ = 0x4c815b87;
27 
28  shared::Signal<const DExtent &,bool> domainExtentChanged; //e, contactCreateDete
29  shared::Signal<uint32,int> conditionChanged; // dof, condition
31  virtual const IThing *getIThing() const=0;
33  virtual IThing * getIThing()=0;
34 
36  virtual DExtent getDomainExtent() const=0;
38  virtual DVect getDomainLowerBound() const=0;
40  virtual DVect getDomainUpperBound() const=0;
42  virtual DMatrix<DIM,DIM> getStrainRate() const =0;
44  virtual double getRemapTolerance() const=0;
46  virtual void setDomainLowerBound(const DVect &)=0;
48  virtual void setDomainUpperBound(const DVect &)=0;
50  virtual void setStrainRate(const DMatrix<DIM,DIM> &)=0;
52  virtual void setRemapTolerance(const double &)=0;
53 
55  virtual int getCondition(uint32 dof) const=0;
56  virtual QString getCondition(const QString &dir) const=0;
58  virtual QStringList getConditionNames() const=0;
60  virtual bool hasPeriodic() const=0;
61 
63  virtual void setDomainExtent(const DExtent &e,bool=false)=0;
65  virtual void setCondition(uint32 dof,int condition)=0;
66  virtual void setCondition(const QString &dir,const QString &cond)=0;
67 
69  virtual bool getMPIDomain() const=0;
71  virtual void setMPIDomain(bool)=0;
72 
73  #ifdef TWOD
74  virtual double getDepth() const=0;
75  //virtual void setDepth(const double &depth)=0;
76  //virtual void depthChanged(const double &d)=0; // SIGNAL
77  #endif
78  };
79 } // namespace itascaxd
80 // EoF
DMatrix is a Matrix that defaults to type double...
Definition: matrix.h:741
Base class for items that will be stored in containers.
Definition: ithing.h:30
Definition: idomain.h:23
virtual DExtent getDomainExtent() const =0
Returns the domain extent.
virtual const IThing * getIThing() const =0
Returns a const IThing interface pointer associated with this domain.
virtual IThing * getIThing()=0
Returns a IThing interface pointer associated with this domain.
virtual void setRemapTolerance(const double &)=0
Set the domain remap tolerance
virtual QStringList getConditionNames() const =0
Returns the domain condition name. Possible values are: Stop, Reflect, Destroy and Periodic.
virtual void setCondition(uint32 dof, int condition)=0
Sets the domain condition.
virtual int getCondition(uint32 dof) const =0
Returns the domain condition.
virtual bool getMPIDomain() const =0
Returns if the domain is in mpi mode.
virtual void setDomainExtent(const DExtent &e, bool=false)=0
Sets the domain extent.
virtual DMatrix< DIM, DIM > getStrainRate() const =0
Returns the domain strain rate
virtual DVect getDomainUpperBound() const =0
Returns the domain extent upper bound.
virtual double getRemapTolerance() const =0
Get the domain remap tolerance
virtual void setStrainRate(const DMatrix< DIM, DIM > &)=0
Set the domain strain rate
virtual bool hasPeriodic() const =0
Returns whether or not there is a periodic condition on any boundary.
virtual DVect getDomainLowerBound() const =0
Returns the domain extent lower bound.
virtual void setDomainUpperBound(const DVect &)=0
Set the domain extent upper bound
virtual void setMPIDomain(bool)=0
Set if the domain is in mpi mode.
virtual void setDomainLowerBound(const DVect &)=0
Set the domain extent lower bound.
DIM - Provides code portability between 2D and 3D codes.
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
namespace Itasca
Definition: basememory.cpp:10
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4