Itasca C++ Interface
isel.h
Go to the documentation of this file.
1 #pragma once
8 
9 namespace itasca {
10  class IFishParam;
11  class IGroup;
12  class IThing;
13 }
14 
15 namespace sel {
16  using namespace itasca;
17 
18  class ISELNode;
19 
22  class ISEL {
23  public:
25  inline static const TType type_ = 0x4c815a02;
27  enum YieldState {
28  NO,
29  NOW,
30  PAST
31  };
32 
34  virtual TType getType() const=0;
36  virtual const IThing * getIThing() const=0;
38  virtual IThing * getIThing()=0;
40  virtual QString getKeyword() const=0;
43  virtual const ISEL * getNext() const=0;
45  virtual uint32 getNumNd() const =0;
47  virtual const ISELNode * getNdPtr(uint32 loc_ndnum) const =0;
49  virtual ISELNode * getNdPtr(uint32 loc_ndnum) =0;
51  virtual bool getMark() const=0;
53  virtual void setMark(bool b) =0;
55  virtual double getDensity() const =0;
57  virtual void setDensity(double d) =0;
59  virtual Axes getLocalSys() const =0;
62  virtual Axes getMaterialSys() const=0;
64  virtual double getThExp() const =0;
66  virtual void setThExp(double d) =0;
69  virtual QString getYieldName(YieldState state) const=0;
75  virtual double getForceAtNode2(uint32 dof,uint32 end,bool local=false) const=0;
81  virtual DVect getForceAtNode2(uint32 end,bool trans,bool local=false) const=0;
83  virtual double getGravityLoadOnNodes() const =0;
85  virtual CLinkType<ISEL> getNextLink(uint32 node) const=0;
86  virtual double getArea() const=0;
87  virtual bool IsEmbedded() const=0;
88  virtual bool IsDowel() const = 0;
89  virtual bool supportsEmbedding() const=0;
90 
92  virtual StringList getProperties(bool elementOnly) const =0;
93  // Returns 0.0 if index or ip is out of range.
94  // Integration point (ip={1,2,...}), use 1 if N/A.
95  virtual base::Property getProperty(uint32 index, uint32 ip) const =0;
96  // Does nothing if index out of range. Returns true if elastic property changed.
97  // Throws exception if property type is incompatible.
98  virtual bool setProperty(uint32 index,const base::Property &val) =0;
99  virtual bool isPropertyConstant(uint32 index) const =0;
100  };
101 } // namespace sel
102 // EoF
Class for specifying a particular 3D cartesian axes system, and converting to and from it.
Definition: axes.h:121
Definition: basestring.h:77
Definition: property.h:20
Base class for items that will be stored in containers.
Definition: ithing.h:30
Interface to the structural elements base class.
Definition: isel.h:22
virtual const IThing * getIThing() const =0
Returns a const IThing pointer.
virtual void setDensity(double d)=0
Sets the structural element density, see getDensity().
virtual IThing * getIThing()=0
Returns a IThing pointer.
virtual double getForceAtNode2(uint32 dof, uint32 end, bool local=false) const =0
YieldState
Yield states.
Definition: isel.h:27
@ NOW
now yielding
Definition: isel.h:29
@ NO
no yield (has never yielded)
Definition: isel.h:28
virtual CLinkType< ISEL > getNextLink(uint32 node) const =0
Returns the next SEL in the list of SELs connected to node index /a node.
virtual double getThExp() const =0
Returns the structural element thermal expansion coefficient, see setThExp().
virtual StringList getProperties(bool elementOnly) const =0
Property Interface (includes shell & beam constitutive model props).
virtual Axes getMaterialSys() const =0
virtual void setMark(bool b)=0
Sets the structural element mark flag, see getMark().
virtual QString getYieldName(YieldState state) const =0
virtual DVect getForceAtNode2(uint32 end, bool trans, bool local=false) const =0
virtual const ISEL * getNext() const =0
virtual double getDensity() const =0
Returns the structural element density, see setDensity().
virtual ISELNode * getNdPtr(uint32 loc_ndnum)=0
Returns pointer to a node located at loc_ndnum in node array (zero-based).
virtual const ISELNode * getNdPtr(uint32 loc_ndnum) const =0
Returns const pointer to a node located at loc_ndnum in node array (zero-based).
virtual uint32 getNumNd() const =0
Returns number of nodes of this structural element.
virtual bool getMark() const =0
Returns true if structural element is 'marked', see setMark().
virtual Axes getLocalSys() const =0
Returns axes of the structural element local coordinate system.
virtual double getGravityLoadOnNodes() const =0
Returns avg. gravity load acting on one node: density * volume / number of nodes.
virtual TType getType() const =0
Type identification number, for use in convert_cast() and convert_getcast().
virtual QString getKeyword() const =0
Returns keyword used to identify the type of SEL element on the command line.
virtual void setThExp(double d)=0
Sets the structural element thermal expansion coefficient, see getThExp().
Interface to provide access to structural element nodes.
Definition: iselnode.h:44
uint32 TType
class type indicator
Definition: basedef.h:46
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:150
Interface for LinkType<> objects, POD that contain both the pointer to the next object and an index f...
namespace Itasca
Definition: basememory.cpp:10