35#ifndef structuralelement_h
36#define structuralelement_h
58class StructuralCrossSection;
183 virtual void computeStiffnessMatrix(
FloatMatrix &answer, MatResponseMode rMode,
TimeStep *tStep);
187 void computeStiffnessMatrix_withIRulesAsSubcells(
FloatMatrix &answer, MatResponseMode rMode,
TimeStep *tStep);
226 virtual void giveInternalForcesVector(
FloatArray &answer,
TimeStep *tStep,
int useUpdatedGpRecord = 0);
231 virtual void giveInternalForcesVector_withIRulesAsSubcells(
FloatArray &answer,
232 TimeStep *tStep,
int useUpdatedGpRecord = 0);
277 void updateBeforeNonlocalAverage(
TimeStep *tStep)
override;
295 int adaptiveUpdate(
TimeStep *tStep)
override;
296 void updateInternalState(
TimeStep *tStep)
override;
297 void updateYourself(
TimeStep *tStep)
override;
298 int checkConsistency()
override;
316 int node,
TimeStep *tStep)
override;
409 virtual double computeEdgeVolumeAround(
GaussPoint *gp,
int iEdge);
415 virtual double computeSurfaceVolumeAround(
GaussPoint *gp,
int iSurf);
487 int lowerIndx = 1,
int upperIndx =
ALL_STRAINS) = 0;
Element(int n, Domain *aDomain)
*Sets size of receiver to be an empty matrix It will have zero rows and zero columns size void clear()
virtual int computeLoadLSToLRotationMatrix(FloatMatrix &answer, int iSurf, GaussPoint *gp)
friend class GradDpElement
virtual void computeConstitutiveMatrixAt(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)=0
virtual void computeLumpedMassMatrix(FloatMatrix &answer, TimeStep *tStep)
virtual void computeInitialStressMatrix(FloatMatrix &answer, TimeStep *tStep)
friend class IDNLMaterial
void giveCharacteristicVector(FloatArray &answer, CharType type, ValueModeType mode, TimeStep *tStep) override
StructuralCrossSection * giveStructuralCrossSection()
Helper function which returns the structural cross-section for the element.
virtual void giveEdgeDofMapping(IntArray &answer, int iEdge) const
virtual void computeConsistentMassMatrix(FloatMatrix &answer, TimeStep *tStep, double &mass, const double *ipDensity=NULL)
virtual void computePointLoadVectorAt(FloatArray &answer, Load *load, TimeStep *tStep, ValueModeType mode, bool global=true)
virtual void setupIRForMassMtrxIntegration(IntegrationRule &iRule)
virtual void giveMassMtrxIntegrationgMask(IntArray &answer)
StructuralElement(int n, Domain *d)
void giveCharacteristicMatrix(FloatMatrix &answer, CharType, TimeStep *tStep) override
virtual void createMaterialStatus()
virtual void computeNmatrixAt(const FloatArray &iLocCoord, FloatMatrix &answer)
virtual void computeBmatrixAt(GaussPoint *gp, FloatMatrix &answer, int lowerIndx=1, int upperIndx=ALL_STRAINS)=0
virtual void computeLumpedInitialStressMatrix(FloatMatrix &answer, TimeStep *tStep)
virtual void computeBodyLoadVectorAt(FloatArray &answer, Load *load, TimeStep *tStep, ValueModeType mode)
std::unique_ptr< FloatArray > initialDisplacements
Initial displacement vector, describes the initial nodal displacements when element has been casted.
virtual int giveNumberOfIPForMassMtrxIntegration()
friend class TrabBoneNL3D
virtual int computeLoadLEToLRotationMatrix(FloatMatrix &answer, int iEdge, GaussPoint *gp)
virtual void giveSurfaceDofMapping(IntArray &answer, int iSurf) const
virtual void computeMassMatrix(FloatMatrix &answer, TimeStep *tStep)
friend class RankineMatNl
virtual int computeLoadGToLRotationMtrx(FloatMatrix &answer)
void condense(FloatMatrix *stiff, FloatMatrix *mass, FloatArray *load, IntArray *what)
const char * giveClassName() const override
virtual void computeStressVector(FloatArray &answer, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep)=0
InternalStateMode
Determines the mode of internal variable.
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]