Itasca C++ Interface
Loading...
Searching...
No Matches
iselbeam.h
Go to the documentation of this file.
1#pragma once
2
8#include "isel.h"
9
10namespace itasca {
11 class IThing;
12}
13
14namespace 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:89
Base class for items that will be stored in containers.
Definition ithing.h:30
Interface to beam structural elements.
Definition iselbeam.h:19
virtual double getPropNu() const =0
Poisson's ratio (stored here for elastic model, in CM for plastic model)
virtual const IThing * getIThing() const =0
Returns a const IThing pointer.
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 const ISEL * getISEL() const =0
Returns a const pointer to object base class, ISEL.
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.
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 ISEL * getISEL()=0
Returns a pointer to object base class, ISEL.
virtual IThing * getIThing()=0
Returns a IThing pointer.
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 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:154
Interface to the structural elements base class.
namespace Itasca
Definition basememory.cpp:14