442 virtual int computeNumberOfGlobalDofs();
447 int computeNumberOfPrimaryMasterDofs();
455 virtual bool computeGtoLRotationMatrix(
FloatMatrix &answer);
462 virtual bool giveRotationMatrix(
FloatMatrix &answer);
475 virtual bool computeDofTransformationMatrix(
FloatMatrix &answer,
const IntArray &nodes,
bool includeInternal);
521 {
OOFEM_ERROR(
"Missing support for computing unknown vector at local element coordinates\n"); }
532 virtual double computeVolumeAreaOrLength();
537 double computeMeanSize();
542 virtual double computeVolume();
547 virtual double computeArea();
552 virtual double computeLength();
572 virtual IntArray giveBoundaryEdgeNodes(
int boundary,
bool includeHierarchical=
false)
const;
579 virtual IntArray giveBoundarySurfaceNodes(
int boundary,
bool includeHierarchical=
false)
const;
586 virtual IntArray giveBoundaryNodes(
int boundary)
const;
593 virtual std::unique_ptr<IntegrationRule> giveBoundaryEdgeIntegrationRule(
int order,
int boundary);
600 virtual std::unique_ptr<IntegrationRule> giveBoundarySurfaceIntegrationRule(
int order,
int boundary);
632 if ( ( i <= 0 ) || ( i >
dofManArray.giveSize() ) ) {
708 void setDofManagers(
const IntArray &dmans);
714 void setDofManager(
int id,
int dm);
720 void setBodyLoads(
const IntArray &bodyLoads);
726 void setIntegrationRules(std :: vector< std :: unique_ptr< IntegrationRule > > irlist);
754 int giveRegionNumber();
783 virtual void updateYourself(
TimeStep *tStep);
812 virtual bool isActivated(
TimeStep *tStep);
824 virtual bool isCast(
TimeStep *tStep);
834 virtual void initForNewStep();
931 virtual double giveLengthInDir(
const FloatArray &normalToCrackPlane) ;
946 double giveCharacteristicLengthForPlaneElements(
const FloatArray &normalToCrackPlane) ;
954 double giveCharacteristicLengthForAxisymmElements(
const FloatArray &normalToCrackPlane) ;
1007 virtual int giveLocalCoordinateSystem(
FloatMatrix &answer);
1036 virtual int mapStateVariables(
Domain &iOldDom,
const TimeStep &iTStep);
1049 virtual int adaptiveFinish(
TimeStep *tStep);
1062 template<
class T >
void ipEvaluator( T *src,
void ( T :: *f )(
GaussPoint *gp ) );
1064 template<
class T,
class S >
void ipEvaluator(T *src,
void ( T :: *f )(
GaussPoint *,
S & ),
S &_val);
1192 virtual double predictRelativeComputationalCost();
1212 void initializeFrom(
InputRecord &ir,
int priority)
override;
1213 void initializeFinish()
override;
1215 void postInitialize()
override;
1221 void printOutputAt(FILE *file,
TimeStep *tStep)
override;
1232 if (this->globalEdgeIDs.
isEmpty()) {
1235 this->globalEdgeIDs.
at(iedge)=globalID;
1238 if (this->globalSurfaceIDs.
isEmpty()) {
1241 this->globalSurfaceIDs.
at(isurf)=globalID;
1258template<
class T >
void
1259Element :: ipEvaluator( T *src,
void ( T :: *f )(
GaussPoint *gp ) )
1268template<
class T,
class S >
void
1269Element :: ipEvaluator(T *src,
void ( T :: *f )(
GaussPoint *,
S & ),
S &_val)
1273 ( src->*f )(gp, _val);
virtual void giveElementDofIDMask(IntArray &answer) const
void setMaterial(int matIndx)
void setActivityTimeFunctionNumber(int funcIndx)
int giveGlobalNumber() const
Node * giveNode(int i) const
static ParamKey IPK_Element_crosssect
IntArray boundaryLoadArray
virtual void updateBeforeNonlocalAverage(TimeStep *tStep)
virtual void drawRawGeometry(oofegGraphicContext &gc, TimeStep *tStep)
virtual double giveCharacteristicLength(const FloatArray &normalToCrackPlane)
virtual void computeGaussPoints()
void setSharedEdgeID(int iedge, int globalID)
virtual void giveBoundaryLocationArray(IntArray &locationArray, const IntArray &bNodes, const UnknownNumberingScheme &s, IntArray *dofIds=NULL)
virtual int giveNumberOfDofs()
void setNumberOfDofManagers(int i)
Sets number of element dof managers.
IntArray dofManArray
Array containing dofmanager numbers.
virtual const IntArray giveLocation()
static ParamKey IPK_Element_nodes
virtual FEInterpolation * giveInterpolation() const
virtual FEInterpolation * giveInterpolation(DofIDItem id) const
virtual elementParallelMode giveKnotSpanParallelMode(int) const
static ParamKey IPK_Element_bodyload
virtual int giveNumberOfBoundarySides()
Returns number of boundaries (entities of element_dimension-1: points, edges, surfaces).
void setSharedSurfaceID(int isurf, int globalID)
virtual void giveInternalDofManDofIDMask(int inode, IntArray &answer) const
virtual int giveSpatialDimension()
int getActivityTimeFunctionNumber()
virtual int giveNumberOfNodes() const
virtual void giveLocalIntVarMaxMin(oofegGraphicContext &gc, TimeStep *tStep, double &emin, double &emax)
const IntArray & giveDofManArray() const
virtual int giveNumberOfInternalDofManagers() const
virtual int giveNumberOfSurfaces() const
const IntArray * giveSharedEdgeIDs() const
virtual double giveCharacteristicSize(GaussPoint *gp, FloatArray &normalToCrackPlane, ElementCharSizeMethod method)
virtual void setInternalDofManager(int num, std::unique_ptr< DofManager > dm)
virtual double giveParentElSize() const
virtual Element_Geometry_Type giveSurfaceGeometryType(int id) const
Returns the receiver surface geometry type.
virtual int computeNumberOfDofs()
static ParamKey IPK_Element_activityTimeFunction
virtual void giveDofManDofIDMask(int inode, IntArray &answer) const
virtual void setCrossSection(int csIndx)
virtual int giveNumberOfEdges() const
std::vector< std ::unique_ptr< IntegrationRule > > & giveIntegrationRulesArray()
const IntArray & giveBodyLoadList() const
virtual MaterialMode giveMaterialMode()
static ParamKey IPK_Element_nip
virtual void drawScalar(oofegGraphicContext &gc, TimeStep *tStep)
const IntArray & giveBoundaryLoadList() const
int giveNumberOfIntegrationRules()
virtual void showSparseMtrxStructure(CharType mtrx, oofegGraphicContext &gc, TimeStep *tStep)
Shows sparse structure.
void giveLocationArray(IntArray &locationArray, const UnknownNumberingScheme &s, IntArray *dofIds=NULL) const
virtual const FEInterpolation * getGeometryInterpolation() const
virtual double giveRelativeSelfComputationalCost()
Element(const Element &src)=delete
virtual int giveIntegrationRuleLocalCodeNumbers(IntArray &answer, IntegrationRule &ie)
int numberOfDofMans
Number of dofmanagers.
int giveMaterialNumber() const
virtual int adaptiveUpdate(TimeStep *tStep)
int activityTimeFunction
Element activity time function. If defined, nonzero value indicates active receiver,...
virtual int giveInternalStateAtSide(FloatArray &answer, InternalStateType type, InternalStateMode mode, int side, TimeStep *tStep)
const IntArray * givePartitionList() const
virtual IntegrationRule * giveIntegrationRule(int i)
std::vector< std ::unique_ptr< IntegrationRule > > integrationRulesArray
static ParamKey IPK_Element_remote
elementParallelMode giveParallelMode() const
int material
Number of associated material.
virtual DofManager * giveInternalDofManager(int i) const
int crossSection
Number of associated cross section.
const char * giveClassName() const override
virtual void recalculateCoordinates(int nodeNumber, FloatArray &coords)
virtual void initializeYourself(TimeStep *timeStepWhenICApply)
virtual int giveNumberOfDofManagers() const
IntArray globalSurfaceIDs
virtual void updateInternalState(TimeStep *tStep)
FloatMatrix elemLocalCS
Transformation material matrix, used in orthotropic and anisotropic materials, global->local transfor...
static ParamKey IPK_Element_boundaryload
virtual IntegrationRule * giveDefaultIntegrationRulePtr()
virtual void drawDeformedGeometry(oofegGraphicContext &gc, TimeStep *tStep, UnknownType)
void setGlobalNumber(int num)
virtual Element_Geometry_Type giveEdgeGeometryType(int id) const
Returns the receiver edge geometry type.
Element(int n, Domain *aDomain)
virtual int testElementExtension(ElementExtension ext)
int giveDofManagerNumber(int i) const
static ParamKey IPK_Element_partitions
static ParamKey IPK_Element_mat
virtual void computeField(ValueModeType mode, TimeStep *tStep, const FloatArray &lcoords, FloatArray &answer)
virtual void drawSpecial(oofegGraphicContext &gc, TimeStep *tStep)
static ParamKey IPK_Element_lcs
void setParallelMode(elementParallelMode _mode)
Sets parallel mode of element.
const IntArray * giveSharedSurfaceIDs() const
void setPartitionList(IntArray &pl)
virtual double computeVolumeAround(GaussPoint *gp)
int checkConsistency() override
virtual void showExtendedSparseMtrxStructure(CharType mtrx, oofegGraphicContext &gc, TimeStep *tStep)
Shows extended sparse structure (for example, due to nonlocal interactions for tangent stiffness).
elementParallelMode parallel_mode
Determines the parallel mode of the element.
virtual int giveDefaultIntegrationRule() const
virtual double predictRelativeRedistributionCost()
virtual Element_Geometry_Type giveGeometryType() const =0
Domain * domain
Link to domain object, useful for communicating with other FEM components.
int number
Component number.
FEMComponent(int n, Domain *d)
@ Element_remote
Element in active domain is only mirror of some remote element.
@ Element_local
Element is local, there are no contributions from other domains to this element.
InternalStateMode
Determines the mode of internal variable.
oofem::oofegGraphicContext gc[OOFEG_LAST_LAYER]