33 #include "domain/mesh/element/plane/QuadBase4N.h" 34 #include "domain/mesh/element/utils/physical_properties/SectionFDPhysicalProperties.h" 35 #include "ShellBData.h" 36 #include <utility/matrix/Vector.h> 37 #include <utility/matrix/Matrix.h> 38 #include "domain/mesh/element/utils/fvectors/FVectorShell.h" 45 class ShellUniformLoad;
46 class ShellCrdTransf3dBase;
57 mutable double xl[2][4];
74 virtual void formResidAndTangent(
int tang_flag)
const= 0;
75 static void shape2d(
const double &,
const double &,
const double x[2][4],
double shp[3][4],
double &xsj,
double sx[2][2]);
84 typedef double (*pointer_to_xl)[4];
85 inline const pointer_to_xl get_xl(
void)
const 87 inline pointer_to_xl get_xl(
void)
133 double getMeanInternalForce(
const std::string &)
const;
134 double getMeanInternalDeformation(
const std::string &)
const;
152 void Print(std::ostream &s,
int flag )
const;
virtual ElementalLoad * createInertiaLoad(const Vector &)
Creates the inertia load that corresponds to the acceleration argument.
Definition: Shell4NBase.cc:455
void formInertiaTerms(int tangFlag) const
Form inertia terms.
Definition: Shell4NBase.cc:716
void Print(std::ostream &s, int flag) const
print out element data
Definition: Shell4NBase.cc:999
Shell4NBase & operator=(const Shell4NBase &)
Assignment operator.
Definition: Shell4NBase.cc:159
Float vector abstraction.
Definition: Vector.h:94
Natural coordinates of an element's particle.
Definition: ParticlePos3d.h:41
Plane polygon in a 3D space.
Definition: Polygon3d.h:35
Shell 3D coordinate transformations that updates vector directions (needs debugging).
Definition: ShellUpBasisCrdTransf3d.h:43
int recvCoordTransf(int posFlag, const int &posClassTag, const int &posDbTag, const Communicator &)
Receives the coordinate transformation through the communicator argument.
Definition: Shell4NBase.cc:877
Communication parameters between processes.
Definition: Communicator.h:66
Base class response objects.
Definition: Response.h:81
Vector getInterpolationFactors(const ParticlePos3d &) const
Returns interpolation factors for a material point.
Definition: Shell4NBase.cc:595
int recvData(const Communicator &)
Receives members through the communicator argument.
Definition: Shell4NBase.cc:919
int revertToStart(void)
Return the initial state.
Definition: Shell4NBase.cc:586
Vector getInterpolatedDisplacements(const ParticlePos3d &) const
Returns interpolated displacements for a material point.
Definition: Shell4NBase.cc:675
int sendCoordTransf(int posFlag, const int &, const int &, Communicator &)
Send the coordinate transformation through the communicator argument.
Definition: Shell4NBase.cc:861
double xl[2][4]
local nodal coordinates, two coordinates for each of four nodes
Definition: Shell4NBase.h:57
Shell4NBase(int classTag, const ShellCrdTransf3dBase *)
Constructor.
Definition: Shell4NBase.cc:109
ParticlePos3d getLocalCoordinatesOfNode(const int &) const
Return the local coordinates that correspond to the i-th node.
Definition: Shell4NBase.cc:667
Base class for 4 node quads.
Definition: QuadBase4N.h:45
Base class for four node shell elements.
Definition: Shell4NBase.h:52
int addLoad(ElementalLoad *, double)
Applies on the element the load being passed as parameter.
Definition: Shell4NBase.cc:421
Base class for 3D coordinate transformations.
Definition: ShellCrdTransf3dBase.h:49
int update(void)
Update state variables.
Definition: Shell4NBase.cc:361
virtual const SectionForceDeformation * getSectionPtr(const size_t &) const
Return a pointer to the i-th section of the element.
Definition: Shell4NBase.cc:395
Ingernal forces for a shell element.
Definition: FVectorShell.h:41
static void shape2d(const double &, const double &, const double x[2][4], double shp[3][4], double &xsj, double sx[2][2])
shape function routine for MITC4 elements.
Definition: Shell4NBase.cc:811
double appliedB[3]
Body forces applied with load.
Definition: Shell4NBase.h:61
Natural coordinates of an element's particle.
Definition: ParticlePos2d.h:40
ElementalLoad * vector3dRawLoadGlobal(const std::vector< Vector > &)
Defines a load over the element from a vector of nodal loads in global coordinates.
Definition: Shell4NBase.cc:224
const Vector & getResistingForce(void) const
get residual
Definition: Shell4NBase.cc:502
Base class for Gauss integration models.
Definition: GaussModel.h:41
ElementalLoad * vector3dRawLoadLocal(const std::vector< Vector > &)
Defines a load over the element from a vector of nodal loads in local coordinates.
Definition: Shell4NBase.cc:179
ElementalLoad * vector3dUniformLoadGlobal(const Vector &)
Defines a load over the element from a vector in global coordinates.
Definition: Shell4NBase.cc:295
int sendData(Communicator &)
Send members through the communicator argument.
Definition: Shell4NBase.cc:906
void zeroLoad(void)
Sets loads to zero.
Definition: Shell4NBase.cc:410
virtual ShellCrdTransf3dBase * getCoordTransf(void)
Returns a pointer to the coordinate transformation.
Definition: Shell4NBase.cc:937
ParticlePos3d getNaturalCoordinates(const Pos3d &, bool initialGeometry=true) const
Return the natural coordinates that correspond to the argument.
Definition: Shell4NBase.cc:671
Base class for small displacement 3D coordinate transformations.
Definition: ShellLinearCrdTransf3d.h:42
Response * setResponse(const std::vector< std::string > &argv, Information &eleInformation)
Element response.
Definition: Shell4NBase.cc:945
Posición en tres dimensiones.
Definition: Pos3d.h:44
~Shell4NBase(void)
Destructor.
Definition: Shell4NBase.cc:172
const Matrix & getMass(void) const
return mass matrix
Definition: Shell4NBase.cc:380
int addInertiaLoadToUnbalance(const Vector &accel)
Add to the unbalance vector the inertial load corresponding to the acceleration argument.
Definition: Shell4NBase.cc:537
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
virtual Matrix getLocalAxes(bool initialGeometry=true) const
Returns a matrix with the axes of the element as matrix rows [[x1,y1,z1],[x2,y2,z2],...·].
Definition: Shell4NBase.cc:933
ElementalLoad * vector3dUniformLoadLocal(const Vector &)
Defines a load over the element from a vector in local coordinates.
Definition: Shell4NBase.cc:253
ShellCrdTransf3dBase * theCoordTransf
Coordinate transformation.
Definition: Shell4NBase.h:59
Physical properties for shells.
Definition: SectionFDPhysicalProperties.h:41
Matrix of floats.
Definition: Matrix.h:111
const Matrix & getTangentStiff(void) const
return stiffness matrix
Definition: Shell4NBase.cc:368
ElementalLoad * strainLoad(const Matrix &)
Defines a strain load on this element.
Definition: Shell4NBase.cc:314
int commitState(void)
Consuma la coordinate transformation de acuerdo con el estado actual.
Definition: Shell4NBase.cc:570
Base class for loads over elements.
Definition: ElementalLoad.h:79
FVectorShell p0
Reactions in the basic system due to element loads.
Definition: Shell4NBase.h:64
int revertToLastCommit(void)
Returns to the last committed state.
Definition: Shell4NBase.cc:578
const Vector & getResistingForceIncInertia(void) const
get residual with inertia terms
Definition: Shell4NBase.cc:519
int getNumDOF(void) const
return number of dofs
Definition: Shell4NBase.cc:355
const GaussModel & getGaussModel(void) const
Return the element Gauss points.
Definition: Shell4NBase.cc:390
int getResponse(int responseID, Information &eleInformation)
Obtain information from an analysis.
Definition: Shell4NBase.cc:980
void computeBasis(void)
compute local coordinates and basis
Definition: Shell4NBase.cc:798
Pos3d getCartesianCoordinates(const ParticlePos2d &, bool initialGeometry=true) const
Return the cartesian coordinates of the argument.
Definition: Shell4NBase.cc:624