Itasca C++ Interface
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
sel::ISELShell Class Referenceabstract

Interface to shell structural elements. More...

#include <iselshell.h>

Public Member Functions

virtual TType getType () const
 
virtual const IThinggetIThing () const =0
 Returns a const IThing pointer.
 
virtual IThinggetIThing ()=0
 Returns a IThing pointer.
 
virtual const ISELgetISEL () const =0
 Returns a const pointer to object base class.
 
virtual ISELgetISEL ()=0
 Returns a pointer to object base class.
 
virtual QString getElementType () const =0
 Returns keyword of the finite-element type.
 
virtual double getThickness () const =0
 
virtual void setThickness (const double &t)=0
 
virtual double getArea () const =0
 
virtual double getVolume () const =0
 Gets shell volume (area times thickness).
 
virtual double getPressure () const =0
 Gets uniform pressure acting on shell in its local z-direction.
 
virtual void setPressure (const double &p)=0
 Sets uniform pressure acting on shell in its local z-direction.
 
virtual string getConstitutiveModelName () const =0
 Returns constitutive model name or "unassigned" if model has not been assigned.
 
virtual double getIsotropic (int propNo) const =0
 
virtual void setIsotropic (const double &v, int propNo)=0
 
virtual double getOrthotropic (int p, int t) const =0
 
virtual double getAnisotropic (int p, int t) const =0
 
virtual Axes3D getMaterialSys () const =0
 Returns the local axes system used to represent material properties.
 
virtual double getBeta () const =0
 
virtual bool canBePlastic () const =0
 True means that finite element supports plastic behavior.
 
virtual bool isPlastic () const =0
 Returns true for a plastic element, else returns false.
 
virtual void setIPs (const uint32 &numThick, const uint32 &numTri)=0
 
virtual uint32 getIPs (int propNo) const =0
 
virtual bool getIPdata (const uint32 ip, DVMatrix< 5 > &iData) const =0
 
virtual bool getIPsOnLayer (const double depthFac, std::array< int, 3 > &ipNums) const =0
 
virtual uint32 getPlasticState (const uint32 ip) const =0
 
virtual StringList getPlasticStateNames (const uint32 ip) const =0
 
virtual bool getPlasticStateYieldPct (double &yieldPct) const =0
 
virtual bool getPlasticStress (const uint32 ip, const bool surfSys, DVMatrix< 3 > &stress) const =0
 
virtual bool getPlasticStressBounds (double &minStr, double &maxStr) const =0
 
virtual bool isStressResultantValid (uint32 index) const =0
 Returns true if both surface system and stress resultants are valid.
 
virtual double getStressResultant (uint32 index, uint32 locCode, uint32 component) const =0
 
virtual void getElemStressResElastic (DVect3 *memb, DVect3 *bend) const =0
 
virtual bool isStressValid (uint32 index) const =0
 
virtual double getDepthFactor (uint32 index) const =0
 Returns depth factor used in stress recovery (elastic model only).
 
virtual SymTensor getStressElastic (uint32 index, uint32 locCode) const =0
 
virtual DVect3 getPrinStressElastic (uint32 index, uint32 locCode) const =0
 
virtual double getElasticStressBounds (const bool minimum) const =0
 
virtual double getCouplingStress (const ISELNode *node, bool norm, uint32 side) const =0
 

Static Public Attributes

static const TType type_ = 0x4c815a04
 Type identification number, for use in convert_cast() and convert_getcast().
 

Detailed Description

Interface to shell structural elements.

This interface inherits from ISEL.

Member Function Documentation

◆ getAnisotropic()

virtual double sel::ISELShell::getAnisotropic ( int p,
int t ) const
pure virtual

Returns a anisotropic material property.
If the shell does not have anisotropic properties, then returns 0.0
Valid values for p (mat. stiff.): 0(C11), 1(C12), 2(C13), 3(C22), 4(C23) & 5(C33)
Valid values for t are: 1 (membrane) and 2 (bending).

◆ getBeta()

virtual double sel::ISELShell::getBeta ( ) const
pure virtual

Returns the angle (radians) between shell local x-axis and material x'-axis,
measured conterclockwise from shell local x-axis.
If the shell does not have orthotropic or anisotropic properties, then returns 0.0

◆ getCouplingStress()

virtual double sel::ISELShell::getCouplingStress ( const ISELNode * node,
bool norm,
uint32 side ) const
pure virtual

Shell-type sels: Returns the stress in coupling springs at nd_idx and side.
If norm is true, returns normal stress, else returns shear stress.
Valid values for nd_idx are 0, 1 or 2.
Valid values for side are 0 (side 1) or 1 (side 2).
The computation is general and will work even if link assignments have been modified. Computes stress based on forces in all deformable directions of link at side.

◆ getElemStressResElastic()

virtual void sel::ISELShell::getElemStressResElastic ( DVect3 * memb,
DVect3 * bend ) const
pure virtual

Computes and returns membrane stress resultants Nx,Ny,Nxy (parameter memb) and
bending stress resultants Mx,My,Mxy (parameter bend) in element coord. system
at element centroid for ONE ISOLATED elastic element. Return 0 for plastic element.

◆ getIPdata()

virtual bool sel::ISELShell::getIPdata ( const uint32 ip,
DVMatrix< 5 > & iData ) const
pure virtual

