Itasca C++ Interface
Loading...
Searching...
No Matches
iselshell.h
Go to the documentation of this file.
1#pragma once
2// ISELShell.h
3
9#include "isel.h"
10
11namespace itasca {
12 class IThing;
13}
14
15namespace 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:798
Definition basestring.h:89
A symmetric 2nd order tensor.
Definition symtensor.h:22
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 const IThing * getIThing() const =0
Returns a const IThing pointer.
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
static const TType type_
Type identification number, for use in convert_cast() and convert_getcast().
Definition iselshell.h:25
virtual string getConstitutiveModelName() const =0
Returns constitutive model name or "unassigned" if model has not been assigned.
virtual void getElemStressResElastic(DVect3 *memb, DVect3 *bend) const =0
virtual const ISEL * getISEL() const =0
Returns a const pointer to object base class.
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 ISEL * getISEL()=0
Returns a pointer to object base class.
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 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 bool isPlastic() const =0
Returns true for a plastic element, else returns false.
virtual IThing * getIThing()=0
Returns a IThing pointer.
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