Itasca C++ Interface
iselshell.h
Go to the documentation of this file.
1 #pragma once
2 // ISELShell.h
3 
9 #include "isel.h"
10 
11 namespace itasca {
12  class IThing;
13 }
14 
15 namespace sel {
16  using namespace itasca;
17 
19 
22  class ISELShell {
23  public:
25  inline static const TType type_ = 0x4c815a04;
26  virtual TType getType() const { return type_; }
28  virtual const IThing * getIThing() const=0;
30  virtual IThing * getIThing()=0;
32  virtual const ISEL * getISEL() const=0;
34  virtual ISEL * getISEL()=0;
35 
37  virtual QString getElementType() const=0;
38  virtual double getThickness() const=0;
39  virtual void setThickness(const double &t)=0;
40  virtual double getArea()const=0;
42  virtual double getVolume() const =0;
44  virtual double getPressure() const=0;
46  virtual void setPressure(const double &p)=0;
47 
48  // *** Shell constitutive model information.
49  // The following set of functions operate on iso/ortho/anis elastic CMs.
50  // General CM property get/set provided by {get/set}CMProperty() in SELShell class.
52  virtual string getConstitutiveModelName() const=0;
56  virtual double getIsotropic(int propNo) const=0;
60  virtual void setIsotropic(const double &v, int propNo) =0;
65  virtual double getOrthotropic(int p, int t) const=0;
70  virtual double getAnisotropic(int p, int t) const=0;
72  virtual Axes3D getMaterialSys() const=0;
76  virtual double getBeta() const=0;
77 
79  virtual bool canBePlastic() const=0;
81  virtual bool isPlastic() const=0;
84  virtual void setIPs(const uint32 &numThick, const uint32 &numTri)=0;
87  virtual uint32 getIPs(int propNo) const=0;
92  virtual bool getIPdata( const uint32 ip, DVMatrix<5> &iData) const=0;
97  virtual bool getIPsOnLayer( const double depthFac,
98  std::array<int,3> &ipNums ) const=0;
102  virtual uint32 getPlasticState( const uint32 ip ) const=0;
106  virtual StringList getPlasticStateNames( const uint32 ip ) const=0;
110  virtual bool getPlasticStateYieldPct( double &yieldPct ) const=0;
116  virtual bool getPlasticStress( const uint32 ip, const bool surfSys,
117  DVMatrix<3> &stress ) const=0;
122  virtual bool getPlasticStressBounds( double &minStr, double &maxStr ) const=0;
123 
124  // *** Stress resultants and stresses. The stresses are only available for elements
125  // with an elastic model, while the stress resultants are available
126  // for all elements. SResData accessed via index parameter with index=0
127  // corresponding with engine data.
129  virtual bool isStressResultantValid( uint32 index ) const=0;
134  virtual double getStressResultant( uint32 index,
135  uint32 locCode, uint32 component ) const =0;
139  virtual void getElemStressResElastic( DVect3 *memb, DVect3 *bend ) const=0;
142  virtual bool isStressValid( uint32 index ) const=0;
144  virtual double getDepthFactor( uint32 index ) const=0;
148  virtual SymTensor getStressElastic( uint32 index, uint32 locCode ) const=0;
152  virtual DVect3 getPrinStressElastic( uint32 index, uint32 locCode ) const=0;
153  // Gets the minimum or maximum stress for an elastic element by taking the 2D principal
154  // stresses at the shell surfaces. Returns zero for a plastic element.
155  virtual double getElasticStressBounds(const bool minimum) const = 0;
156 
164  virtual double getCouplingStress(const ISELNode *node, bool norm, uint32 side) const = 0;
165  };
166 } // namespace sel
167 // EoF
168 
Class for specifying a particular 3D cartesian axes system, and converting to and from it.
Definition: axes.h:121
DVMatrix is a double version of VMatrix.
Definition: matrix.h:781
Definition: basestring.h:77
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
Interface to provide access to structural element nodes.
Definition: iselnode.h:44
Interface to shell structural elements.
Definition: iselshell.h:22
virtual bool getIPsOnLayer(const double depthFac, std::array< int, 3 > &ipNums) const =0
virtual double getBeta() const =0
virtual double getAnisotropic(int p, int t) const =0
virtual double getPressure() const =0
Gets uniform pressure acting on shell in its local z-direction.
virtual bool canBePlastic() const =0
True means that finite element supports plastic behavior.
virtual void setIsotropic(const double &v, int propNo)=0
virtual void setPressure(const double &p)=0
Sets uniform pressure acting on shell in its local z-direction.
virtual double getIsotropic(int propNo) const =0
virtual double getCouplingStress(const ISELNode *node, bool norm, uint32 side) const =0
virtual string getConstitutiveModelName() const =0
Returns constitutive model name or "unassigned" if model has not been assigned.
virtual const ISEL * getISEL() const =0
Returns a const pointer to object base class.
virtual void getElemStressResElastic(DVect3 *memb, DVect3 *bend) const =0
virtual SymTensor getStressElastic(uint32 index, uint32 locCode) const =0
virtual bool isStressResultantValid(uint32 index) const =0
Returns true if both surface system and stress resultants are valid.
virtual double getVolume() const =0
Gets shell volume (area times thickness).
virtual DVect3 getPrinStressElastic(uint32 index, uint32 locCode) const =0
virtual bool getPlasticStress(const uint32 ip, const bool surfSys, DVMatrix< 3 > &stress) const =0
virtual const IThing * getIThing() const =0
Returns a const IThing pointer.
virtual uint32 getIPs(int propNo) const =0
virtual double getOrthotropic(int p, int t) const =0
virtual bool getIPdata(const uint32 ip, DVMatrix< 5 > &iData) const =0
virtual uint32 getPlasticState(const uint32 ip) const =0
virtual ISEL * getISEL()=0
Returns a pointer to object base class.
virtual void setIPs(const uint32 &numThick, const uint32 &numTri)=0
virtual bool getPlasticStateYieldPct(double &yieldPct) const =0
virtual Axes3D getMaterialSys() const =0
Returns the local axes system used to represent material properties.
virtual StringList getPlasticStateNames(const uint32 ip) const =0
virtual QString getElementType() const =0
Returns keyword of the finite-element type.
virtual double getDepthFactor(uint32 index) const =0
Returns depth factor used in stress recovery (elastic model only).
virtual double getStressResultant(uint32 index, uint32 locCode, uint32 component) const =0
virtual IThing * getIThing()=0
Returns a IThing pointer.
virtual bool isPlastic() const =0
Returns true for a plastic element, else returns false.
virtual bool isStressValid(uint32 index) const =0
virtual bool getPlasticStressBounds(double &minStr, double &maxStr) const =0
uint32 TType
class type indicator
Definition: basedef.h:46
Interface to the structural elements base class.
namespace Itasca
Definition: basememory.cpp:10