72 FEMComponent(n, aDomain), dofManArray(), crossSection(0), bodyLoadArray(), boundaryLoadArray(), integrationRulesArray()
132 OOFEM_WARNING(
"The transformation matrix from global -> element local c.s. is not fully supported for this function (yet)");
146 for (
int bNode: bNodes ) {
152 OOFEM_ERROR(
"Local coordinate system is not implemented yet");
261 bool is_GtoL, is_NtoG;
272 OOFEM_ERROR(
"GtoL transformation matrix size mismatch in columns");
275 OOFEM_ERROR(
"GtoL transformation matrix size mismatch in rows");
280 OOFEM_ERROR(
"NtoG transformation matrix size mismatch in columns");
283 OOFEM_ERROR(
"NtoG transformation matrix size mismatch in rows");
290 }
else if ( is_GtoL ) {
292 }
else if ( is_NtoG ) {
308 for (
int n : nodes ) {
324 int nr, nc, lastRowPos = 0, lastColPos = 0;
326 for (
int n : nodes ) {
328 if ( !this->
giveDofManager( n )->computeM2GTransformation(dofManT, dofIDmask) ) {
335 for (
int j = 1; j <= nr; j++ ) {
336 for (
int k = 1; k <= nc; k++ ) {
338 answer.
at(lastRowPos + j, lastColPos + k) = dofManT.
at(j, k);
345 if ( includeInternal ) {
355 for (
int j = 1; j <= nr; j++ ) {
356 for (
int k = 1; k <= nc; k++ ) {
358 answer.
at(lastRowPos + j, lastColPos + k) = dofManT.
at(j, k);
392 IntArray masterDofIDs, nodalArray, ids;
393 locationArray.
clear();
422 locationArray.
clear();
448 IntArray masterDofIDs, nodalArray, dofIDMask;
449 locationArray.
clear();
453 for (
int i = 1; i <= bNodes.
giveSize(); i++ ) {
458 this->
giveDofManager( bNodes.
at(i) )->giveMasterDofIDArray(dofIDMask, masterDofIDs);
469 locationArray.
clear();
473 for (
int i = 1; i <= bNodes.
giveSize(); i++ ) {
477 this->
giveDofManager( bNodes.
at(i) )->giveMasterDofIDArray(dofIDMask, masterDofIDs);
528 if ( dMan == NULL ) {
529 OOFEM_ERROR(
"Element :: addDofManager - dMan is a null pointer");
575 OOFEM_ERROR(
"Unknown Type of characteristic mtrx.");
585 OOFEM_ERROR(
"Unknown Type of characteristic mtrx.");
632 OOFEM_ERROR(
"Unknown Type of characteristic mtrx.");
664 double n1 = 0.0, n2 = 0.0;
668 for (
int j = 1; j <= 3; j++ ) {
670 n1 += triplets.
at(j) * triplets.
at(j);
672 n2 += triplets.
at(j + 3) * triplets.
at(j + 3);
677 for (
int j = 1; j <= 3; j++ ) {
728 for (
int j = 1; j <= 3; j++ ) {
770 iRule->printOutputAt(file, tStep);
773 fprintf(file,
"is not active in current time step\n");
787 iRule->updateYourself(tStep);
830 if (tNow < castingTime ) {
851 for (
auto &gp: *iRule ) {
912 for (
int i = 1; i <= s; i++ ) {
934 if ( !stream.
write(numberOfIntegrationRules) ) {
939 _val = iRule->giveIntegrationRuleType();
940 if ( !stream.
write(_val) ) {
951 if ( !stream.
write(_mode) ) {
961 if ( ( iores = iRule->saveContext(stream, mode, obj) ) !=
CIO_OK ) {
1005 if ( !stream.
read(_nrules) ) {
1011 for (
int i = 1; i <= _nrules; i++ ) {
1012 if ( !stream.
read(dtypes.
at(i)) ) {
1021 for (
int i = 0; i < _nrules; i++ ) {
1025 for (
int i = 0; i < _nrules; i++ ) {
1037 if ( !stream.
read(_mode) ) {
1049 if ( ( iores = iRule->restoreContext(stream, mode,
this) ) !=
CIO_OK ) {
1083 if ( volume < 0. ) {
1089 case 1:
return volume;
1091 case 2:
return sqrt(volume);
1093 case 3:
return cbrt(volume);
1106 OOFEM_ERROR(
"Function not overloaded and necessary interpolator isn't available");
1120 OOFEM_ERROR(
"Function not overloaded and necessary interpolator isn't available");
1134 OOFEM_ERROR(
"Function not overloaded and necessary interpolator isn't available");
1150 double maxDis, minDis, dis;
1156 for (
int i = 2; i <= nnode; i++ ) {
1159 if ( dis > maxDis ) {
1161 }
else if ( dis < minDis ) {
1166 return maxDis - minDis;
1178 if ( normalToCrackPlane.
at(3) < 0.5 ) {
1194 if ( normalToCrackPlane.
at(3) < 0.5 ) {
1252 OOFEM_ERROR(
"Unable to compute mid-plane normal, not supported");
1259 if ( type == IST_ErrorIndicatorLevel ) {
1272 }
else if ( type == IST_InternalStressError ) {
1282 }
else if ( type == IST_PrimaryUnknownError ) {
1292 }
else if ( type == IST_CrossSectionNumber ) {
1296 }
else if ( type == IST_ElementNumber ) {
1312 int ret = this->
giveIPValue(ans, gp, type, tStep);
1313 if ( ret == 0 )
return 0;
1326 OOFEM_ERROR(
"Unsupported internal state value type for computing global IP value");
1335 answer.
at(4) += answer.
at(7);
1336 answer.
at(5) += answer.
at(8);
1337 answer.
at(6) += answer.
at(9);
1342 return this->
giveIPValue(answer, gp, type, tStep);
1358 case EGT_triangle_1:
1359 case EGT_triangle_2:
1363 case EGT_quad_1_interface:
1364 case EGT_quad_21_interface:
1381 OOFEM_ERROR(
"failure (maybe new element type was registered)");
1396 case EGT_quad_1_interface:
1397 case EGT_quad_21_interface:
1400 case EGT_triangle_1:
1401 case EGT_triangle_2:
1427 OOFEM_ERROR(
"failure, unsupported geometry type (%s)",
1440 for (
auto &gp: *iRule ) {
1444 result &= interface->
MMI_map(gp, oldd, tStep);
1461 Set sourceElemSet =
Set(0, & iOldDom);
1474 if ( interface == NULL ) {
1475 OOFEM_ERROR(
"Failed to fetch MaterialStatusMapperInterface.");
1478 result &= interface->MSMI_map( *gp, iOldDom, sourceElemSet, iTStep, * ( ms ) );
1505 return interface->MMI_finish(tStep);
1635 p [ 0 ].x = p [ 0 ].y = p [ 0 ].z = 0.0;
1638 if ( ( node = this->
giveNode(i) ) ) {
1654 go = CreateAnnText3D(p, num);
1655 EGWithMaskChangeAttributes(COLOR_MASK | LAYER_MASK, go);
1656 EMAddGraphicsToModel(ESIModel(), go);
1664 if ( type == IST_RelMeshDensity ) {
CrossSection * giveCrossSection()
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
virtual bool isActivated(TimeStep *tStep)
virtual void computeBoundaryEdgeLoadVector(FloatArray &answer, BoundaryLoad *load, int edge, CharType type, ValueModeType mode, TimeStep *tStep, bool global=true)
Computes the contribution of the given load at the given boundary edge.
contextIOResultType storeYourself(DataStream &stream) const
Stores array to output stream.
int giveNumberOfColumns() const
Returns number of columns of receiver.
void enumerate(int maxVal)
Resizes receiver and enumerates from 1 to the maximum value given.
virtual void postInitialize()
Performs post initialization steps.
IntArray dofManArray
Array containing dofmanager numbers.
integrationDomain
Used by integrator class to supply integration points for proper domain to be integrated (Area...
IntArray * giveBoundaryLoadArray()
Returns array containing load numbers of boundary loads acting on element.
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in full form.
elementParallelMode parallel_mode
Determines the parallel mode of the element.
void computeVectorOf(ValueModeType u, TimeStep *tStep, FloatArray &answer)
Returns local vector of unknowns.
virtual IntegrationRule * giveBoundaryEdgeIntegrationRule(int order, int boundary)
Sets up a suitable integration rule for integrating over the requested boundary.
virtual IntegrationRule * giveDefaultIntegrationRulePtr()
Access method for default integration rule.
virtual double computeLength()
Computes the length (zero for all but 1D geometries)
virtual int computeNumberOfDofs()
Computes or simply returns total number of element's local DOFs.
virtual int adaptiveMap(Domain *oldd, TimeStep *tStep)
Initializes the internal state variables stored in all IPs according to state in given domain...
Element_Geometry_Type
Enumerative type used to classify element geometry Possible values are: EGT_point - point in space EG...
int giveGlobalNumber() const
Domain * domain
Link to domain object, useful for communicating with other FEM components.
double computeMeanSize()
Computes the size of the element defined as its length.
virtual double computeVolume()
Computes the volume.
virtual double giveRelativeSelfComputationalCost()
Returns the weight representing relative computational cost of receiver The reference element is tria...
Abstract class representing field of primary variables (those, which are unknown and are typically as...
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
double & at(int i)
Coefficient access function.
int packUnknowns(DataStream &buff, TimeStep *tStep)
Pack all necessary data of element (according to its parallel_mode) integration points into given com...
int giveGlobalNumber() const
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
void setIntegrationRules(std::vector< std::unique_ptr< IntegrationRule > > irlist)
Sets integration rules.
Class implementing element body load, acting over whole element volume (e.g., the dead weight)...
The class representing the general material model adaptive mapping interface.
Class representing a general abstraction for surface finite element interpolation class...
void clear()
Clears receiver (zero size).
virtual void giveInternalDofManDofIDMask(int inode, IntArray &answer) const
Returns internal dofmanager dof mask for node.
virtual ElementSide * giveSide(int i) const
Returns reference to the i-th side of element.
virtual void boundarySurfaceGiveNodes(IntArray &answer, int boundary)=0
Gives the boundary nodes for requested boundary number.
virtual void computeTangentFromEdgeLoad(FloatMatrix &answer, EdgeLoad *load, int boundary, MatResponseMode rmode, TimeStep *tStep)
Computes the tangent contribution of the given load at the given boundary.
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]
virtual void giveDofManDofIDMask(int inode, IntArray &answer) const
Returns dofmanager dof mask for node.
virtual void giveInputRecord(DynamicInputRecord &input)
Setups the input record string of receiver.
virtual void updateYourself(TimeStep *tStep)
Updates element state after equilibrium in time step has been reached.
void beVectorForm(const FloatMatrix &aMatrix)
Reciever will be a vector with 9 components formed from a 3x3 matrix.
virtual void initForNewStep()
Initializes receivers state to new time step.
InternalStateValueType
Determines the type of internal variable.
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
symmetric 3x3 tensor, packed with off diagonal components multiplied by 2 (engineering strain vector...
Class representing a general abstraction for finite element interpolation class.
Base class for dof managers.
int crossSection
Number of associated cross section.
virtual double giveLength(const FEICellGeometry &cellgeo) const
Computes the exact length.
NodalRecoveryModel * giveSmoother()
Returns the actual Smoother associated to receiver.
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Prints output of receiver to stream, for given time step.
virtual void giveCharacteristicMatrix(FloatMatrix &answer, CharType type, TimeStep *tStep)
Computes characteristic matrix of receiver of requested type in given time step.
int unpackAndUpdateUnknowns(DataStream &buff, TimeStep *tStep)
Unpack and updates all necessary data of element (according to its parallel_mode) integration points ...
virtual double giveCoordinate(int i)
virtual ~Element()
Virtual destructor.
virtual void giveInputRecord(DynamicInputRecord &input)
Setups the input record string of receiver.
Class implementing an array of integers.
int & at(int i)
Coefficient access function.
virtual int read(int *data, int count)=0
Reads count integer values into array pointed by data.
MatResponseMode
Describes the character of characteristic material matrix.
virtual void computeLoadVector(FloatArray &answer, BodyLoad *load, CharType type, ValueModeType mode, TimeStep *tStep)
Computes the contribution of the given body load (volumetric).
virtual int giveNumberOfDofManagers() const
void setElementList(IntArray newElements)
Sets list of elements within set.
virtual FEInterpolation * giveInterpolation() const
virtual void computeGaussPoints()
Initializes the array of integration rules member variable.
Element(int n, Domain *aDomain)
Constructor.
void rotatedWith(FloatMatrix &r, char mode)
Returns the receiver a rotated according the change-of-base matrix r.
virtual double giveVolume(const FEICellGeometry &cellgeo) const
Computes the exact volume.
virtual void drawScalar(oofegGraphicContext &gc, TimeStep *tStep)
Abstract base class representing integration rule.
#define _IFT_Element_bodyload
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream.
virtual double computeVolumeAreaOrLength()
Computes the volume, area or length of the element depending on its spatial dimension.
virtual void giveBoundarySurfaceNodes(IntArray &bNodes, int boundary)
Returns list of receiver boundary nodes for given surface.
Base abstract class representing cross section in finite element mesh.
void computeVectorOfPrescribed(ValueModeType u, TimeStep *tStep, FloatArray &answer)
Returns local vector of prescribed unknowns.
virtual int giveNumberOfNodes() const
Returns number of nodes of receiver.
void beMatrixForm(const FloatArray &aArray)
ErrorEstimator * giveErrorEstimator()
Returns Error Estimator associated to receiver.
Class representing a general abstraction for finite element interpolation class.
virtual int write(const int *data, int count)=0
Writes count integer values from array pointed by data.
bool isNotEmpty() const
Tests for empty matrix.
ElementSide * giveSide(int n)
Service for accessing particular domain element side.
int activityTimeFunction
Element activity time function. If defined, nonzero value indicates active receiver, zero value inactive element.
CrossSection * giveCrossSection(int n)
Service for accessing particular domain cross section model.
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Prints output of receiver to stream, for given time step.
#define _IFT_Element_partitions
virtual double computeVolumeAround(GaussPoint *gp)
Returns volume related to given integration point.
virtual IntegrationRule * giveBoundarySurfaceIntegrationRule(int order, int boundary)
Sets up a suitable integration rule for integrating over the requested boundary.
IntegrationRule * createIRule(IntegrationRuleType name, int number, Element *e)
FloatMatrix elemLocalCS
Transformation material matrix, used in orthotropic and anisotropic materials, global->local transfor...
void giveUnknownVector(FloatArray &answer, const IntArray &dofMask, ValueModeType mode, TimeStep *tStep, bool padding=false)
Assembles the vector of unknowns in global c.s for given dofs of receiver.
virtual bool computeDofTransformationMatrix(FloatMatrix &answer, const IntArray &nodes, bool includeInternal)
Returns transformation matrix for DOFs from global coordinate system to local coordinate system in no...
virtual double giveArea(const FEICellGeometry &cellgeo) const
Computes the exact area.
Abstract base class representing a boundary load (force, momentum, ...) that acts directly on a bound...
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
virtual IntegrationRule * giveBoundaryEdgeIntegrationRule(int order, int boundary)
Returns boundary edge integration rule.
Material * giveMaterial(int n)
Service for accessing particular domain material model.
int globalNumber
In parallel mode, globalNumber contains globally unique DoFManager number.
virtual void boundaryEdgeGiveNodes(IntArray &answer, int boundary)=0
Gives the boundary nodes for requested boundary number.
double dotProduct(const FloatArray &x) const
Computes the dot product (or inner product) of receiver and argument.
virtual int estimatePackSize(DataStream &buff, GaussPoint *ip)=0
Estimates the necessary pack size to hold all packed data of receiver.
int giveNodalVector(const FloatArray *&ptr, int node)
Returns vector of recovered values for given node and region.
virtual bool requiresTransformation()
Indicates, whether dofManager requires the transformation.
void clear()
Clears the array (zero size).
int material
Number of associated material.
virtual int packUnknowns(DataStream &buff, TimeStep *tStep, GaussPoint *ip)=0
Pack all necessary data of integration point (according to element parallel_mode) into given communic...
void resizeWithData(int, int)
Checks size of receiver towards requested bounds.
#define _IFT_Element_boundaryload
void giveMasterDofIDArray(const IntArray &dofIDArry, IntArray &masterDofIDs) const
Returns master dof ID array of receiver.
void giveLocationArray(IntArray &locationArray, const UnknownNumberingScheme &s, IntArray *dofIds=NULL) const
Returns the location array (array of code numbers) of receiver for given numbering scheme...
#define _IFT_Element_nodes
Set of elements, boundaries, edges and/or nodes.
virtual int MMI_finish(TimeStep *tStep)=0
Finishes the mapping for given time step.
Abstract base class allowing to control the way, how equations are assigned to individual DOFs...
CrossSection * giveCrossSection()
Returns reference to cross section associated to related element of receiver.
void rotatedWith(const FloatMatrix &r, char mode= 'n')
Returns the receiver 'a' transformed using give transformation matrix r.
Abstract base class representing an edge load (force, momentum, ...) that acts directly on a edge bou...
Wrapper around element definition to provide FEICellGeometry interface.
IntArray * giveBodyLoadArray()
Returns array containing load numbers of loads acting on element.
void resizeWithValues(int n, int allocChunk=0)
Checks size of receiver towards requested bounds.
virtual int global2local(FloatArray &answer, const FloatArray &gcoords, const FEICellGeometry &cellgeo)=0
Evaluates local coordinates from given global ones.
void beProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
Receiver becomes the result of the product of aMatrix and anArray.
IntArray bodyLoadArray
Array containing indexes of loads (body loads and boundary loads are kept separately), that apply on receiver.
virtual bool giveRotationMatrix(FloatMatrix &answer)
Transformation matrices updates rotation matrix between element-local and primary DOFs...
virtual double giveCharacteristicValue(CharType type, TimeStep *tStep)
Computes characteristic value of receiver of requested type in given time step.
double giveCharacteristicLengthForAxisymmElements(const FloatArray &normalToCrackPlane)
Returns the size of an axisymmetric element in the given direction if the direction is in the XY plan...
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...
int giveGlobalIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
void resizeWithValues(int s, int allocChunk=0)
Checks size of receiver towards requested bounds.
virtual int computeNumberOfGlobalDofs()
Computes the total number of element's global dofs.
virtual RemeshingCriteria * giveRemeshingCrit()=0
Returns reference to associated remeshing criteria.
virtual double giveLengthInDir(const FloatArray &normalToCrackPlane)
Default implementation returns length of element projection into specified direction.
Abstract base class for all material models.
virtual int giveLocalCoordinateSystem(FloatMatrix &answer)
Returns local coordinate system of receiver Required by material models with ortho- and anisotrophy...
double at(int i, int j) const
Coefficient access function.
elementParallelMode
In parallel mode, this type indicates the mode of element.
virtual int mapStateVariables(Domain &iOldDom, const TimeStep &iTStep)
Maps the internal state variables stored in all IPs from the old domain to the new domain...
double giveIntrinsicTime()
Returns intrinsic time, e.g. time in which constitutive model is evaluated.
void reserve(int s)
Allocates enough size to fit s, and clears the array.
const IntArray & giveElementsWithMaterialNum(int iMaterialNum) const
Returns array with indices of elements that have a given material number.
virtual DofManager * giveInternalDofManager(int i) const
Returns i-th internal element dof manager of the receiver.
virtual void drawAnnotation(oofegGraphicContext &gc, TimeStep *tStep)
contextIOResultType restoreYourself(DataStream &stream)
Restores array from image on stream.
void setDofManagers(const IntArray &dmans)
Sets receiver dofManagers.
Function * giveFunction(int n)
Service for accessing particular domain load time function.
The base class for all error estimation or error indicator algorithms.
int numberOfGaussPoints
Number of integration points as specified by nip.
virtual integrationDomain giveIntegrationDomain() const
Returns integration domain for receiver, used to initialize integration point over receiver volume...
Abstract base class representing a material status information.
virtual int giveNumberOfBoundarySides()
Initializes the variable VERBOSE, in order to get a few intermediate messages on screen: beginning an...
Class representing vector of real numbers.
int estimatePackSize(DataStream &buff)
Estimates the necessary pack size to hold all packed data of receiver.
void addDofManager(DofManager *dMan)
Abstract base class representing a surface load (force, momentum, ...) that acts directly on a surfac...
Element is local, there are no contributions from other domains to this element.
virtual int giveSpatialDimension()
Returns the element spatial dimension (1, 2, or 3).
Implementation of matrix containing floating point numbers.
#define _IFT_Element_remote
IRResultType
Type defining the return values of InputRecord reading operations.
#define _IFT_Element_crosssect
double cbrt(double x)
Returns the cubic root of x.
virtual int giveIPValue(FloatArray &answer, GaussPoint *ip, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in Reduced form.
virtual double computeArea()
Computes the area (zero for all but 2d geometries).
void givePrescribedUnknownVector(FloatArray &answer, const IntArray &dofMask, ValueModeType mode, TimeStep *tStep)
Assembles the vector of prescribed unknowns in nodal c.s for given dofs of receiver.
double giveCharacteristicLengthForPlaneElements(const FloatArray &normalToCrackPlane)
Returns the size of element in the given direction if the direction is in the XY plane, otherwise gives the mean size defined as the square root of the element area.
virtual IntegrationRule * giveBoundarySurfaceIntegrationRule(int order, int boundary)
Returns boundary surface integration rule.
void resize(int rows, int cols)
Checks size of receiver towards requested bounds.
virtual double predictRelativeComputationalCost()
Returns the weight representing relative computational cost of receiver The reference element is tria...
Class representing a general abstraction for surface finite element interpolation class...
void setBodyLoads(const IntArray &bodyLoads)
Sets receiver bodyLoadArray.
#define CM_DefinitionGlobal
virtual double predictRelativeComputationalCost(GaussPoint *ip)
Returns the weight representing relative computational cost of receiver The reference cross section i...
void append(const FloatArray &a)
Appends array to reciever.
Class implementing element side having some DOFs in finite element mesh.
const char * __Element_Geometry_TypeToString(Element_Geometry_Type _value)
void followedBy(const IntArray &b, int allocChunk=0)
Appends array b at the end of receiver.
virtual int giveNumberOfInternalDofManagers() const
virtual integrationDomain giveIntegrationDomain() const =0
Returns the integration domain of the interpolator.
virtual int adaptiveFinish(TimeStep *tStep)
Finishes the mapping for given time step.
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
virtual void drawDeformedGeometry(oofegGraphicContext &gc, TimeStep *tStep, UnknownType)
int computeNumberOfPrimaryMasterDofs()
Computes the total number of element's primary master DOFs.
virtual void giveBoundaryLocationArray(IntArray &locationArray, const IntArray &bNodes, const UnknownNumberingScheme &s, IntArray *dofIds=NULL)
Returns the location array for the boundary of the element.
virtual Interface * giveInterface(InterfaceType t)
Interface requesting service.
#define _IFT_Element_activityTimeFunction
ClassFactory & classFactory
virtual bool computeLocalCoordinates(FloatArray &answer, const FloatArray &gcoords)
Computes the element local coordinates from given global coordinates.
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
std::vector< std::unique_ptr< IntegrationRule > > integrationRulesArray
List of integration rules of receiver (each integration rule contains associated integration points a...
Element in active domain is only mirror of some remote element.
virtual int MMI_map(GaussPoint *gp, Domain *oldd, TimeStep *tStep)=0
Maps the required internal state variables from old mesh oldd to given ip.
virtual FloatArray * giveCoordinates()
void zero()
Zeroes all coefficient of receiver.
Domain * giveDomain() const
IntArray partitions
List of partition sharing the shared element or remote partition containing remote element counterpar...
virtual Element_Geometry_Type giveGeometryType() const =0
Returns the geometry type fo the interpolator.
virtual int unpackAndUpdateUnknowns(DataStream &buff, TimeStep *tStep, GaussPoint *ip)=0
Unpack and updates all necessary data of given integration point (according to element parallel_mode)...
void beUnitMatrix()
Sets receiver to unity matrix.
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream.
virtual void giveCharacteristicVector(FloatArray &answer, CharType type, ValueModeType mode, TimeStep *tStep)
Computes characteristic vector of receiver of requested type in given time step.
void beProductOf(const FloatMatrix &a, const FloatMatrix &b)
Assigns to the receiver product of .
InternalStateValueType giveInternalStateValueType(InternalStateType type)
virtual bool computeGtoLRotationMatrix(FloatMatrix &answer)
Returns transformation matrix from global c.s.
int giveSize() const
Returns the size of receiver.
#define OOFEG_ELEMENT_ANNOTATION_LAYER
virtual Element_Geometry_Type giveGeometryType() const
Returns the element geometry type.
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual double giveElementError(EE_ErrorType type, Element *elem, TimeStep *tStep)=0
Returns the element error.
int giveNumberOfPrimaryMasterDofs(const IntArray &dofIDArray) const
Returns the number of primary dofs on which receiver dofs (given in dofArray) depend on...
DofManager * giveDofManager(int i) const
void clear()
Sets size of receiver to be an empty matrix. It will have zero rows and zero columns size...
Class implementing node in finite element mesh.
virtual void computeBoundarySurfaceLoadVector(FloatArray &answer, BoundaryLoad *load, int boundary, CharType type, ValueModeType mode, TimeStep *tStep, bool global=true)
Computes the contribution of the given load at the given boundary surface in global coordinate system...
virtual void updateLocalNumbering(EntityRenumberingFunctor &f)
Local renumbering support.
virtual bool isCast(TimeStep *tStep)
virtual void initTempStatus(GaussPoint *gp)
Initializes temporary variables stored in integration point status at the beginning of new time step...
DofManager * giveDofManager(int n)
Service for accessing particular domain dof manager.
The base class for all recovery models, which perform nodal averaging or projection processes for int...
Node * giveNode(int i) const
Returns reference to the i-th node of element.
int giveNumberOfRows() const
Returns number of rows of receiver.
void computeBoundaryVectorOf(const IntArray &bNodes, const IntArray &dofIDMask, ValueModeType u, TimeStep *tStep, FloatArray &answer, bool padding=false)
Boundary version of computeVectorOf.
void giveLocationArray(const IntArray &dofIDArry, IntArray &locationArray, const UnknownNumberingScheme &s) const
Returns location array (array containing for each requested dof related equation number) for given nu...
virtual void drawRawGeometry(oofegGraphicContext &gc, TimeStep *tStep)
virtual double evaluateAtTime(double t)
Returns the value of the function at given time.
virtual void computeTangentFromSurfaceLoad(FloatMatrix &answer, SurfaceLoad *load, int boundary, MatResponseMode rmode, TimeStep *tStep)
Computes the tangent contribution of the given load at the given boundary.
Class representing integration point in finite element program.
#define OOFEM_WARNING(...)
virtual void computeMidPlaneNormal(FloatArray &answer, const GaussPoint *gp)
Computes mid-plane normal of receiver at integration point.
virtual void giveBoundaryEdgeNodes(IntArray &bNodes, int boundary)
Returns list of receiver boundary nodes for given edge.
IntArray boundaryLoadArray
Class representing solution step.
virtual int computeGlobalCoordinates(FloatArray &answer, const FloatArray &lcoords)
Computes the global coordinates from given element's local coordinates.
The top abstract class of all classes constituting the finite element mesh.
virtual void drawSpecial(oofegGraphicContext &gc, TimeStep *tStep)
int numberOfDofMans
Number of dofmanagers.
InternalStateMode
Determines the mode of internal variable.
virtual void local2global(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)=0
Evaluates global coordinates from given local ones.
virtual Material * giveMaterial()
virtual void drawYourself(oofegGraphicContext &gc, TimeStep *tStep)
void resize(int s)
Resizes receiver towards requested size.
virtual Material * giveMaterial(IntegrationPoint *ip)=0
Returns the material associated with the GP.
OGC_PlotModeType giveIntVarPlotMode()