38 #include "../sm/EngineeringModels/qclinearstatic.h" 85 OOFEM_ERROR(
"\"qcNode\" can be used only in \"QClinearStatic\" EngngModel");
104 for (
int i = 1; i <= countOfMasterNodes; i++ ) {
106 OOFEM_WARNING(
"Mismatch in parallel mode of qcNode and master");
155 OOFEM_ERROR(
"Couldn't find closest element (automatically).");
171 for (
Dof *dof : *
this ) {
177 OOFEM_ERROR(
"Requested interpolation for dof id %d doesn't exist in element %d.",
180 #if 0 // This won't work (yet), as it requires some more general FEI classes, or something similar. 181 if ( fei->hasMultiField() ) {
183 IntArray masterDofIDs, masterNodesDup, dofids;
185 masterContribution.flatten(multiContribution);
186 masterDofIDs.
clear();
191 sdof->
initialize(masterNodesDup, & masterDofIDs, masterContribution);
230 OOFEM_ERROR(
"qcNode is used in unsupported Engineering Models");
254 this->
dofTypemap =
new std :: map< int, int >();
259 if ( DofTypeMapSize == 0 ) {
266 for (
int i = 1; i <= DofTypeMapSize; i++ ) {
281 for (
Dof *dof : *
this ) {
286 for (
Dof *dof : *
this ) {
The base class for all spatial localizers.
int giveNumberOfColumns() const
Returns number of columns of receiver.
virtual bool nodeInFullSolvedDomainTest(Node *n)
virtual void evalN(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo)=0
Evaluates the array of interpolation functions (shape functions) at given point.
virtual int giveQcNodeType()
int giveGlobalNumber() const
Domain * domain
Link to domain object, useful for communicating with other FEM components.
virtual int giveQcApproachNumber()
virtual void postInitialize()
Performs post-initialization such like checking if there are any slave dofs etc.
virtual int checkConsistency()
Allows programmer to test some internal data, before computation begins.
EngngModel * giveEngngModel()
Returns engineering model to which receiver is associated.
void printOutputAt(FILE *stream, TimeStep *tStep)
Prints output of receiver to stream, for given time step.
const IntArray & giveDefaultNodeDofIDArry()
Returns default DofID array which defines physical meaning of particular DOFs.
Abstract base class for all finite elements.
virtual int giveMasterElementNumber()
virtual void printDofOutputAt(FILE *stream, Dof *iDof, TimeStep *tStep)
DOF printing routine.
virtual void setAsRepnode()
#define _IFT_qcNode_masterElement
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Class implementing an array of integers.
virtual FEInterpolation * giveInterpolation() const
bool hasSameLCS(Node *remote)
Returns true, if the local coordinate systems of receiver and given node are the same.
virtual int giveNumberOfNodes() const
Returns number of nodes of receiver.
Class representing a general abstraction for finite element interpolation class.
This class implements linear static engineering problem.
std::map< int, int > * giveDofTypeMap()
Returns map from DofIDItem to dofType.
virtual void setAsHanging()
const IntArray & giveDofManArray() const
Element * giveElement(int n)
Service for accessing particular domain fe element.
virtual void postInitializeAsHangingNode()
REGISTER_DofManager(ElementSide)
void initialize(const IntArray &masterNodes, const IntArray &mstrDofID, const FloatArray &mstrContribution)
void clear()
Clears the array (zero size).
int masterRegion
Region of the master element (used for automatic detection).
DofIDItem
Type representing particular dof type.
virtual int checkConsistency()
Allows programmer to test some internal data, before computation begins.
SpatialLocalizer * giveSpatialLocalizer()
Returns receiver's associated spatial localizer.
DofIDItem giveDofID() const
Returns DofID value of receiver, which determines type of of unknown connected to receiver (e...
Wrapper around element definition to provide FEICellGeometry interface.
virtual int global2local(FloatArray &answer, const FloatArray &gcoords, const FEICellGeometry &cellgeo)=0
Evaluates local coordinates from given global ones.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
int qcNodeTypeLabel
Type of qcNode (0 deactive, 1 master, 2 hanging)
FloatArray coordinates
Array storing nodal coordinates.
Class representing vector of real numbers.
virtual int init(bool force=false)
Initialize receiver data structure if not done previously If force is set to true, the initialization is enforced (useful if domain geometry has changed)
dofManagerParallelMode parallel_mode
Implementation of matrix containing floating point numbers.
IRResultType
Type defining the return values of InputRecord reading operations.
virtual const char * giveClassName() const
virtual void postInitialize()
Performs post-initialization such like checking if there are any slave dofs etc.
virtual Element * giveElementClosestToPoint(FloatArray &lcoords, FloatArray &closest, const FloatArray &coords, int region=0)=0
Returns the element closest to a given point.
bool initialized
Flag whether node is fully initialized already.
int masterElement
Number of the master element.
void followedBy(const IntArray &b, int allocChunk=0)
Appends array b at the end of receiver.
std::map< int, int > * dofTypemap
Map from DofIDItem to dofType.
qcNode(int n, Domain *aDomain)
Constructor.
virtual bool initializeAsRepnode()
Domain * giveDomain() const
Abstract base class representing the "problem" under consideration.
int giveSize() const
Returns the size of receiver.
the oofem namespace is to define a context or scope in which all oofem names are defined.
Class implementing node in finite element mesh.
#define _IFT_qcNode_masterRegion
Abstract class Dof represents Degree Of Freedom in finite element mesh.
Node * giveNode(int i) const
Returns reference to the i-th node of element.
DofManager is local, there are no contribution from other domains to this DofManager.
#define OOFEM_WARNING(...)
Class representing "slave" degree of freedom.
Class representing solution step.
dofManagerParallelMode giveParallelMode() const
Return dofManagerParallelMode of receiver.