Get the integration data for integration point ip, where ip numbering starts at one.
The iData only exists for a plastic element, and this is indicated by the return
value (true = plastic). iData is {xi, eta, W, zStar, a} where (xi,eta): area coords;
W: weight wrt elemArea; zStar: abscissa wrt thickness; a: weight wrt thickness

◆ getIPs()

virtual uint32 sel::ISELShell::getIPs ( int propNo) const
pure virtual

Return the number of integration points through the thickness (propNo = 1) and
over the element area (propNo = 2).

◆ getIPsOnLayer()

virtual bool sel::ISELShell::getIPsOnLayer ( const double depthFac,
std::array< int, 3 > & ipNums ) const
pure virtual

Gets the integration points (numbering starts at 1) on the IP layer closest
to depth of depthFac*(t/2) for a plastic element (depthFac in [-1,1]).
These values only make sense for a plastic element, and this is indicated by the
return value (true = plastic).

◆ getIsotropic()

virtual double sel::ISELShell::getIsotropic ( int propNo) const
pure virtual

Returns an isotropic material property.
If the shell does not have isotropic properties, then returns 0.0
Valid values for parameter propNo are: 1(Young's modulus) and 2(Poisson's ratio).

◆ getOrthotropic()

virtual double sel::ISELShell::getOrthotropic ( int p,
int t ) const
pure virtual

Returns an orthotropic material property.
If the shell does not have orthotropic properties, then returns 0.0
Valid values for p (material stiffness): 0 (C11), 1(C12) , 2 (C22) and 3(C33).
Valid values for t are: 1 (membrane) and 2 (bending).

◆ getPlasticState()

virtual uint32 sel::ISELShell::getPlasticState ( const uint32 ip) const
pure virtual

Returns the plasticity state indicators encoded as bits in the returned integer
for integration point ip where ip numbering starts at one.
For an elastic element, returns 0.

◆ getPlasticStateNames()

virtual StringList sel::ISELShell::getPlasticStateNames ( const uint32 ip) const
pure virtual

Returns the plasticity state indicator names for integration point ip\n where ip numbering starts at one. If plastic element has not yielded then returns
an empty list. For an elastic element, returns "notPlastic".

◆ getPlasticStateYieldPct()

virtual bool sel::ISELShell::getPlasticStateYieldPct ( double & yieldPct) const
pure virtual

Returns percentage of IPs [0.0, 100.0] that have yielded (now or in the past) for
plastic materials. This value only makes sense for a plastic element, and this is
indicated by the return value (true = plastic).

◆ getPlasticStress()

virtual bool sel::ISELShell::getPlasticStress ( const uint32 ip,
const bool surfSys,
DVMatrix< 3 > & stress ) const
pure virtual

Gets the stress for int. point ip, where ip numbering starts at one.
The stress only exists for a plastic element, and this is indicated by the return
value (true = plastic). Stress components ordered {Sxx, Syy, Sxy} in either the
element or surface coordinate system (based on surfSys). If surfSys is true and
the surface system is not set for a node of the shell, then throws an exception.

◆ getPlasticStressBounds()

virtual bool sel::ISELShell::getPlasticStressBounds ( double & minStr,
double & maxStr ) const
pure virtual

Gets the minimum and maximum stress for a plastic element. These values only exist
for a plastic element, and this is indicated by the return value (true = plastic).
The 2D principal stresses are found for each IP layer (at the element centroid),
and the min and max values over all layers are returned.

◆ getPrinStressElastic()

virtual DVect3 sel::ISELShell::getPrinStressElastic ( uint32 index,
uint32 locCode ) const
pure virtual

Returns principal stress for elastic element at location
locCode: 0(centroid), 1(node-1), 2(node-2) and 3(node-3).
Returns a zero vector for a plastic element.

◆ getStressElastic()

virtual SymTensor sel::ISELShell::getStressElastic ( uint32 index,
uint32 locCode ) const
pure virtual

Returns stress tensor for elastic element (in global system) at current depth
factor and at location locCode: 0(centroid), 1(node-1), 2(node-2) and 3(node-3).
Returns a zero tensor for a plastic element.

◆ getStressResultant()

virtual double sel::ISELShell::getStressResultant ( uint32 index,
uint32 locCode,
uint32 component ) const
pure virtual

Returns stress resultant (surface system) at location locCode.
Valid values for locCode are: 0(centroid), 1(node-1), 2(node-2) and 3(node-3).
valid values for component are:
0(Mx), 1(My), 2(Mxy), 3(Nx), 4(Ny), 5(Nxy), 6(Qx) and 7(Qy).

◆ isStressValid()

virtual bool sel::ISELShell::isStressValid ( uint32 index) const
pure virtual

Returns true if surface system and stresses at current depth are valid.
Stresses for elements with a plastic material model will be invalid.

◆ setIPs()

virtual void sel::ISELShell::setIPs ( const uint32 & numThick,
const uint32 & numTri )
pure virtual

Specify the number of integration points through the thickness (numThick) and
over the element area (numTri). Internal stresses will be zeroed.

◆ setIsotropic()

virtual void sel::ISELShell::setIsotropic ( const double & v,
int propNo )
pure virtual

Sets an isotropic material property (and material property type).
Valid values for parameter propNo are: 1(Young's modulus) and 2(Poisson's ratio).
The Young's modulus should be set before the Poisson's ratio.


The documentation for this class was generated from the following file: