Itasca C++ Interface
iselbeam.h
Go to the documentation of this file.
1 #pragma once
2 
8 #include "isel.h"
9 
10 namespace itasca {
11  class IThing;
12 }
13 
14 namespace sel {
16 
19  class ISELBeam {
20  public:
22  inline static const TType type_ = 0x4c815a09;
24  virtual const IThing *getIThing() const=0;
26  virtual IThing * getIThing()=0;
28  virtual const ISEL *getISEL() const=0;
30  virtual ISEL * getISEL()=0;
31 
32  virtual double getLength()const=0;
33  // Surface area (elastic: xc shape not given, assume circular xc shape;
34  // plastic: true xc shape)
35  virtual double getArea()const=0;
37  virtual double getVolume()const=0;
38 #ifdef TWOD
40  virtual double getSpacing() const=0;
41  virtual void setSpacing(const double &d)=0;
42 #endif
44  virtual double getAppYPress()const=0;
45  virtual void setAppYPress(const double &d)=0;
46 #ifdef THREED
48  virtual double getAppZPress()const=0;
49  virtual void setAppZPress(const double &d)=0;
50 #endif
52  virtual double getDensity() const=0;
54  virtual double getThExp() const=0;
56  virtual double getPropE() const=0;
57  virtual void setPropE(const double &e)=0;
59  virtual double getPropNu() const=0;
60  virtual void setPropNu(const double &e)=0;
62  virtual double getPropXCArea() const=0;
63  virtual void setPropXCArea(const double &d)=0;
65  virtual double getXCAreaPlastic() const=0;
66 #ifdef THREED
68  virtual double getPropXCJ() const=0;
69  virtual void setPropXCJ(const double& torsion_constant)=0;
71  virtual double getPropXCIy() const=0;
72  virtual void setPropXCIy(const double &d)=0;
74  virtual double getPropXCIz() const=0;
75  virtual void setPropXCIz(const double &d)=0;
77  virtual double getPropKappaY() const=0;
78  virtual void setPropKappaY(const double &d)=0;
80  virtual double getPropKappaZ() const=0;
81  virtual void setPropKappaZ(const double &d)=0;
82 #else
84  virtual double getPropXCI()const=0;
85  virtual void setPropXCI(const double &d)=0;
87  virtual double getPropKappa() const=0;
88  virtual void setPropKappa(const double &d)=0;
89 #endif
91  virtual DVect getPropLsys() const=0;
92  virtual void setPropLsys(const DVect& d)=0;
94  virtual double getPropPlasticMoment() const=0;
95  virtual void setPropPlasticMoment(const double &d)=0;
96  virtual double getPropPlasticShear() const=0;
97  virtual void setPropPlasticShear(const double &d)=0;
98 #ifdef THREED
99  virtual double getPropPlasticMomentY() const=0;
100  virtual void setPropPlasticMomentY(const double &d)=0;
101  virtual double getPropPlasticMomentZ() const=0;
102  virtual void setPropPlasticMomentZ(const double &d)=0;
103  virtual double getPropPlasticShearY() const=0;
104  virtual void setPropPlasticShearY(const double &d)=0;
105  virtual double getPropPlasticShearZ() const=0;
106  virtual void setPropPlasticShearZ(const double &d)=0;
107 #endif
116  virtual double getNdForce(uint32 dof, uint32 end) const=0;
120  virtual DVect getNdForce(uint32 end) const=0;
124 #ifdef THREED
125  virtual DVect getNdMoment(uint32 end) const=0;
126 #else
127  virtual double getNdMoment(uint32 end) const=0;
128 #endif
129  // *** Beam constitutive model information.
130  // General CM property get/set provided by {get/set}CMProperty() in SELBeam class.
132  virtual QString getElementType() const=0;
134  virtual string getConstitutiveModelName() const=0;
135  // True means that finite element supports plastic behavior.
136  virtual bool canBePlastic() const=0;
138  virtual bool isPlastic() const=0;
147  virtual void setIntData( bool shapeRect, std::array<double,2> size, std::array<uint32,3> nIPs )=0;
153  virtual bool getIntData( bool &shapeRect, std::array<double,2> &iDataSize,
154  std::array<uint32,3> &iDataNum ) const=0;
160  virtual bool getIPData( const uint32 ip, std::array<double,4> &iData) const=0;
162  virtual uint32 getNumIPs() const=0;
166  virtual uint32 getPlasticState( const uint32 ip ) const=0;
170  virtual StringList getPlasticStateNames( const uint32 ip ) const=0;
174  virtual bool getPlasticStress( const uint32 ip, double &sigXX) const=0;
178  virtual bool getPlasticStressBounds( double &minStr, double &maxStr ) const=0;
182  virtual bool getPlasticStateYieldPct( double &yieldPct ) const=0;
183  };
184 } // namespace sel
185 // EoF
Definition: basestring.h:77
Base class for items that will be stored in containers.
Definition: ithing.h:30
Interface to beam structural elements.
Definition: iselbeam.h:19
virtual IThing * getIThing()=0
Returns a IThing pointer.
virtual const ISEL * getISEL() const =0
Returns a const pointer to object base class, ISEL.
virtual double getPropNu() const =0
Poisson's ratio (stored here for elastic model, in CM for plastic model)
virtual double getPropXCArea() const =0
Cross-sectional area (specified as a property, used by elastic only)
virtual bool getPlasticStress(const uint32 ip, double &sigXX) const =0
virtual DVect getNdForce(uint32 end) const =0
virtual StringList getPlasticStateNames(const uint32 ip) const =0
virtual bool getPlasticStateYieldPct(double &yieldPct) const =0
virtual void setIntData(bool shapeRect, std::array< double, 2 > size, std::array< uint32, 3 > nIPs)=0
virtual double getThExp() const =0
Thermal expansion coefficient.
virtual double getAppYPress() const =0
Applied pressure (force/length, positive in y'-direction).
virtual double getPropKappa() const =0
Shear coef. for transverse shear.
virtual bool isPlastic() const =0
Returns true for a plastic element, else returns false.
virtual ISEL * getISEL()=0
Returns a pointer to object base class, ISEL.
static const TType type_
Type ID number for this class, for use in convert_cast() and convert_getcast().
Definition: iselbeam.h:22
virtual double getPropXCI() const =0
Second moment wrt beam z-axis.
virtual double getXCAreaPlastic() const =0
Cross-sectional area (used for plastic materials)
virtual double getPropPlasticMoment() const =0
Plastic moment and shear capacities.
virtual bool getIntData(bool &shapeRect, std::array< double, 2 > &iDataSize, std::array< uint32, 3 > &iDataNum) const =0
virtual uint32 getNumIPs() const =0
Get the number of integration points.
virtual uint32 getPlasticState(const uint32 ip) const =0
virtual double getNdMoment(uint32 end) const =0
virtual QString getElementType() const =0
Returns keyword of the finite-element type.
virtual string getConstitutiveModelName() const =0
Returns constitutive model name or "unassigned" if model has not been assigned.
virtual double getDensity() const =0
Density.
virtual DVect getPropLsys() const =0
Vector in direction of y-axis of the beam coord. system.
virtual double getVolume() const =0
Volume (length times true xc area).
virtual double getNdForce(uint32 dof, uint32 end) const =0
virtual const IThing * getIThing() const =0
Returns a const IThing pointer.
virtual double getPropE() const =0
Young's modulus (stored here for elastic model, in CM for plastic model)
virtual bool getIPData(const uint32 ip, std::array< double, 4 > &iData) const =0
virtual bool getPlasticStressBounds(double &minStr, double &maxStr) const =0
Interface to the structural elements base class.
Definition: isel.h:22
uint32 TType
class type indicator
Definition: basedef.h:46
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:150
Interface to the structural elements base class.
namespace Itasca
Definition: basememory.cpp:10