35 #include "../sm/Elements/PlaneStress/linquad3d_planestress.h" 37 #include "../sm/Materials/structuralms.h" 38 #include "../sm/CrossSections/structuralcrosssection.h" 105 for (
int i = 0; i < 4; i++ ) {
114 answer = {D_u, D_v, D_w};
153 for (
int i = 1; i <= 3; i++ ) {
178 for (
int i = 1; i <= 3; i++ ) {
198 for (
int i = 1; i <= 3; i++ ) {
222 answer.
at(1, 1) = charVect.
at(1);
223 answer.
at(2, 2) = charVect.
at(2);
224 answer.
at(1, 2) = charVect.
at(3);
225 answer.
at(2, 1) = charVect.
at(3);
231 answer.
at(1, 1) = charVect.
at(1);
232 answer.
at(2, 2) = charVect.
at(2);
233 answer.
at(1, 2) = charVect.
at(3) / 2.;
234 answer.
at(2, 1) = charVect.
at(3) / 2.;
257 if ( type == IST_ShellForceTensor || type == IST_ShellStrainTensor ) {
259 if ( type == IST_ShellForceTensor ) {
268 answer.
at(1) = globTensor.
at(1, 1);
269 answer.
at(2) = globTensor.
at(2, 2);
270 answer.
at(3) = globTensor.
at(3, 3);
271 answer.
at(4) = c * globTensor.
at(2, 3);
272 answer.
at(5) = c * globTensor.
at(1, 3);
273 answer.
at(6) = c * globTensor.
at(1, 2);
276 }
else if ( type == IST_ShellMomentTensor || type == IST_CurvatureTensor ) {
296 fprintf( file,
" GP %2d.%-2d :", i + 1, gp->giveNumber() );
298 this->
giveIPValue(v, gp, IST_ShellStrainTensor, tStep);
299 fprintf(file,
" strains ");
300 for (
auto &val : v ) fprintf(file,
" %.4e", val);
308 this->
giveIPValue(v, gp, IST_ShellForceTensor, tStep);
309 fprintf(file,
"\n forces ");
310 for (
auto &val : v ) fprintf(file,
" %.4e", val);
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
This class implements an isoparametric four-node quadrilateral plane- stress elasticity finite elemen...
The element interface required by ZZNodalRecoveryModel.
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in full form.
void beVectorProductOf(const FloatArray &v1, const FloatArray &v2)
Computes vector product (or cross product) of vectors given as parameters, , and stores the result in...
Wrapper around cell with vertex coordinates stored in FloatArray**.
The element interface required by ZZNodalRecoveryModel.
double & at(int i)
Coefficient access function.
This class implements a structural material status information.
Class representing a general abstraction for cell geometry.
void clear()
Clears receiver (zero size).
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in full form.
void computeLocalNodalCoordinates(std::vector< FloatArray > &lxy)
virtual int computeLoadGToLRotationMtrx(FloatMatrix &answer)
Returns transformation matrix from global coordinate system to local element coordinate system for el...
Class implementing an array of integers.
void beDifferenceOf(const FloatArray &a, const FloatArray &b)
Sets receiver to be a - b.
void rotatedWith(const FloatMatrix &r, char mode= 'n')
Returns the receiver 'a' transformed using give transformation matrix r.
virtual void giveDofManDofIDMask(int inode, IntArray &) const
Returns dofmanager dof mask for node.
void beProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
Receiver becomes the result of the product of aMatrix and anArray.
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Prints output of receiver to stream, for given time step.
double at(int i, int j) const
Coefficient access function.
std::vector< FloatArray > lc
Local vertex coordinates.
virtual ~LinQuad3DPlaneStress()
FloatMatrix * GtoLRotationMatrix
Transformation Matrix form GtoL(3,3) is stored at the element level for computation efficiency...
Class representing vector of real numbers.
Implementation of matrix containing floating point numbers.
const FloatArray & giveStressVector() const
Returns the const pointer to receiver's stress vector.
IntegrationPointStatus * giveMaterialStatus()
Returns reference to associated material status (NULL if not defined).
void resize(int rows, int cols)
Checks size of receiver towards requested bounds.
const FloatMatrix * computeGtoLRotationMatrix()
virtual Interface * giveInterface(InterfaceType it)
Interface requesting service.
The spatial localizer element interface associated to spatial localizer.
std::vector< std::unique_ptr< IntegrationRule > > integrationRulesArray
List of integration rules of receiver (each integration rule contains associated integration points a...
virtual FloatArray * giveCoordinates()
void zero()
Zeroes all coefficient of receiver.
InterfaceType
Enumerative type, used to identify interface type.
void giveCharacteristicTensor(FloatMatrix &answer, CharTensor type, GaussPoint *gp, TimeStep *tStep)
FEICellGeometry * cellGeometryWrapper
To facilitate the transformation of 2d elements into 3d, the complexity of transformation from 3d to ...
the oofem namespace is to define a context or scope in which all oofem names are defined.
double normalize()
Normalizes receiver.
Node * giveNode(int i) const
Returns reference to the i-th node of element.
const FloatArray & giveStrainVector() const
Returns the const pointer to receiver's strain vector.
Class representing integration point in finite element program.
virtual FEICellGeometry * giveCellGeometryWrapper()
Returns the Cell Geometry Wrapper.
Class representing solution step.
void resize(int s)
Resizes receiver towards requested size.
LinQuad3DPlaneStress(int n, Domain *d)