93 if ( mtrx == LumpedMassMatrix ) {
96 }
else if ( mtrx == StiffnessMatrix ) {
99 }
else if ( mtrx == TangentStiffnessMatrix ) {
102 }
else if ( mtrx == PressureGradientMatrix ) {
105 }
else if ( mtrx == DivergenceMatrix ) {
108 }
else if ( mtrx == PressureLaplacianMatrix ) {
112 OOFEM_ERROR(
"giveCharacteristicMatrix: Unknown Type of characteristic mtrx.");
128 if ( mtrx == ExternalForcesVector ) {
131 }
else if ( mtrx == PressureGradientVector ) {
139 }
else if ( mtrx == MassVelocityVector ) {
147 }
else if ( mtrx == LaplaceVelocityVector ) {
155 }
else if ( mtrx == MassAuxVelocityVector ) {
161 }
else if ( mtrx == DivergenceAuxVelocityVector ) {
167 }
else if ( mtrx == DivergenceVelocityVector ) {
173 }
else if ( mtrx == LumpedMassMatrix ) {
177 OOFEM_ERROR(
"giveCharacteristicVector: Unknown Type of characteristic mtrx.");
184 if ( type != ExternalForcesVector ) {
222 #ifdef __PARALLEL_MODE 225 fprintf(file,
"element %d :\n",
number);
228 iRule->printOutputAt(file, tStep);
241 if ( type == IST_Velocity ) {
245 answer.
at(indx++) = n->giveDof(dofindx)->giveUnknown(VM_Total, atTime);
249 answer.
at(indx++) = n->giveDof(dofindx)->giveUnknown(VM_Total, atTime);
253 answer.
at(indx++) = n->giveDof(dofindx)->giveUnknown(VM_Total, atTime);
257 }
else if ( type == IST_Pressure ) {
261 answer.
at(1) = n->giveDof(dofindx)->giveUnknown(VM_Total, atTime);
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
virtual void computeBodyLoadVectorAt(FloatArray &answer, BodyLoad *load, TimeStep *tStep, ValueModeType mode)=0
Computes the load vector due to body load acting on receiver, at given time step. ...
int number
Component number.
virtual void computeDeviatoricStress(FloatArray &answer, GaussPoint *gp, TimeStep *)=0
Computes deviatoric stress vector in given integration point and solution step from given total strai...
virtual void computeDiagonalMassMtrx(FloatArray &answer, TimeStep *)=0
Calculates diagonal mass matrix as vector.
void computeVectorOf(ValueModeType u, TimeStep *tStep, FloatArray &answer)
Returns local vector of unknowns.
virtual int computeNumberOfDofs()
Computes or simply returns total number of element's local DOFs.
virtual int checkConsistency()
Performs consistency check.
IRResultType initializeFrom(InputRecord *ir)
Initializes receiver acording to object description stored in input record.
double & at(int i)
Coefficient access function.
int giveGlobalNumber() const
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
Class implementing element body load, acting over whole element volume (e.g., the dead weight)...
void clear()
Clears receiver (zero size).
~PFEMElement()
Destructor.
void computeLoadVector(FloatArray &answer, BodyLoad *load, CharType type, ValueModeType mode, TimeStep *tStep)
Computes the contribution of the given body load (volumetric).
virtual void updateInternalState(TimeStep *tStep)
Updates element state after equilibrium in time step has been reached.
virtual void computeDivergenceMatrix(FloatMatrix &answer, TimeStep *atTime)=0
Calculates the velocity divergence matrix.
virtual int giveInternalStateAtNode(FloatArray &answer, InternalStateType type, InternalStateMode mode, int node, TimeStep *atTime)
Returns internal state variable (like stress,strain) at node of element in Reduced form...
virtual void computePressureLaplacianMatrix(FloatMatrix &answer, TimeStep *atTime)=0
Calculates the pressure laplacian matrix.
void giveCharacteristicMatrix(FloatMatrix &answer, CharType, TimeStep *)
Computes characteristic matrix of receiver of requested type in given time step.
virtual void computeGaussPoints()
Initializes the array of integration rules member variable.
virtual void computeGradientMatrix(FloatMatrix &answer, TimeStep *atTime)=0
Calculates the pressure gradient matrix.
virtual void computeVectorOfPressures(ValueModeType mode, TimeStep *tStep, FloatArray &pressures)
PFEMElement(int, Domain *)
Constructor.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
virtual void computeVectorOfVelocities(ValueModeType mode, TimeStep *tStep, FloatArray &velocities)
void beProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
Receiver becomes the result of the product of aMatrix and anArray.
virtual int giveInternalStateAtNode(FloatArray &answer, InternalStateType type, InternalStateMode mode, int node, TimeStep *tStep)
Returns internal state variable (like stress,strain) at node of element in Reduced form...
Initializes the variable VERBOSE, in order to get a few intermediate messages on screen: beginning an...
Class representing vector of real numbers.
This abstract class represent a general base element class for fluid dynamic problems.
void giveCharacteristicVector(FloatArray &answer, CharType, ValueModeType, TimeStep *)
Computes characteristic vector of receiver of requested type in given time step.
virtual int giveSpatialDimension()
Returns the element spatial dimension (1, 2, or 3).
Implementation of matrix containing floating point numbers.
IRResultType
Type defining the return values of InputRecord reading operations.
void assemble(const FloatArray &fe, const IntArray &loc)
Assembles the array fe (typically, the load vector of a finite element) into the receiver, using loc as location array.
void resize(int rows, int cols)
Checks size of receiver towards requested bounds.
std::vector< Dof * >::const_iterator findDofWithDofId(DofIDItem dofID) const
Finds index of DOF with required physical meaning of receiver.
void zero()
Zeroes all coefficients of receiver.
virtual void computeStiffnessMatrix(FloatMatrix &answer, MatResponseMode mode, TimeStep *atTime)=0
Calculates the stiffness matrix.
virtual const IntArray & givePressureDofMask() const =0
Returns mask of pressure Dofs.
std::vector< std::unique_ptr< IntegrationRule > > integrationRulesArray
List of integration rules of receiver (each integration rule contains associated integration points a...
void zero()
Zeroes all coefficient of receiver.
the oofem namespace is to define a context or scope in which all oofem names are defined.
void assemble(const FloatMatrix &src, const IntArray &loc)
Assembles the contribution using localization array into receiver.
Class implementing node in finite element mesh.
Node * giveNode(int i) const
Returns reference to the i-th node of element.
virtual const IntArray & giveVelocityDofMask() const =0
Returns mask of velocity Dofs.
Class representing integration point in finite element program.
Class representing solution step.
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Prints output of receiver to stream, for given time step.
InternalStateMode
Determines the mode of internal variable.
void resize(int s)
Resizes receiver towards requested size.