35 #ifndef structuralelementevaluator_h 36 #define structuralelementevaluator_h 176 #endif //structuralelementevaluator_h This class represent a new concept on how to define elements.
virtual IntegrationRule * giveMassMtrxIntegrationRule()
Returns the integration rule for mass matrices, if relevant.
void computeVectorOf(ValueModeType u, TimeStep *tStep, FloatArray &answer)
Returns local vector of unknowns.
virtual void computeNMatrixAt(FloatMatrix &answer, GaussPoint *gp)=0
Computes the matrix for which the unknown field is obtained, typically [N1, 0, N2, 0, ...; 0, N1, 0, N2, ...].
virtual void computeLumpedMassMatrix(FloatMatrix &answer, TimeStep *tStep)
Computes lumped mass matrix of receiver.
Abstract class representing field of primary variables (those, which are unknown and are typically as...
virtual void giveCharacteristicVector(FloatArray &answer, CharType type, ValueModeType mode, TimeStep *tStep)
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
int rotationMatrixDefined
Flag indicating if transformation matrix has been already computed.
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
Abstract base class for all finite elements.
virtual int giveIntegrationElementLocalCodeNumbers(IntArray &answer, Element *elem, IntegrationRule *ie)
Assembles the local element code numbers of given integration element (sub-patch) This is done by obt...
void computeStrainVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep, FloatArray &u)
Optimized version, allowing to pass element displacements as parameter.
virtual void computeConsistentMassMatrix(FloatMatrix &answer, TimeStep *tStep, double &mass)
Computes consistent mass matrix of receiver using numerical integration over element volume...
virtual double computeVolumeAround(GaussPoint *gp)
Class implementing an array of integers.
MatResponseMode
Describes the character of characteristic material matrix.
virtual Element * giveElement()=0
virtual void computeStressVector(FloatArray &answer, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep)=0
Computes the stress vector.
Abstract base class representing integration rule.
virtual void giveCharacteristicMatrix(FloatMatrix &answer, CharType mtrx, TimeStep *tStep)
virtual void computeConstitutiveMatrixAt(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)=0
Computes constitutive matrix of receiver.
virtual void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, TimeStep *tStep)
void clear()
Clears the array (zero size).
UnknownType
Type representing particular unknown (its physical meaning).
virtual ~StructuralElementEvaluator()
friend void drawIGAPatchDeformedGeometry(Element *elem, StructuralElementEvaluator *se, oofegGraphicContext &gc, TimeStep *tStep, UnknownType)
virtual void giveInternalForcesVector(FloatArray &answer, TimeStep *tStep, bool useUpdatedGpRecord=false)
Class representing vector of real numbers.
Implementation of matrix containing floating point numbers.
void updateInternalState(TimeStep *tStep)
void computeVectorOf(PrimaryField &field, const IntArray &dofIdMask, ValueModeType u, TimeStep *tStep, FloatArray &answer)
void computeVectorOf(ValueModeType u, TimeStep *tStep, FloatArray &answer)
StructuralElementEvaluator()
virtual void giveMassMtrxIntegrationMask(IntArray &answer)
Returns mask indicating, which unknowns (their type and ordering is the same as element unknown vecto...
bool isActivated(TimeStep *tStep)
the oofem namespace is to define a context or scope in which all oofem names are defined.
Class representing integration point in finite element program.
Class representing solution step.
virtual void computeBMatrixAt(FloatMatrix &answer, GaussPoint *gp)=0
FloatMatrix rotationMatrix