58qcNode :: qcNode(
int n,
Domain *aDomain) :
Node(n, aDomain)
67 Node :: initializeFrom(ir, priority);
77int qcNode :: checkConsistency()
80 int result = Node :: checkConsistency();
89 for (
int i = 1; i <= countOfMasterNodes; i++ ) {
91 OOFEM_WARNING(
"Mismatch in parallel mode of qcNode and master");
109void qcNode :: postInitialize()
125 OOFEM_ERROR(
"\"qcNode\" can be used only in \"QClinearStatic\" EngngModel");
128 OOFEM_ERROR(
"\"qcNode\" can be used only in \"QClinearStatic\" EngngModel");
132 Node :: postInitialize();
139void qcNode :: postInitializeAsHangingNode()
162 OOFEM_ERROR(
"Couldn't find closest element (automatically).");
178 for (
Dof *dof : *
this ) {
184 OOFEM_ERROR(
"Requested interpolation for dof id %d doesn't exist in element %d.",
188 if ( fei->hasMultiField() ) {
190 IntArray masterDofIDs, masterNodesDup, dofids;
192 masterContribution.flatten(multiContribution);
193 masterDofIDs.
clear();
198 sdof->
initialize(masterNodesDup, & masterDofIDs, masterContribution);
215qcNode :: initializeAsRepnode()
238 OOFEM_ERROR(
"qcNode is used in unsupported Engineering Models");
249 OOFEM_ERROR(
"qcNode is used in unsupported Engineering Models");
255void qcNode :: setAsRepnode()
263void qcNode :: setAsHanging()
273 if ( DofTypeMapSize == 0 ) {
274 for (
int i = 1; i <= this->
giveDomain()->giveDefaultNodeDofIDArry().giveSize(); i++ ) {
280 for (
int i = 1; i <= DofTypeMapSize; i++ ) {
289void qcNode :: printOutputAt(FILE *stream,
TimeStep *tStep)
295 for (
Dof *dof : *
this ) {
300 for (
Dof *dof : *
this ) {
#define REGISTER_DofManager(class)
int giveGlobalNumber() const
dofManagerParallelMode parallel_mode
std ::map< int, int > dofTypemap
Map from DofIDItem to dofType.
std ::map< int, int > * giveDofTypeMap()
dofManagerParallelMode giveParallelMode() const
FloatArray coordinates
Array storing nodal coordinates.
DofIDItem giveDofID() const
Node * giveNode(int i) const
virtual FEInterpolation * giveInterpolation() const
virtual int giveNumberOfNodes() const
const IntArray & giveDofManArray() const
virtual void printDofOutputAt(FILE *stream, Dof *iDof, TimeStep *tStep)
virtual int global2local(FloatArray &answer, const FloatArray &gcoords, const FEICellGeometry &cellgeo) const =0
virtual void evalN(FloatArray &answer, const FloatArray &lcoords, const FEICellGeometry &cellgeo) const =0
Domain * giveDomain() const
Domain * domain
Link to domain object, useful for communicating with other FEM components.
int number
Component number.
Index giveSize() const
Returns the size of receiver.
int giveNumberOfColumns() const
Returns number of columns of receiver.
void followedBy(const IntArray &b, int allocChunk=0)
Node(int n, Domain *aDomain)
bool hasSameLCS(Node *remote)
virtual bool nodeInFullSolvedDomainTest(Node *n)
virtual int giveQcApproachNumber()
void initialize(const IntArray &masterNodes, const IntArray &mstrDofID, const FloatArray &mstrContribution)
virtual int init(bool force=false)
virtual Element * giveElementClosestToPoint(FloatArray &lcoords, FloatArray &closest, const FloatArray &coords, int region=0)=0
virtual bool initializeAsRepnode()
static ParamKey IPK_qcNode_masterElement
Static input field keys.
const char * giveClassName() const override
int qcNodeTypeLabel
Type of qcNode (0 deactive, 1 master, 2 hanging).
virtual void setAsHanging()
int giveQcNodeType() override
bool initialized
Flag whether node is fully initialized already.
virtual void setAsRepnode()
virtual int giveMasterElementNumber()
int masterRegion
Region of the master element (used for automatic detection).
int masterElement
Number of the master element.
void postInitializeAsHangingNode()
static ParamKey IPK_qcNode_masterRegion
#define OOFEM_WARNING(...)
#define PM_UPDATE_PARAMETER(_val, _pm, _ir, _componentnum, _paramkey, _prio)