|
OOFEM 3.0
|
#include <node.h>
Public Member Functions | |
| Node (int n, Domain *aDomain) | |
| void | setCoordinates (FloatArray coords) |
| virtual double | giveUpdatedCoordinate (int ic, TimeStep *tStep, double scale=1.) |
| virtual void | giveUpdatedCoordinates (FloatArray &answer, TimeStep *tStep, double scale=1.) |
| bool | hasLocalCS () |
| Returns nonzero if node has prescribed local coordinate system. | |
| FloatMatrix * | giveLocalCoordinateTriplet () |
| bool | hasSameLCS (Node *remote) |
| bool | computeL2GTransformation (FloatMatrix &answer, const IntArray &dofIDArry) override |
| bool | requiresTransformation () override |
| void | computeLoadVector (FloatArray &answer, Load *load, CharType type, TimeStep *tStep, ValueModeType mode) override |
| void | updateYourself (TimeStep *tStep) override |
| const char * | giveClassName () const override |
| const char * | giveInputRecordName () const override |
| void | initializeFrom (InputRecord &ir) override |
| void | initializeFrom (InputRecord &ir, int priority) override |
| void | initializeFinish () override |
| Performs post initialization steps. | |
| void | giveInputRecord (DynamicInputRecord &input) override |
| void | printYourself () override |
| Prints receiver state on stdout. Useful for debugging. | |
| int | checkConsistency () override |
| bool | isDofTypeCompatible (dofType type) const override |
| Returns true if dof of given type is allowed to be associated to receiver. | |
| virtual int | giveQcNodeType () |
| void | saveContext (DataStream &stream, ContextMode mode) override |
| void | restoreContext (DataStream &stream, ContextMode mode) override |
| void | drawYourself (oofegGraphicContext &gc, TimeStep *tStep) override |
| Public Member Functions inherited from oofem::DofManager | |
| std::vector< Dof * >::iterator | begin () |
| std::vector< Dof * >::iterator | end () |
| std::vector< Dof * >::const_iterator | begin () const |
| std::vector< Dof * >::const_iterator | end () const |
| DofManager (int n, Domain *aDomain) | |
| virtual | ~DofManager () |
| Destructor. | |
| Dof * | giveDofWithID (int dofID) const |
| int | giveNumberOfDofs () const |
| void | askNewEquationNumbers (TimeStep *tStep) |
| Renumbers all contained DOFs. | |
| int | giveNumberOfPrimaryMasterDofs (const IntArray &dofIDArray) const |
| void | giveLocationArray (const IntArray &dofIDArry, IntArray &locationArray, const UnknownNumberingScheme &s) const |
| void | giveMasterDofIDArray (const IntArray &dofIDArry, IntArray &masterDofIDs) const |
| void | giveCompleteLocationArray (IntArray &locationArray, const UnknownNumberingScheme &s) const |
| void | giveCompleteMasterDofIDArray (IntArray &dofIDArray) const |
| std::vector< Dof * >::const_iterator | findDofWithDofId (DofIDItem dofID) const |
| void | giveUnknownVector (FloatArray &answer, const IntArray &dofMask, ValueModeType mode, TimeStep *tStep, bool padding=false) |
| void | giveUnknownVector (FloatArray &answer, const IntArray &dofMask, PrimaryField &field, ValueModeType mode, TimeStep *tStep, bool padding=false) |
| void | giveCompleteUnknownVector (FloatArray &answer, ValueModeType mode, TimeStep *tStep) |
| void | giveUnknownVectorOfType (FloatArray &answer, UnknownType ut, ValueModeType mode, TimeStep *tStep) |
| virtual void | givePrescribedUnknownVector (FloatArray &answer, const IntArray &dofMask, ValueModeType mode, TimeStep *tStep) |
| bool | computeM2GTransformation (FloatMatrix &answer, const IntArray &dofIDArry) |
| virtual bool | computeM2LTransformation (FloatMatrix &answer, const IntArray &dofIDArry) |
| IntArray * | giveLoadArray () |
| void | setLoadArray (IntArray &load) |
| double | giveCoordinate (int i) const |
| const FloatArray & | giveCoordinates () const |
| void | setCoordinates (const FloatArray &coords) |
| Set coordinates. | |
| const IntArray * | giveForcedDofIDs () |
| std ::map< int, int > * | giveDofTypeMap () |
| std ::map< int, int > * | giveMasterMap () |
| std ::map< int, int > * | giveBcMap () |
| std ::map< int, int > * | giveIcMap () |
| void | printOutputAt (FILE *file, TimeStep *tStep) override |
| bool | isBoundary () |
| void | setBoundaryFlag (bool isBoundary) |
| virtual bool | hasAnySlaveDofs () |
| virtual bool | giveMasterDofMans (IntArray &masters) |
| void | postInitialize () override |
| Performs post initialization steps. Called after all components are created and initialized. | |
| void | updateLocalNumbering (EntityRenumberingFunctor &f) override |
| void | setNumberOfDofs (int _ndofs) |
| void | appendDof (Dof *dof) |
| void | removeDof (DofIDItem id) |
| bool | hasDofID (DofIDItem id) const |
| int | giveGlobalNumber () const |
| int | giveLabel () const |
| void | setGlobalNumber (int newNumber) |
| dofManagerParallelMode | giveParallelMode () const |
| void | setParallelMode (dofManagerParallelMode _mode) |
| const IntArray * | givePartitionList () |
| void | setPartitionList (const IntArray *_p) |
| void | removePartitionFromList (int _part) |
| Removes given partition from receiver list. | |
| void | mergePartitionList (IntArray &_p) |
| Merges receiver partition list with given lists. | |
| int | givePartitionsConnectivitySize () |
| bool | isLocal () |
| Returns true if receiver is locally maintained. | |
| bool | isShared () |
| Returns true if receiver is shared. | |
| bool | isNull () |
| Returns true if receiver is shared. | |
| Public Member Functions inherited from oofem::FEMComponent | |
| FEMComponent (int n, Domain *d) | |
| virtual | ~FEMComponent ()=default |
| Virtual destructor. | |
| Domain * | giveDomain () const |
| virtual void | setDomain (Domain *d) |
| int | giveNumber () const |
| void | setNumber (int num) |
| virtual Interface * | giveInterface (InterfaceType t) |
| std::string | errorInfo (const char *func) const |
| Returns string for prepending output (used by error reporting macros). | |
Protected Attributes | |
| std::unique_ptr< FloatMatrix > | localCoordinateSystem |
| Protected Attributes inherited from oofem::DofManager | |
| FloatArray | coordinates |
| Array storing nodal coordinates. | |
| std::vector< Dof * > | dofArray |
| Array of DOFs. | |
| IntArray | loadArray |
| List of applied loads. | |
| bool | isBoundaryFlag |
| bool | hasSlaveDofs |
| Flag indicating whether receiver has slave DOFs. | |
| int | globalNumber |
| dofManagerParallelMode | parallel_mode |
| IntArray | partitions |
| IntArray | dofidmask |
| List of additional dof ids to include. | |
| std ::map< int, int > | dofTypemap |
| Map from DofIDItem to dofType. | |
| std ::map< int, int > | dofMastermap |
| Map from DofIDItem to master node. | |
| std ::map< int, int > | dofBCmap |
| Map from DofIDItem to bc (to be removed). | |
| std ::map< int, int > | dofICmap |
| Map from DofIDItem to ic (to be removed). | |
| IntArray | mBC |
| Protected Attributes inherited from oofem::FEMComponent | |
| int | number |
| Component number. | |
| Domain * | domain |
| Link to domain object, useful for communicating with other FEM components. | |
Static Protected Attributes | |
| static ParamKey | IPK_Node_lcs |
| static ParamKey | IPK_Node_coords |
Additional Inherited Members | |
| Static Public Attributes inherited from oofem::DofManager | |
| static ParamKey | IPK_DofManager_dofidmask |
| static ParamKey | IPK_DofManager_load |
| static ParamKey | IPK_DofManager_bc |
| static ParamKey | IPK_DofManager_ic |
| static ParamKey | IPK_DofManager_mastermask |
| static ParamKey | IPK_DofManager_doftypemask |
| static ParamKey | IPK_DofManager_boundaryflag |
| static ParamKey | IPK_DofManager_globnum |
| static ParamKey | IPK_DofManager_partitions |
| static ParamKey | IPK_DofManager_sharedflag |
| static ParamKey | IPK_DofManager_remoteflag |
| static ParamKey | IPK_DofManager_nullflag |
Class implementing node in finite element mesh. Node possess degrees of freedom (see base class DofManager). Node is attribute of few elements and it is managed by domain. Node manages its position in space, and if specified local coordinate system in node. If local coordinate system is defined, all equilibrium equations are assembled in this system and therefore all DOFs and applied boundary and initial conditions apply in this local coordinate system. By default, global coordinate system is assumed in each node. For description, how to prescribe local coordinate system in node, see input file description section.
Tasks include:
| oofem::Node::Node | ( | int | n, |
| Domain * | aDomain ) |
Constructor. Creates a node belonging to domain.
Definition at line 73 of file node.C.
References oofem::DofManager::DofManager().
Referenced by checkConsistency(), oofem::LatticeNeumannCouplingNode::computeLoadCouplingContribution(), oofem::GeneralSlaveNode::GeneralSlaveNode(), oofem::HangingNode::HangingNode(), hasSameLCS(), oofem::LatticeDirichletCouplingNode::LatticeDirichletCouplingNode(), oofem::LatticeNeumannCouplingNode::LatticeNeumannCouplingNode(), oofem::Particle::Particle(), oofem::PFEMParticle::PFEMParticle(), oofem::RigidArmNode::postInitialize(), oofem::qcNode::qcNode(), oofem::RigidArmNode::RigidArmNode(), and oofem::SlaveNode::SlaveNode().
|
overridevirtual |
Allows programmer to test some internal data, before computation begins. For example, one may use this function, to ensure that element has material with required capabilities is assigned to element. This must be done after all mesh components are instanciated.
Reimplemented from oofem::FEMComponent.
Reimplemented in oofem::PFEMParticle, oofem::qcNode, and oofem::RigidArmNode.
Definition at line 313 of file node.C.
References oofem::IntArray::at(), oofem::FEMComponent::domain, oofem::SimpleSlaveDof::giveMasterDofManagerNum(), hasSameLCS(), Node(), and OOFEM_WARNING.
|
overridevirtual |
Computes transformation matrix from global c.s. to DOF-manager specific c.s; \( u_g = Q\cdot u_l \).
| answer | Computed transformation matrix. |
| dofIDArry | Array containing DofIDItem-type values for which transformation matrix is assembled. If dofIDArry is NULL, then all receiver DOFs are assumed. |
Reimplemented from oofem::DofManager.
Definition at line 412 of file node.C.
References oofem::__DofIDItemToString(), oofem::FloatMatrix::at(), oofem::IntArray::at(), oofem::FloatMatrix::clear(), oofem::Dof::giveDofID(), oofem::DofManager::giveNumberOfDofs(), oofem::IntArray::giveSize(), oofem::IntArray::isEmpty(), localCoordinateSystem, OOFEM_ERROR, oofem::FloatMatrix::resize(), and oofem::FloatMatrix::zero().
Referenced by computeLoadVector(), oofem::RigidArmNode::computeMasterContribution(), drawYourself(), oofem::InteractionPFEMParticle::givePrescribedUnknownVector(), and oofem::LatticeDirichletCouplingNode::giveUnknownVector().
|
overridevirtual |
Computes the load vector for given load.
| answer | Load vector for given load. |
| load | Given load. |
| type | Characteristic type of the vector. |
| tStep | Time step when answer is computed. |
| mode | Determines response mode. |
Reimplemented from oofem::DofManager.
Definition at line 167 of file node.C.
References oofem::FloatArray::clear(), oofem::Load::computeComponentArrayAt(), computeL2GTransformation(), oofem::NodalLoad::giveBCGeoType(), oofem::NodalLoad::giveCoordSystMode(), oofem::GeneralBoundaryCondition::giveDofIDs(), oofem::NodalLoadBGT, OOFEM_ERROR, and oofem::FloatArray::rotatedWith().
Referenced by oofem::LatticeNeumannCouplingNode::computeLoadVectorAt(), and drawYourself().
|
overridevirtual |
Reimplemented from oofem::DofManager.
Definition at line 607 of file node.C.
References oofem::FloatArray::add(), oofem::FloatArray::at(), oofem::FloatMatrix::at(), oofem::FloatArray::clear(), computeL2GTransformation(), computeLoadVector(), oofem::DofManager_local, oofem::DofManager_shared, oofem::FEMComponent::domain, gc, oofem::DofManager::giveCoordinate(), oofem::Dof::giveDofID(), oofem::FEMComponent::giveDomain(), oofem::XfemManager::giveEnrichmentItem(), oofem::DofManager::giveGlobalNumber(), oofem::DofManager::giveLoadArray(), giveLocalCoordinateTriplet(), oofem::FEMComponent::giveNumber(), oofem::XfemManager::giveNumberOfEnrichmentItems(), oofem::DofManager::giveParallelMode(), oofem::Dof::giveUnknown(), oofem::Dof::hasBc(), hasLocalCS(), oofem::EnrichmentItem::isDofManEnriched(), oofem::Dof::isPrimaryDof(), oofem::OGC_essentialBC, oofem::OGC_naturalBC, oofem::OGC_nodeAnnotation, oofem::OGC_nodeGeometry, oofem::OGC_nodeVectorPlot, OOFEG_BCIC_ANNOTATION_LAYER, OOFEG_DEFORMED_GEOMETRY_LAYER, OOFEG_NATURALBC_LAYER, OOFEG_NODE_ANNOTATION_LAYER, and oofem::FloatArray::rotatedWith().
|
inlineoverridevirtual |
Reimplemented from oofem::DofManager.
Reimplemented in oofem::Particle, oofem::PFEMParticle, oofem::qcNode, oofem::RigidArmNode, and oofem::SlaveNode.
|
overridevirtual |
Setups the input record string of receiver.
| input | Dynamic input record to be filled by receiver. |
Reimplemented from oofem::DofManager.
Definition at line 154 of file node.C.
References _IFT_Node_coords, _IFT_Node_lcs, oofem::DofManager::coordinates, localCoordinateSystem, and oofem::DynamicInputRecord::setField().
|
inlineoverridevirtual |
Reimplemented from oofem::DofManager.
Reimplemented in oofem::Particle, oofem::PFEMParticle, oofem::qcNode, oofem::RigidArmNode, and oofem::SlaveNode.
Definition at line 168 of file node.h.
References _IFT_Node_Name.
|
inline |
Returns pointer to local coordinate triplet in node. If not defined, returns NULL.
Definition at line 149 of file node.h.
References localCoordinateSystem.
Referenced by drawYourself(), oofem::VTKExportModule::exportPrimVarAs(), oofem::VTKBaseExportModule::getNodalVariableFromPrimaryField(), oofem::RefinedElement::giveCompatibleBcDofArray(), giveUpdatedCoordinate(), hasSameLCS(), oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem1D(), oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem2D(), and oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem3D().
|
inlinevirtual |
Reimplemented in oofem::qcNode.
Definition at line 177 of file node.h.
Referenced by oofem::Quasicontinuum::applyApproach2(), oofem::Quasicontinuum::applyApproach3(), and oofem::QClinearStatic::setActivatedNodeList().
|
virtual |
Returns updated ic-th coordinate of receiver. Return value is computed as coordinate + scale * displacement, where corresponding displacement is obtained from corresponding nodal DOF. Local coordinate system is taken into account. Useful mainly for postprocessing.
| ic | Index of coordinate. |
| tStep | Time step for the displacement. |
| scale | Scaling of displacement. |
Definition at line 234 of file node.C.
References oofem::FloatArray::at(), oofem::FloatMatrix::at(), oofem::DofManager::giveCoordinate(), oofem::Dof::giveDofID(), giveLocalCoordinateTriplet(), oofem::FloatMatrix::giveNumberOfRows(), oofem::TimeStep::giveTimeIncrement(), oofem::Dof::giveUnknown(), hasLocalCS(), oofem::TimeStep::isTheCurrentTimeStep(), OOFEM_ERROR, and oofem::FloatArray::zero().
Referenced by oofem::CCTPlate::drawDeformedGeometry(), oofem::CohesiveSurface3d::drawDeformedGeometry(), oofem::DKTPlate::drawDeformedGeometry(), oofem::LIBeam2dNL::drawDeformedGeometry(), oofem::LIBeam3d2::drawDeformedGeometry(), oofem::LIBeam3dNL2::drawDeformedGeometry(), oofem::LIBeam3dNL::drawDeformedGeometry(), oofem::QDKTPlate::drawDeformedGeometry(), oofem::Truss1d::drawDeformedGeometry(), oofem::Truss2d::drawDeformedGeometry(), oofem::Truss3d::drawDeformedGeometry(), oofem::CCTPlate::drawScalar(), oofem::CohesiveSurface3d::drawScalar(), oofem::DKTPlate::drawScalar(), oofem::LIBeam3d2::drawScalar(), oofem::QDKTPlate::drawScalar(), oofem::Truss1d::drawScalar(), oofem::VTKExportModule::exportIntVarAs(), oofem::VTKBaseExportModule::getNodalVariableFromIS(), and oofem::StructuralElement::giveInternalStateAtNode().
|
virtual |
Returns updated coordinate of receiver. Return value is computed as coordinate + scale * displacement, where corresponding displacement is obtained from corresponding nodal DOF. Local coordinate system is taken into account and the answer is given in global coordinates.
| answer | Updated coordinate. |
| tStep | Time step for the displacement. |
| scale | Scaling of displacement. |
Definition at line 296 of file node.C.
References oofem::FloatArray::at(), oofem::DofManager::coordinates, oofem::FloatArray::giveSize(), oofem::DofManager::giveUnknownVectorOfType(), and oofem::TimeStep::isTheCurrentTimeStep().
|
inline |
Returns nonzero if node has prescribed local coordinate system.
Definition at line 141 of file node.h.
References localCoordinateSystem.
Referenced by oofem::RigidArmNode::computeMasterContribution(), drawYourself(), oofem::VTKExportModule::exportPrimVarAs(), oofem::VTKBaseExportModule::getNodalVariableFromPrimaryField(), giveUpdatedCoordinate(), hasSameLCS(), requiresTransformation(), and saveContext().
| bool oofem::Node::hasSameLCS | ( | Node * | remote | ) |
Returns true, if the local coordinate systems of receiver and given node are the same
Definition at line 375 of file node.C.
References oofem::FloatMatrix::at(), giveLocalCoordinateTriplet(), hasLocalCS(), and Node().
Referenced by oofem::HangingNode::checkConsistency(), checkConsistency(), and oofem::qcNode::checkConsistency().
|
overridevirtual |
Performs post initialization steps.
Reimplemented from oofem::DofManager.
Definition at line 144 of file node.C.
References oofem::FEMComponent::giveDomain(), IPK_Node_coords, oofem::FEMComponent::number, and PM_DOFMAN_ERROR_IFNOTSET.
Referenced by oofem::GeneralSlaveNode::initializeFinish().
|
inlineoverridevirtual |
Initializes receiver according to object description stored in input record. This function is called immediately after creating object using constructor. Input record can be imagined as data record in component database belonging to receiver. Receiver may use value-name extracting functions to extract particular field from record. Note that initializeFrom may be called mutiple times.
| ir | Input record to initialize from. |
| priority | Priority of the input record. This is used to determine the order of initialization |
Reimplemented from oofem::DofManager.
Definition at line 169 of file node.h.
References initializeFrom().
Referenced by oofem::GeneralSlaveNode::initializeFrom(), and initializeFrom().
|
overridevirtual |
Reimplemented from oofem::DofManager.
Reimplemented in oofem::Particle, oofem::qcNode, oofem::RigidArmNode, and oofem::SlaveNode.
Definition at line 78 of file node.C.
References oofem::FloatArray::at(), oofem::DofManager::coordinates, oofem::FEMComponent::domain, oofem::FEMComponent::giveDomain(), oofem::FEMComponent::giveNumber(), oofem::FloatArray::giveSize(), IPK_Node_coords, IPK_Node_lcs, localCoordinateSystem, oofem::FEMComponent::number, OOFEM_ERROR, OOFEM_WARNING, PM_UPDATE_PARAMETER_AND_REPORT, and oofem::VST_Length.
|
inlineoverridevirtual |
Returns true if dof of given type is allowed to be associated to receiver.
Reimplemented from oofem::DofManager.
Reimplemented in oofem::qcNode, oofem::RigidArmNode, and oofem::SlaveNode.
|
overridevirtual |
Prints receiver state on stdout. Useful for debugging.
Reimplemented from oofem::DofManager.
Definition at line 196 of file node.C.
References oofem::DofManager::giveCoordinate(), oofem::DofManager::loadArray, oofem::FEMComponent::number, and oofem::Dof::printYourself().
|
inlineoverridevirtual |
Indicates, whether dofManager requires the transformation.
Reimplemented from oofem::DofManager.
Definition at line 154 of file node.h.
References hasLocalCS(), and oofem::DofManager::hasSlaveDofs.
|
overridevirtual |
Restores the receiver state previously written in stream.
| stream | Input stream. |
| mode | Determines amount of info available in stream (state, definition, ...). |
| throws | an ContextIOERR exception if error encountered. |
Reimplemented from oofem::DofManager.
Definition at line 578 of file node.C.
References oofem::CIO_IOERR, oofem::CIO_OK, CM_Definition, oofem::DofManager::coordinates, localCoordinateSystem, oofem::DataStream::read(), and THROW_CIOERR.
|
overridevirtual |
Stores receiver state to output stream.
| stream | Output stream. |
| mode | Determines amount of info required in stream (state, definition, ...). |
| throws | an ContextIOERR exception if error encountered. |
Reimplemented from oofem::DofManager.
Definition at line 553 of file node.C.
References oofem::CIO_IOERR, oofem::CIO_OK, CM_Definition, oofem::DofManager::coordinates, hasLocalCS(), localCoordinateSystem, THROW_CIOERR, and oofem::DataStream::write().
|
inline |
Sets node coordinates to given array.
| coords | New coordinates for node. |
Definition at line 117 of file node.h.
References oofem::DofManager::coordinates.
Referenced by oofem::Subdivision::createMesh().
|
overridevirtual |
Updates receiver at end of time step (i.e. after equilibrium has been reached). If EngngModel formulation ( see giveFormulation() member function) returns actualized Lagrange mode, receiver updates its coordinates according to solution.
| tStep | Time step for which to update. |
Reimplemented from oofem::DofManager.
Reimplemented in oofem::PFEMParticle.
Definition at line 211 of file node.C.
References oofem::AL, oofem::DofManager::coordinates, oofem::FEMComponent::domain, oofem::Dof::giveDofID(), oofem::TimeStep::giveTimeIncrement(), and oofem::Dof::giveUnknown().
|
staticprotected |
Definition at line 103 of file node.h.
Referenced by initializeFinish(), and initializeFrom().
|
staticprotected |
Definition at line 102 of file node.h.
Referenced by initializeFrom().
|
protected |
Triplet defining the local coordinate system in node. Value at position (i,j) represents angle between e'(i) and e(j), where e' is base vector of local coordinate system and e is base vector of global c.s.
Definition at line 100 of file node.h.
Referenced by computeL2GTransformation(), oofem::RigidArmNode::computeMasterContribution(), giveInputRecord(), giveLocalCoordinateTriplet(), hasLocalCS(), initializeFrom(), restoreContext(), and saveContext().