|
OOFEM 3.0
|
#include <dofmanager.h>
Public Member Functions | |
| 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 management methods | |
| 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) |
Transformation functions | |
The governing equations can be assembled not only in global coordinate system, but also in user-defined local coordinate system of each DOF manager. Methods in this section introduce necessary transformation methods, allowing receiver DOFs to be expressed in their own local c.s. or to be dependent on other DOFs on other DOF manager (to implement slave or rigid arm nodes etc.). The method for computing global c.s to receiver c.s transformation matrix is provided. | |
| bool | computeM2GTransformation (FloatMatrix &answer, const IntArray &dofIDArry) |
| virtual bool | computeL2GTransformation (FloatMatrix &answer, const IntArray &dofIDArry) |
| virtual bool | computeM2LTransformation (FloatMatrix &answer, const IntArray &dofIDArry) |
| virtual bool | requiresTransformation () |
Load related functions | |
| virtual void | computeLoadVector (FloatArray &answer, Load *load, CharType type, TimeStep *tStep, ValueModeType mode) |
| IntArray * | giveLoadArray () |
| void | setLoadArray (IntArray &load) |
Position query functions | |
| double | giveCoordinate (int i) const |
| const FloatArray & | giveCoordinates () const |
| void | setCoordinates (const FloatArray &coords) |
| Set coordinates. | |
Functions necessary for dof creation. All optional. | |
| 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 |
| virtual void | updateYourself (TimeStep *tStep) |
| bool | isBoundary () |
| void | setBoundaryFlag (bool isBoundary) |
| virtual bool | hasAnySlaveDofs () |
| virtual bool | giveMasterDofMans (IntArray &masters) |
| void | initializeFrom (InputRecord &ir) override |
| void | initializeFrom (InputRecord &ir, int priority) override |
| void | initializeFinish () override |
| void | postInitialize () override |
| Performs post initialization steps. Called after all components are created and initialized. | |
| void | giveInputRecord (DynamicInputRecord &input) override |
| void | printYourself () override |
| Prints receiver state on stdout. Useful for debugging. | |
| void | saveContext (DataStream &stream, ContextMode mode) override |
| void | restoreContext (DataStream &stream, ContextMode mode) override |
| virtual bool | isDofTypeCompatible (dofType type) const |
| Returns true if dof of given type is allowed to be associated to receiver. | |
| void | updateLocalNumbering (EntityRenumberingFunctor &f) override |
Advanced functions | |
| void | setNumberOfDofs (int _ndofs) |
| void | appendDof (Dof *dof) |
| void | removeDof (DofIDItem id) |
| bool | hasDofID (DofIDItem id) const |
| virtual void | drawYourself (oofegGraphicContext &gc, TimeStep *tStep) |
| 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. | |
| const char * | giveClassName () const override |
| const char * | giveInputRecordName () const override |
| 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 int | checkConsistency () |
| virtual Interface * | giveInterface (InterfaceType t) |
| std::string | errorInfo (const char *func) const |
| Returns string for prepending output (used by error reporting macros). | |
Static Public Attributes | |
| 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 |
Protected Attributes | |
| 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. | |
Base class for dof managers. Dof manager is an abstraction for object possessing degrees of freedom. Dof managers (respectively derived classes like nodes or sides) are usually attributes of elements and are maintained by domain. Degrees of freedom belonging to dof manager are stored in 'dofArray'. Dof manager also maintain a list of applied loads it is subjected to. Number and physical meaning of dofs can be specified by user in input file (see input file description). If it is not specified, default values are obtained from domain, based on domain type of problem.
Tasks:
Definition at line 99 of file dofmanager.h.
| oofem::DofManager::DofManager | ( | int | n, |
| Domain * | aDomain ) |
Constructor. Creates DofManager with given number belonging to domain aDomain.
| n | DofManager's number in domain |
| aDomain | reference to DofManager's domain |
Definition at line 71 of file dofmanager.C.
References dofArray, dofBCmap, dofICmap, oofem::DofManager_local, dofMastermap, dofTypemap, oofem::FEMComponent::FEMComponent(), globalNumber, hasSlaveDofs, isBoundaryFlag, loadArray, parallel_mode, and partitions.
Referenced by oofem::ClonedDofManager::ClonedDofManager(), oofem::ElementDofManager::ElementDofManager(), oofem::ElementSide::ElementSide(), and oofem::Node::Node().
|
virtual |
| void oofem::DofManager::appendDof | ( | Dof * | dof | ) |
Adds the given Dof into the receiver. The dofID of scheduled DOF should not be present in receiver as multiple DOFs with same DofID are not allowed. The given DOF is appended at the end of the dofArray.
| dof |
Definition at line 142 of file dofmanager.C.
References dofArray, findDofWithDofId(), oofem::Dof::giveDofID(), and OOFEM_ERROR.
Referenced by oofem::Domain::createDofs(), oofem::MPMSymbolicTerm::initializeCell(), and restoreContext().
| void oofem::DofManager::askNewEquationNumbers | ( | TimeStep * | tStep | ) |
Renumbers all contained DOFs.
Definition at line 303 of file dofmanager.C.
References oofem::Dof::askNewEquationNumber().
|
inline |
Definition at line 161 of file dofmanager.h.
References dofArray.
Referenced by oofem::Shell7BaseXFEM::computeOrderingArray(), findDofWithDofId(), and removeDof().
|
inline |
Definition at line 163 of file dofmanager.h.
References dofArray.
|
virtual |
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 in oofem::Node.
Definition at line 858 of file dofmanager.C.
Referenced by computeM2GTransformation(), givePrescribedUnknownVector(), giveUnknownVector(), giveUnknownVector(), and giveUnknownVectorOfType().
|
virtual |
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 in oofem::Node.
Definition at line 105 of file dofmanager.C.
References oofem::FloatArray::assemble(), oofem::FloatArray::clear(), oofem::Load::computeComponentArrayAt(), oofem::GeneralBoundaryCondition::giveBCGeoType(), oofem::GeneralBoundaryCondition::giveDofIDs(), giveNumberOfDofs(), oofem::IntArray::giveSize(), oofem::NodalLoadBGT, OOFEM_ERROR, and oofem::FloatArray::resize().
Referenced by oofem::ExternalForceAssembler::vectorFromNodeLoad(), and oofem::ReferenceForceAssembler::vectorFromNodeLoad().
| bool oofem::DofManager::computeM2GTransformation | ( | FloatMatrix & | answer, |
| const IntArray & | dofIDArry ) |
Computes receiver transformation matrix from global CS to dofManager specific coordinate system; \( u_g = R\cdot u_m \).
| answer | Computed transformation matrix. It has generally dofIDArry.size rows and if loc is obtained using giveLocationArray(dofIDArry, loc) call, loc.giveSize() columns. This is because this transformation should generally include not only transformation to dof manager local coordinate system, but receiver dofs can be expressed using dofs of another dofManager (In this case, square answer is produced only if all dof transformation is required). |
| dofIDArry | Array containing DofIDItem-type values (this is enumeration identifying physical meaning of particular DOF, see cltypes.h) for which transformation matrix is assembled. if dofIDArry is NULL, then all receiver dofs are assumed. |
Definition at line 833 of file dofmanager.C.
References oofem::FloatMatrix::beProductOf(), oofem::FloatMatrix::clear(), computeL2GTransformation(), and computeM2LTransformation().
|
virtual |
Computes transformation matrix from local DOFs to master DOFs; \( u_l = M\cdot u_m \).
| 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. |
Definition at line 864 of file dofmanager.C.
References oofem::IntArray::at(), oofem::Dof::computeDofTransformation(), oofem::FloatMatrix::copySubVectorRow(), giveDofWithID(), giveNumberOfDofs(), oofem::Dof::giveNumberOfPrimaryMasterDofs(), giveNumberOfPrimaryMasterDofs(), oofem::FloatArray::giveSize(), oofem::IntArray::giveSize(), hasAnySlaveDofs(), oofem::IntArray::isEmpty(), oofem::FloatMatrix::resize(), and oofem::FloatMatrix::zero().
Referenced by oofem::EngngModel::assembleVectorFromBC(), oofem::EngngModel::assembleVectorFromDofManagers(), and computeM2GTransformation().
|
inlinevirtual |
|
inline |
Definition at line 162 of file dofmanager.h.
References dofArray.
Referenced by findDofWithDofId(), giveDofWithID(), oofem::CBSElement::giveInternalStateAtNode(), oofem::SUPGElement2::giveInternalStateAtNode(), oofem::SUPGElement::giveInternalStateAtNode(), oofem::TransportElement::giveInternalStateAtNode(), giveLocationArray(), giveMasterDofIDArray(), giveNumberOfPrimaryMasterDofs(), giveUnknownVector(), giveUnknownVector(), oofem::LatticeDirichletCouplingNode::giveUnknownVector(), and oofem::EIPrimaryUnknownMapper::mapAndUpdate().
|
inline |
Definition at line 164 of file dofmanager.h.
References dofArray.
Finds index of DOF with required physical meaning of receiver. This index can be different for different DOFManagers (user can alter dof order and type in input file).
| dofID | Physical meaning of DOF. |
Definition at line 274 of file dofmanager.C.
References begin(), end(), and oofem::Dof::giveDofID().
Referenced by appendDof(), oofem::Shell7BaseXFEM::computeOrderingArray(), oofem::PFEMParticle::drawScalar(), giveDofWithID(), oofem::CBSElement::giveInternalStateAtNode(), oofem::PFEMElement::giveInternalStateAtNode(), oofem::SUPGElement2::giveInternalStateAtNode(), oofem::SUPGElement::giveInternalStateAtNode(), oofem::TransportElement::giveInternalStateAtNode(), giveLocationArray(), giveMasterDofIDArray(), giveNumberOfPrimaryMasterDofs(), giveUnknownVector(), giveUnknownVector(), oofem::LatticeDirichletCouplingNode::giveUnknownVector(), and oofem::EIPrimaryUnknownMapper::mapAndUpdate().
|
inline |
Returns map from DofIDItem to dofType.
Definition at line 421 of file dofmanager.h.
References dofBCmap.
Referenced by oofem::Domain::createDofs().
|
inlineoverridevirtual |
Implements oofem::FEMComponent.
Reimplemented in oofem::ElementDofManager, oofem::ElementSide, oofem::GeneralSlaveNode, oofem::HangingNode, oofem::InteractionPFEMParticle, oofem::LatticeDirichletCouplingNode, oofem::LatticeNeumannCouplingNode, oofem::Node, oofem::Particle, oofem::PFEMParticle, oofem::qcNode, oofem::RigidArmNode, and oofem::SlaveNode.
Definition at line 556 of file dofmanager.h.
Referenced by printOutputAt().
| void oofem::DofManager::giveCompleteLocationArray | ( | IntArray & | locationArray, |
| const UnknownNumberingScheme & | s ) const |
Returns full location array of receiver containing equation numbers of all dofs of receiver. Their order is specific to every DofManager. Mainly used at EngngModel level to assemble DofManager contribution (typically load vector).
| locationArray | Complete location array of receiver. |
| s | Determines the equation numbering scheme. |
Definition at line 237 of file dofmanager.C.
References oofem::IntArray::followedBy(), oofem::UnknownNumberingScheme::giveDofEquationNumber(), oofem::Dof::giveEquationNumbers(), giveNumberOfDofs(), hasSlaveDofs, oofem::IntArray::resize(), and oofem::IntArray::resizeWithValues().
Referenced by oofem::EngngModel::assembleVectorFromDofManagers(), and oofem::FETICommunicator::setUpCommunicationMaps().
| void oofem::DofManager::giveCompleteMasterDofIDArray | ( | IntArray & | dofIDArray | ) | const |
Returns the full dof ID array of receiver. Mainly used at EngngModel level to assemble internal norms fronm DofManager contribution (typically load vector).
| dofIDArray | Complete dof ID array of receiver. |
Definition at line 257 of file dofmanager.C.
References oofem::IntArray::followedBy(), oofem::Dof::giveDofID(), oofem::Dof::giveDofIDs(), giveNumberOfDofs(), hasSlaveDofs, and oofem::IntArray::resizeWithValues().
Referenced by oofem::EngngModel::assembleVectorFromDofManagers(), oofem::VTKXMLLatticeExportModule::exportPrimaryVars(), and oofem::VTKXMLPeriodicExportModule::exportPrimaryVars().
| void oofem::DofManager::giveCompleteUnknownVector | ( | FloatArray & | answer, |
| ValueModeType | mode, | ||
| TimeStep * | tStep ) |
Assembles the complete unknown vector in node. Does not transform and local->global coordinate systems.
| answer | Complete vector of all dof values in receiver. |
| mode | Mode of unknowns. |
| tStep | Time step when unknown is requested. |
Definition at line 709 of file dofmanager.C.
References oofem::FloatArray::at(), giveNumberOfDofs(), oofem::Dof::giveUnknown(), and oofem::FloatArray::resize().
Referenced by oofem::PrimaryField::__evaluateAt(), oofem::InteractionPFEMParticle::giveCoupledVelocities(), oofem::InteractionPFEMParticle::givePrescribedUnknownVector(), and oofem::GnuplotExportModule::outputNodeDisp().
|
inline |
Definition at line 383 of file dofmanager.h.
References oofem::FloatArray::at(), and oofem::FloatArray::giveSize().
Referenced by oofem::TR1_2D_PFEM::checkConsistency(), oofem::MatlabExportModule::computeArea(), oofem::AxisymElement::computeBHmatrixAt(), oofem::AxisymElement::computeBmatrixAt(), oofem::CohesiveSurface3d::computeBmatrixAt(), oofem::Truss2d::computeBmatrixAt(), oofem::HTSelement::computeCenterOfGravity(), oofem::DelaunayTriangle::computeCircumcircle(), oofem::TR1_2D_PFEM::computeCriticalTimeStep(), oofem::FRCFCMNL::computeElementCentroid(), oofem::BondLink3d::computeGeometryProperties(), oofem::BondLink3dBoundary::computeGeometryProperties(), oofem::Lattice3d::computeGeometryProperties(), oofem::Lattice3d_mt::computeGeometryProperties(), oofem::Lattice3dBoundary::computeGeometryProperties(), oofem::Lattice3dBoundaryTruss::computeGeometryProperties(), oofem::LatticeBeam3d::computeGeometryProperties(), oofem::LatticeBeam3dBoundary::computeGeometryProperties(), oofem::LatticeLink3d::computeGeometryProperties(), oofem::LatticeLink3dBoundary::computeGeometryProperties(), oofem::CCTPlate3d::computeGlobalCoordinates(), oofem::DKTPlate3d::computeGlobalCoordinates(), oofem::LIBeam2dNL::computeGlobalCoordinates(), oofem::LIBeam3d2::computeGlobalCoordinates(), oofem::LIBeam3dNL2::computeGlobalCoordinates(), oofem::LIBeam3dNL::computeGlobalCoordinates(), oofem::MITC4Shell::computeGlobalCoordinates(), oofem::Truss2d::computeGlobalCoordinates(), oofem::Lattice2d_mt::computeInternalSourceRhsVectorAt(), oofem::Line::computeIntersectionPoints(), oofem::Beam2d::computeLength(), oofem::Beam3d::computeLength(), oofem::LIBeam2d::computeLength(), oofem::LIBeam2dNL::computeLength(), oofem::LIBeam3d2::computeLength(), oofem::LIBeam3d::computeLength(), oofem::LIBeam3dNL2::computeLength(), oofem::LIBeam3dNL::computeLength(), oofem::Truss2d::computeLength(), oofem::SurfaceTensionBoundaryCondition::computeLoadVectorFromElement(), oofem::Quasicontinuum::computeStiffnessTensorOf1Link(), oofem::SurfaceTensionBoundaryCondition::computeTangentFromElement(), oofem::LIBeam3dNL2::computeXdVector(), oofem::LIBeam3dNL::computeXdVector(), oofem::Quasicontinuum::createGlobalStiffnesMatrix(), oofem::FreemInterface::createInput(), oofem::T3DInterface::createInput(), oofem::T3DInterface::createInput(), oofem::DofManExportModule::doOutput(), oofem::Element::drawAnnotation(), oofem::CCTPlate::drawRawGeometry(), oofem::CohesiveSurface3d::drawRawGeometry(), oofem::DKTPlate::drawRawGeometry(), oofem::LIBeam2dNL::drawRawGeometry(), oofem::LIBeam3d2::drawRawGeometry(), oofem::LIBeam3dNL2::drawRawGeometry(), oofem::LIBeam3dNL::drawRawGeometry(), oofem::QDKTPlate::drawRawGeometry(), oofem::Truss1d::drawRawGeometry(), oofem::Truss2d::drawRawGeometry(), oofem::Truss3d::drawRawGeometry(), oofem::CCTPlate::drawScalar(), oofem::CohesiveSurface3d::drawScalar(), oofem::DKTPlate::drawScalar(), oofem::LIBeam3d2::drawScalar(), oofem::PFEMParticle::drawScalar(), oofem::QDKTPlate::drawScalar(), oofem::Truss1d::drawScalar(), oofem::Node::drawYourself(), oofem::InsertNode::evaluate(), oofem::CohesiveSurface3d::evaluateCenter(), oofem::CohesiveSurface3d::evaluateLocalCoordinateSystem(), oofem::VTKExportModule::exportIntVarAs(), oofem::VTKXMLPeriodicExportModule::exportPrimaryVars(), oofem::LEPlic::findCellLineConstant(), oofem::VTKBaseExportModule::getNodalVariableFromIS(), oofem::UserDefDirichletBC::give(), oofem::Beam3d::giveCompositeExportData(), oofem::LIBeam3d2::giveCurrentLength(), oofem::Beam3d::giveInternalForcesVectorAtPoint(), oofem::StructuralElement::giveInternalStateAtNode(), oofem::CohesiveSurface3d::giveLength(), oofem::Lattice2d::giveLength(), oofem::Lattice2d_mt::giveLength(), oofem::Lattice2dBoundary::giveLength(), oofem::LIBeam3d2::giveLocalCoordinateSystem(), oofem::LIBeam3d::giveLocalCoordinateSystem(), oofem::LIBeam3dBoundary::giveLocalCoordinateSystem(), oofem::LIBeam3dNL2::giveLocalCoordinateSystem(), oofem::LIBeam3dNL::giveLocalCoordinateSystem(), oofem::Beam2d::givePitch(), oofem::Lattice2d::givePitch(), oofem::Lattice2dBoundary::givePitch(), oofem::LIBeam2d::givePitch(), oofem::LIBeam2dNL::givePitch(), oofem::Truss2d::givePitch(), oofem::HTSelement::giveSideLength(), oofem::Node::giveUpdatedCoordinate(), oofem::LatticeBeam3dBoundary::giveVTKCoordinates(), oofem::TR1_2D_SUPG::initGeometry(), oofem::PolygonLine::intersects(), oofem::PolylineNonlocalBarrier::isActivated(), oofem::FRCFCMNL::isInElementProjection(), oofem::AbaqusUserElement::postInitialize(), oofem::CohesiveSurface3d::postInitialize(), oofem::PFEM::printDofOutputAt(), oofem::LatticeDirichletCouplingNode::printYourself(), oofem::LatticeNeumannCouplingNode::printYourself(), oofem::Node::printYourself(), oofem::PLHoopStressCirc::propagateInterface(), oofem::PLPrincipalStrain::propagateInterface(), oofem::Lattice2dBoundary::recalculateCoordinates(), oofem::Lattice3dBoundary::recalculateCoordinates(), oofem::Lattice3dBoundaryTruss::recalculateCoordinates(), oofem::LatticeLink3dBoundary::recalculateCoordinates(), oofem::QClinearStatic::transformMeshToParticles(), oofem::GeometryBasedEI::updateNodeEnrMarker(), and oofem::XfemElementInterface::XfemElementInterface_createEnrNmatrixAt().
|
inline |
Definition at line 390 of file dofmanager.h.
Referenced by oofem::PrimaryField::__evaluateAt(), oofem::PrimaryField::applyInitialCondition(), oofem::OctreeSpatialLocalizer::buildOctreeDataStructure(), oofem::ContactElement::computeAABB(), oofem::XfemElementInterface::ComputeBOrBHMatrix(), oofem::Tet1_3D_SUPG::computeCriticalTimeStep(), oofem::MixedGradientPressureDirichlet::computeDofTransformation(), oofem::PrescribedGradientBCPeriodic::computeDofTransformation(), oofem::SolutionbasedShapeFunction::computeDofTransformation(), oofem::TransportGradientPeriodic::computeDofTransformation(), oofem::PrescribedGradientBCWeak::computeDomainBoundingBox(), oofem::Circle::computeIntersectionPoints(), oofem::GeometryBasedEI::computeIntersectionPoints(), oofem::GeometryBasedEI::computeIntersectionPoints(), oofem::Line::computeIntersectionPoints(), oofem::PolygonLine::computeIntersectionPoints(), oofem::Quasicontinuum::computeIntersectionsOfLinkWith2DTringleElements(), oofem::Quasicontinuum::computeIntersectionsOfLinkWith3DTetrahedraElements(), oofem::LatticeNeumannCouplingNode::computeLoadCouplingContribution(), oofem::MITC4Shell::computeLoadLEToLRotationMatrix(), oofem::RigidArmNode::computeMasterContribution(), oofem::MaterialForceEvaluator::computeMaterialForce(), oofem::Quad1Mindlin::computeMidPlaneNormal(), oofem::Quad1MindlinShell3D::computeMidPlaneNormal(), oofem::Line::computeNumberOfIntersectionPoints(), oofem::PrescribedDispSlipBCDirichletRC::computeReinfStress(), oofem::MeshQualityErrorEstimator::computeTriangleRadiusError(), oofem::TransportGradientDirichlet::computeXi(), oofem::DGProblem::constructBoundaryEntities(), oofem::SolutionbasedShapeFunction::copyDofManagersToSurfaceData(), oofem::PFEM::deactivateTooCloseParticles(), oofem::LEPlic::doLagrangianPhase(), oofem::VTKExportModule::doOutput(), oofem::VTKPFEMXMLExportModule::doOutput(), oofem::ClosestNode::evaluate(), oofem::InternalVariableField::evaluateAt(), oofem::UniformGridField::evaluateAt(), oofem::UnstructuredGridField::evaluateAt(), oofem::VoxelVOFField::evaluateAt(), oofem::Shell7BaseXFEM::EvaluateEnrFuncInDofMan(), oofem::GeometryBasedEI::evaluateEnrFuncInNode(), oofem::VTKXMLLatticeExportModule::exportPrimaryVars(), oofem::VTKXMLPeriodicExportModule::exportPrimaryVars(), oofem::PrescribedGradientBCWeak::findCrackBndIntersecCoord(), oofem::PrescribedGradientBCWeak::findHoleCoord(), oofem::QClinearStatic::findNearestParticle(), oofem::DelaunayTriangulator::findNonDelaunayTriangles(), oofem::PrescribedGradientBCPeriodic::findSlaveToMasterMap(), oofem::TransportGradientPeriodic::findSlaveToMasterMap(), oofem::VTKXMLXFemExportModule::getNodalVariableFromXFEMST(), oofem::PrescribedDispSlipBCDirichletRC::give(), oofem::PrescribedGenStrainShell7::give(), oofem::PrescribedGradient::give(), oofem::RotatingBoundary::give(), oofem::TransportGradientDirichlet::give(), oofem::UserDefDirichletBC::give(), oofem::DummySpatialLocalizer::giveAllNodesWithinBox(), oofem::PlaneStress2dXfem::giveCompositeExportData(), oofem::QTrPlaneStress2dXFEM::giveCompositeExportData(), oofem::TrPlaneStress2dXFEM::giveCompositeExportData(), oofem::MITC4Shell::giveDirectorVectors(), oofem::DelaunayTriangle::giveEdgeLength(), oofem::MacroLSpace::giveInternalForcesVector(), oofem::Beam3d::giveLocalCoordinateSystem(), oofem::MicroMaterial::giveMacroStiffnessMatrix(), oofem::PrescribedGradientBCPeriodic::giveMasterDof(), oofem::DummySpatialLocalizer::giveNodeClosestToPoint(), oofem::OctreeSpatialLocalizer::giveNodeClosestToPointWithinOctant(), oofem::CCTPlate::giveNodeCoordinates(), oofem::DKTPlate::giveNodeCoordinates(), oofem::QDKTPlate::giveNodeCoordinates(), oofem::Shell7BaseXFEM::giveShellExportData(), oofem::XfemStructuralElementInterface::giveSubtriangulationCompositeExportData(), oofem::MITC4Shell::giveThickness(), oofem::MixedGradientPressureDirichlet::giveUnknown(), oofem::PrescribedGradientBCPeriodic::giveUnknown(), oofem::TransportGradientPeriodic::giveUnknown(), oofem::Truss1d::HuertaErrorEstimatorI_setupRefinedElementProblem(), oofem::SolutionbasedShapeFunction::init(), oofem::OctreeSpatialLocalizer::initElementIPDataStructure(), oofem::SolutionbasedShapeFunction::initializeSurfaceData(), oofem::OctreeSpatialLocalizer::insertNodeIntoOctree(), oofem::Circle::intersects(), oofem::Circle::isInside(), oofem::QCFullsolveddomain::isNodeInside(), oofem::SolutionbasedShapeFunction::loadProblem(), oofem::EIPrimaryUnknownMapper::mapAndUpdate(), oofem::EnrFrontLinearBranchFuncRadius::MarkNodesAsFront(), oofem::QClinearStatic::nodeInFullSolvedDomainTest(), oofem::GnuplotExportModule::outputBoundaryCondition(), oofem::IntElLine1::postInitialize(), oofem::PLCZdamageRadius::propagateInterface(), oofem::PLHoopStressCirc::propagateInterface(), oofem::PLnodeRadius::propagateInterface(), oofem::PLPrincipalStrain::propagateInterface(), oofem::MicroMaterial::setMacroProperties(), oofem::QuasicontinuumVTKXMLExportModule::setupVTKPiece(), oofem::VTKBaseExportModule::setupVTKPiece(), oofem::VTKXMLLatticeExportModule::setupVTKPiece(), oofem::VTKXMLPeriodicExportModule::setupVTKPiece(), oofem::FreemInterface::smoothNodalDensities(), oofem::SolutionbasedShapeFunction::splitBoundaryNodeIDs(), oofem::Quasicontinuum::stiffnessAssignment(), oofem::QClinearStatic::transformMeshToParticles(), oofem::PrescribedGenStrainShell7::updateCoefficientMatrix(), oofem::GeometryBasedEI::updateLevelSets(), oofem::GeometryBasedEI::updateNodeEnrMarker(), and oofem::XfemElementInterface::XfemElementInterface_createEnrNmatrixAt().
|
inline |
Returns map from DofIDItem to dofType.
Definition at line 409 of file dofmanager.h.
References dofTypemap.
Referenced by oofem::Domain::createDofs(), oofem::qcNode::setAsHanging(), and oofem::qcNode::setAsRepnode().
| Dof * oofem::DofManager::giveDofWithID | ( | int | dofID | ) | const |
Returns DOF with given dofID; issues error if not present.
| dofID | The ID for the requested DOF. |
Definition at line 127 of file dofmanager.C.
References end(), findDofWithDofId(), and OOFEM_ERROR.
Referenced by oofem::PrimaryField::applyBoundaryCondition(), oofem::InternalElementDofManErrorCheckingRule::check(), oofem::NodeErrorCheckingRule::check(), oofem::LatticeNeumannCouplingNode::computeLoadCouplingContribution(), oofem::CoupledFieldsElement::computeLocationArrayOfDofIDs(), oofem::IntElLine1PF::computeLocationArrayOfDofIDs(), oofem::PhaseFieldElement::computeLocationArrayOfDofIDs(), computeM2LTransformation(), oofem::RigidArmNode::computeMasterContribution(), oofem::PrescribedDispSlipBCDirichletRC::computeReinfStress(), oofem::PrescribedDispSlipBCDirichletRC::computeTransferStress(), oofem::InteractionLoad::computeValueAt(), oofem::CoupledFieldsElement::computeVectorOfDofIDs(), oofem::Domain::createDofs(), oofem::CohesiveSurface3d::drawDeformedGeometry(), oofem::CohesiveSurface3d::drawScalar(), oofem::tet21ghostsolid::EIPrimaryUnknownMI_computePrimaryUnknownVectorAtLocal(), oofem::VTKBaseExportModule::exportExternalForces(), oofem::VTKXMLLatticeExportModule::exportPrimaryVars(), oofem::VTKXMLPeriodicExportModule::exportPrimaryVars(), oofem::VTKExportModule::getDofManPrimaryVariable(), oofem::VTKBaseExportModule::getNodalVariableFromPrimaryField(), oofem::InternalElementDofManErrorCheckingRule::getValue(), oofem::NodeErrorCheckingRule::getValue(), oofem::RefinedElement::giveCompatibleBcDofArray(), oofem::MicroMaterial::giveMacroStiffnessMatrix(), givePrescribedUnknownVector(), oofem::InteractionPFEMParticle::givePrescribedUnknownVector(), oofem::tet21ghostsolid::giveRowTransformationMatrix(), oofem::PrescribedGradientBCPeriodic::giveUnknown(), oofem::PrescribedGradientBCPeriodic::giveUnknown(), oofem::TransportGradientPeriodic::giveUnknown(), oofem::TransportGradientPeriodic::giveUnknown(), oofem::tet21ghostsolid::NodalAveragingRecoveryMI_computeNodalValue(), oofem::GnuplotExportModule::outputBoundaryCondition(), oofem::GnuplotExportModule::outputReactionForces(), oofem::TransientTransportProblem::printOutputAt(), oofem::StructuralEngngModel::printReactionForces(), oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem1D(), oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem2D(), oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem3D(), oofem::HuertaErrorEstimator::solveRefinedElementProblem(), oofem::HuertaErrorEstimator::solveRefinedWholeProblem(), oofem::FluidStructureProblem::solveYourselfAt(), oofem::IncrementalLinearStatic::solveYourselfAt(), oofem::PrescribedGenStrainShell7::updateCoefficientMatrix(), oofem::PFEM::updateDofUnknownsDictionaryPressure(), and oofem::SolutionbasedShapeFunction::updateModelWithFactors().
|
inline |
Returns list of specific dofs that should be included in node.
Definition at line 404 of file dofmanager.h.
References dofidmask.
|
inline |
Definition at line 515 of file dofmanager.h.
References globalNumber.
Referenced by oofem::Element::addDofManager(), oofem::Domain::BuildDofManPlaceInArrayMap(), oofem::ParmetisLoadBalancer::calculateLoadTransfer(), oofem::XfemElementInterface::ComputeBOrBHMatrix(), oofem::Shell7BaseXFEM::computeEnrichedBmatrixAt(), oofem::GeometryBasedEI::computeIntersectionPoints(), oofem::XfemElementInterface::computeNCohesive(), oofem::PrescribedGradientBCWeak::createTractionMesh(), oofem::LoadBalancer::deleteRemoteDofManagers(), oofem::Node::drawYourself(), oofem::Shell7BaseXFEM::EvaluateEnrFuncInDofMan(), oofem::Subdivision::exchangeRemoteElements(), oofem::PlaneStress2dXfem::giveCompositeExportData(), oofem::QTrPlaneStress2dXFEM::giveCompositeExportData(), oofem::TrPlaneStress2dXFEM::giveCompositeExportData(), oofem::AuxVelocityNumberingScheme::giveDofEquationNumber(), oofem::PlaneStress2dXfem::giveDofManDofIDMask(), oofem::QTrPlaneStress2dXFEM::giveDofManDofIDMask(), oofem::TrPlaneStress2dXFEM::giveDofManDofIDMask(), oofem::MicroMaterial::giveMacroStiffnessMatrix(), oofem::EnrichmentItem::giveNumDofManEnrichments(), oofem::PrescribedDispSlipBCDirichletRC::giveOnSteel(), oofem::XfemStructuralElementInterface::giveSubtriangulationCompositeExportData(), oofem::Natural2GlobalOrdering::init(), oofem::EnrichmentItem::isDofManEnriched(), oofem::QCFullsolveddomain::isNodeInside(), oofem::LoadBalancer::migrateLoad(), oofem::LoadBalancer::packMigratingData(), oofem::NonlocalMaterialWTP::packRemoteElements(), oofem::Subdivision::packRemoteElements(), oofem::ParmetisLoadBalancer::packSharedDmanPartitions(), oofem::LatticeDirichletCouplingNode::printOutputAt(), oofem::qcNode::printOutputAt(), oofem::Domain::py_setDofManager(), oofem::REGISTER_EnrichmentFront(), oofem::MicroMaterial::setMacroProperties(), oofem::QClinearStatic::setRepNodesInVerticesOfInterpolationMesh(), oofem::FETICommunicator::setUpCommunicationMaps(), oofem::GeometryBasedEI::updateNodeEnrMarker(), oofem::XfemElementInterface::XfemElementInterface_createEnrNmatrixAt(), and oofem::XfemElementInterface::XfemElementInterface_giveNumDofManEnrichments().
|
inline |
Returns map from DofIDItem to initial condition.
Definition at line 427 of file dofmanager.h.
References dofICmap.
Referenced by oofem::Domain::createDofs().
|
overridevirtual |
Setups the input record string of receiver.
| input | Dynamic input record to be filled by receiver. |
Reimplemented from oofem::FEMComponent.
Reimplemented in oofem::Node.
Definition at line 455 of file dofmanager.C.
References oofem::IntArray::at(), dofidmask, oofem::DofManager_null, oofem::DofManager_remote, oofem::DofManager_shared, dofMastermap, dofTypemap, oofem::IntArray::followedBy(), oofem::Dof::giveBcId(), oofem::Dof::giveDofID(), IPK_DofManager_bc, IPK_DofManager_boundaryflag, IPK_DofManager_dofidmask, IPK_DofManager_doftypemask, IPK_DofManager_mastermask, IPK_DofManager_nullflag, IPK_DofManager_partitions, IPK_DofManager_remoteflag, IPK_DofManager_sharedflag, isBoundaryFlag, parallel_mode, partitions, and oofem::DynamicInputRecord::setField().
|
inlineoverridevirtual |
Implements oofem::FEMComponent.
Reimplemented in oofem::ElementDofManager, oofem::ElementSide, oofem::GeneralSlaveNode, oofem::HangingNode, oofem::InteractionPFEMParticle, oofem::Node, oofem::Particle, oofem::PFEMParticle, oofem::qcNode, oofem::RigidArmNode, and oofem::SlaveNode.
Definition at line 558 of file dofmanager.h.
Referenced by oofem::Subdivision::createMesh(), oofem::LoadBalancer::packMigratingData(), oofem::NonlocalMaterialWTP::packRemoteElements(), and oofem::Subdivision::packRemoteElements().
|
inline |
Definition at line 516 of file dofmanager.h.
References globalNumber.
Referenced by oofem::ReactionErrorCheckingRule::check(), oofem::ReactionErrorCheckingRule::getValue(), oofem::ClonedDofManager::printOutputAt(), printOutputAt(), oofem::LatticeDirichletCouplingNode::printOutputAt(), oofem::qcNode::printOutputAt(), oofem::TransientTransportProblem::printOutputAt(), and oofem::StructuralEngngModel::printReactionForces().
| IntArray * oofem::DofManager::giveLoadArray | ( | ) |
Returns the array containing applied loadings of the receiver
Definition at line 90 of file dofmanager.C.
References loadArray.
Referenced by oofem::EngngModel::assembleVectorFromDofManagers(), oofem::LatticeNeumannCouplingNode::computeLoadVectorAt(), oofem::Subdivision::createMesh(), oofem::Node::drawYourself(), oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem1D(), oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem2D(), and oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem3D().
| void oofem::DofManager::giveLocationArray | ( | const IntArray & | dofIDArry, |
| IntArray & | locationArray, | ||
| const UnknownNumberingScheme & | s ) const |
Returns location array (array containing for each requested dof related equation number) for given numbering scheme.
| dofIDArry | Array containing dof mask. This mask containing DofIDItem values (they describe physical meaning of dofs, see cltypes.h) is used to extract only required values. If dof with requested physical meaning does not exist in receiver, an error is generated and execution exits. |
| locationArray | Return parameter containing required equation numbers. |
| s | Determines the equation numbering scheme. |
Definition at line 185 of file dofmanager.C.
References oofem::IntArray::at(), oofem::IntArray::clear(), end(), findDofWithDofId(), oofem::IntArray::followedBy(), oofem::UnknownNumberingScheme::giveDofEquationNumber(), oofem::IntArray::giveSize(), hasSlaveDofs, OOFEM_ERROR, and oofem::IntArray::resize().
Referenced by oofem::PrescribedGradientBCWeak::assemble(), oofem::PrescribedGradientBCWeak::assembleExtraDisplock(), oofem::EngngModel::assembleVectorFromBC(), oofem::EngngModel::assembleVectorFromDofManagers(), oofem::Integral::getElementTermCodeNumbers(), and oofem::PrescribedGradientBCWeak::giveTractionLocationArray().
| void oofem::DofManager::giveMasterDofIDArray | ( | const IntArray & | dofIDArry, |
| IntArray & | masterDofIDs ) const |
Returns master dof ID array of receiver.
| dofIDArry | Array containing dof mask. This mask containing DofIDItem values (they describe physical meaning of dofs, see cltypes.h) is used to extract only required values. If dof with requested physical meaning does not exist in receiver, an error is generated and execution exits. |
| masterDofIDs | Master dof ID array. |
Definition at line 217 of file dofmanager.C.
References oofem::IntArray::clear(), end(), findDofWithDofId(), oofem::IntArray::followedBy(), hasSlaveDofs, and OOFEM_ERROR.
Referenced by oofem::Integral::getElementTermCodeNumbers().
|
virtual |
Returns true if the receiver is linked (its slave DOFs depend on master values) to some other dof managers. In this case, the masters array should contain the list of masters. In both serial and parallel modes, local numbers are be provided.
| masters | Indices of dof managers which receiver has slaves to. |
Definition at line 814 of file dofmanager.C.
References oofem::IntArray::at(), oofem::IntArray::clear(), oofem::Dof::giveMasterDofManArray(), oofem::IntArray::giveSize(), oofem::IntArray::insertSortedOnce(), and oofem::Dof::isPrimaryDof().
Referenced by oofem::ParmetisLoadBalancer::handleMasterSlaveDofManLinks().
|
inline |
Returns map from DofIDItem to dofType.
Definition at line 415 of file dofmanager.h.
References dofMastermap.
Referenced by oofem::Domain::createDofs().
| int oofem::DofManager::giveNumberOfDofs | ( | ) | const |
Definition at line 287 of file dofmanager.C.
References dofArray.
Referenced by oofem::PetscSparseMtrx::buildInternalStructure(), oofem::RigidArmNode::checkConsistency(), oofem::Node::computeL2GTransformation(), computeLoadVector(), oofem::CoupledFieldsElement::computeLocationArrayOfDofIDs(), oofem::IntElLine1PF::computeLocationArrayOfDofIDs(), oofem::PhaseFieldElement::computeLocationArrayOfDofIDs(), oofem::StructuralInterfaceElementPhF::computeLocationArrayOfDofIDs(), computeM2LTransformation(), oofem::ElementSide::computeTransformation(), oofem::HuertaErrorEstimator::estimateError(), oofem::VTKXMLLatticeExportModule::exportPrimaryVars(), oofem::VTKXMLPeriodicExportModule::exportPrimaryVars(), oofem::RefinedElement::giveBcDofArray1D(), oofem::RefinedElement::giveBcDofArray2D(), oofem::RefinedElement::giveBcDofArray3D(), giveCompleteLocationArray(), giveCompleteMasterDofIDArray(), giveCompleteUnknownVector(), oofem::MacroLSpace::giveInternalForcesVector(), oofem::BaseMixedPressureElement::giveLocationArrayOfDofIDs(), oofem::GradientDamageElement::giveLocationArrayOfDofIDs(), oofem::Natural2GlobalOrdering::init(), oofem::LSPrimaryVariableMapper::mapPrimaryVariables(), oofem::LatticeDirichletCouplingNode::printOutputAt(), oofem::LatticeDirichletCouplingNode::printYourself(), oofem::LatticeNeumannCouplingNode::printYourself(), oofem::MicroMaterial::setMacroProperties(), oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem1D(), oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem2D(), and oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem3D().
| int oofem::DofManager::giveNumberOfPrimaryMasterDofs | ( | const IntArray & | dofIDArray | ) | const |
Returns the number of primary dofs on which receiver dofs (given in dofArray) depend on. If receiver has only primary dofs, the answer is the size of dofArray.
| dofArray | Array with Dof IDs. |
Definition at line 311 of file dofmanager.C.
References end(), findDofWithDofId(), oofem::IntArray::giveSize(), hasSlaveDofs, and OOFEM_ERROR.
Referenced by computeM2LTransformation().
|
inline |
Return dofManagerParallelMode of receiver.
Definition at line 526 of file dofmanager.h.
References parallel_mode.
Referenced by oofem::EngngModel::assembleVectorFromDofManagers(), oofem::NodeErrorCheckingRule::check(), oofem::qcNode::checkConsistency(), oofem::Node::drawYourself(), oofem::Subdivision::exchangeRemoteElements(), oofem::NodeErrorCheckingRule::getValue(), oofem::Natural2GlobalOrdering::init(), oofem::ParallelOrdering::isLocal(), oofem::ParallelOrdering::isShared(), oofem::ParmetisLoadBalancer::labelDofManagers(), oofem::EIPrimaryUnknownMapper::mapAndUpdate(), oofem::LoadBalancer::migrateLoad(), oofem::NonlocalMaterialWTP::packRemoteElements(), oofem::Subdivision::packRemoteElements(), oofem::ParmetisLoadBalancer::packSharedDmanPartitions(), oofem::FETICommunicator::setUpCommunicationMaps(), oofem::NodeCommunicator::setUpCommunicationMaps(), oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem2D(), oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem3D(), oofem::EngngModel::unpackDofManagers(), oofem::NonLinearDynamic::unpackMigratingData(), and oofem::NonLinearStatic::unpackMigratingData().
|
inline |
Returns partition list of receiver.
Definition at line 533 of file dofmanager.h.
References partitions.
Referenced by oofem::LoadBalancer::deleteRemoteDofManagers(), oofem::Natural2GlobalOrdering::init(), oofem::ParallelOrdering::isLocal(), oofem::LoadBalancer::migrateLoad(), oofem::LoadBalancer::packMigratingData(), oofem::NonlocalMaterialWTP::packRemoteElements(), oofem::Subdivision::packRemoteElements(), oofem::ParmetisLoadBalancer::packSharedDmanPartitions(), and oofem::NodeCommunicator::setUpCommunicationMaps().
| int oofem::DofManager::givePartitionsConnectivitySize | ( | ) |
Returns number of partitions sharing given receiver (=number of shared partitions + local one).
Definition at line 934 of file dofmanager.C.
References oofem::FEMComponent::giveDomain(), and partitions.
Referenced by oofem::EngngModel::assembleVectorFromDofManagers().
|
virtual |
Assembles the vector of prescribed unknowns in nodal c.s for given dofs of receiver. This vector may have size different from number of dofs requested, because some dofs may depend on other dofs. Default implementation uses Dof::giveBcValue and Dof::hasBc service.
| answer | Result (in nodal cs.) |
| dofMask | Array containing dof mask. This mask containing DofIDItem values (they describe physical meaning of dofs, see cltypes.h) is used to extract only required values. If dof with requested physical meaning does not exist in receiver, an error is generated and execution exits. |
| mode | Mode of unknown (e.g, total value, velocity or acceleration of unknown). |
| tStep | Time step when unknown requested. See documentation of particular EngngModel class for valid tStep values (most implementation can return only values for current and possibly for previous time step). |
Reimplemented in oofem::InteractionPFEMParticle.
Definition at line 720 of file dofmanager.C.
References oofem::FloatArray::at(), computeL2GTransformation(), giveDofWithID(), oofem::IntArray::giveSize(), oofem::FloatArray::resize(), and oofem::FloatArray::rotatedWith().
| void oofem::DofManager::giveUnknownVector | ( | FloatArray & | answer, |
| const IntArray & | dofMask, | ||
| PrimaryField & | field, | ||
| ValueModeType | mode, | ||
| TimeStep * | tStep, | ||
| bool | padding = false ) |
Assembles the vector of unknowns of given filed in global c.s for given dofs of receiver.
| answer | Result (in nodal cs.) |
| dofMask | Array containing DOF mask. This mask containing DofIDItem values (they describe physical meaning of dofs, see cltypes.h) is used to extract only required values. If dof with requested physical meaning does not exist in receiver, an error is generated and execution exits. |
| field | Primary field. |
| mode | Mode of unknown (e.g, total value, velocity or acceleration of unknown). |
| tStep | Time step when unknown is requested. See documentation of particular EngngModel class for valid tStep values (most implementation can return only values for current and possibly for previous time step). |
| padding | Determines if zero value should be inserted when a dof isn't found (otherwise it is just skipped). |
Definition at line 683 of file dofmanager.C.
References oofem::FloatArray::at(), computeL2GTransformation(), end(), findDofWithDofId(), oofem::IntArray::giveSize(), oofem::FloatArray::resize(), oofem::FloatArray::resizeWithValues(), and oofem::FloatArray::rotatedWith().
| void oofem::DofManager::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.
| answer | Result (in global c.s.) |
| dofMask | Array containing DOF mask. This mask containing DofIDItem values (they describe physical meaning of dofs, see cltypes.h) is used to extract only required values. If dof with requested physical meaning does not exist in receiver, an error is generated and execution exits. |
| mode | Mode of unknown (e.g, total value, velocity or acceleration of unknown). |
| tStep | Time step when unknown requested. See documentation of particular EngngModel class for valid tStep values (most implementation can return only values for current and possibly for previous time step). |
| padding | Determines if zero value should be inserted when a dof isn't found (otherwise it is just skipped). |
Definition at line 657 of file dofmanager.C.
References oofem::FloatArray::at(), computeL2GTransformation(), end(), findDofWithDofId(), oofem::IntArray::giveSize(), oofem::FloatArray::resize(), oofem::FloatArray::resizeWithValues(), and oofem::FloatArray::rotatedWith().
Referenced by oofem::PrimaryField::__evaluateAt(), oofem::PrescribedGradientBCWeak::computeIntForceGPContrib(), oofem::LEPlic::doLagrangianPhase(), oofem::MPElement::getBoundaryUnknownVector(), oofem::MPElement::getUnknownVector(), oofem::HuertaErrorEstimator::solveRefinedElementProblem(), and oofem::HuertaErrorEstimator::solveRefinedWholeProblem().
| void oofem::DofManager::giveUnknownVectorOfType | ( | FloatArray & | answer, |
| UnknownType | ut, | ||
| ValueModeType | mode, | ||
| TimeStep * | tStep ) |
Constructs the requested vector by assembling e.g. [D_u, D_v, D_w] or [V_u, V_v, V_w]. If for example D_v or V_w doesn't exist, then zero value is inserted.
| answer | The requested vector. |
| ut | The unknown type to assemble. |
| mode | Value mode (total, incremental, etc.) |
| tStep | Time step to evaluate at. |
Definition at line 738 of file dofmanager.C.
References oofem::FloatArray::at(), oofem::IntArray::at(), oofem::FloatArray::beProductOf(), computeL2GTransformation(), oofem::Dof::giveDofID(), oofem::Dof::giveUnknown(), OOFEM_ERROR, oofem::FloatArray::resize(), and oofem::FloatArray::zero().
Referenced by oofem::Node::giveUpdatedCoordinates().
|
virtual |
Definition at line 802 of file dofmanager.C.
References oofem::Dof::isPrimaryDof().
Referenced by computeM2LTransformation(), oofem::ParmetisLoadBalancer::handleMasterSlaveDofManLinks(), and requiresTransformation().
| bool oofem::DofManager::hasDofID | ( | DofIDItem | id | ) | const |
Checks if receiver contains dof with given ID.
| id | Dof ID to check for. |
Definition at line 174 of file dofmanager.C.
References oofem::Dof::giveDofID().
Referenced by oofem::EnrichmentItem::computeEnrichedDofManDofIdArray(), oofem::CoupledFieldsElement::computeLocationArrayOfDofIDs(), oofem::IntElLine1PF::computeLocationArrayOfDofIDs(), oofem::PhaseFieldElement::computeLocationArrayOfDofIDs(), oofem::StructuralInterfaceElementPhF::computeLocationArrayOfDofIDs(), oofem::CoupledFieldsElement::computeVectorOfDofIDs(), oofem::Domain::createDofs(), oofem::VTKExportModule::getDofManPrimaryVariable(), oofem::VTKBaseExportModule::getNodalVariableFromPrimaryField(), oofem::XfemManager::giveEnrichedDofIDs(), oofem::BaseMixedPressureElement::giveLocationArrayOfDofIDs(), oofem::GradientDamageElement::giveLocationArrayOfDofIDs(), and oofem::MPMSymbolicTerm::initializeCell().
|
overridevirtual |
Finishes the initialization. Note that initializeFrom may be called multiple times. The initializeFinish typycally performs the input parameter checking (if compulsory parameters set, etc.) After initializeFinish, DOFs and other components may be created.
Reimplemented from oofem::FEMComponent.
Reimplemented in oofem::GeneralSlaveNode, and oofem::Node.
Definition at line 367 of file dofmanager.C.
References oofem::IntArray::at(), oofem::ParameterManager::checkIfSet(), oofem::IntArray::contains(), dofBCmap, dofICmap, dofidmask, dofMastermap, dofTypemap, oofem::FEMComponent::domain, oofem::ParameterManager::getTempParam(), oofem::FEMComponent::giveDomain(), oofem::IntArray::giveSize(), IPK_DofManager_bc, IPK_DofManager_dofidmask, IPK_DofManager_doftypemask, IPK_DofManager_ic, IPK_DofManager_mastermask, mBC, oofem::FEMComponent::number, and OOFEM_ERROR.
|
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::FEMComponent.
Reimplemented in oofem::Node.
Definition at line 456 of file dofmanager.h.
References initializeFrom().
Referenced by oofem::Domain::initializeFinish(), and initializeFrom().
|
overridevirtual |
Reimplemented from oofem::FEMComponent.
Reimplemented in oofem::GeneralSlaveNode, oofem::HangingNode, oofem::InteractionPFEMParticle, oofem::LatticeDirichletCouplingNode, oofem::LatticeNeumannCouplingNode, oofem::Node, oofem::Particle, oofem::qcNode, oofem::RigidArmNode, and oofem::SlaveNode.
Definition at line 334 of file dofmanager.C.
References dofidmask, oofem::DofManager_local, oofem::DofManager_null, oofem::DofManager_remote, oofem::DofManager_shared, oofem::FEMComponent::giveDomain(), IPK_DofManager_bc, IPK_DofManager_boundaryflag, IPK_DofManager_dofidmask, IPK_DofManager_doftypemask, IPK_DofManager_ic, IPK_DofManager_load, IPK_DofManager_mastermask, IPK_DofManager_nullflag, IPK_DofManager_partitions, IPK_DofManager_remoteflag, IPK_DofManager_sharedflag, isBoundaryFlag, loadArray, mBC, oofem::FEMComponent::number, parallel_mode, partitions, PM_CHECK_FLAG_AND_REPORT, PM_UPDATE_PARAMETER, and PM_UPDATE_TEMP_PARAMETER.
|
inline |
Definition at line 439 of file dofmanager.h.
References isBoundaryFlag.
Referenced by setBoundaryFlag().
|
inlinevirtual |
Returns true if dof of given type is allowed to be associated to receiver.
Reimplemented in oofem::ClonedDofManager, oofem::ElementDofManager, oofem::ElementSide, oofem::GeneralSlaveNode, oofem::HangingNode, oofem::Node, oofem::qcNode, oofem::RigidArmNode, and oofem::SlaveNode.
Definition at line 468 of file dofmanager.h.
Referenced by oofem::Domain::createDofs().
| bool oofem::DofManager::isLocal | ( | ) |
Returns true if receiver is locally maintained.
Definition at line 946 of file dofmanager.C.
References oofem::DofManager_local, oofem::DofManager_shared, oofem::FEMComponent::giveDomain(), oofem::min(), parallel_mode, and partitions.
|
inline |
Returns true if receiver is shared.
Definition at line 554 of file dofmanager.h.
References oofem::DofManager_null, and parallel_mode.
|
inline |
Returns true if receiver is shared.
Definition at line 552 of file dofmanager.h.
References oofem::DofManager_shared, and parallel_mode.
Referenced by oofem::DirectErrorIndicatorRC::giveDofManDensity(), oofem::DirectErrorIndicatorRC::giveDofManIndicator(), and oofem::NonlocalMaterialWTP::packRemoteElements().
| void oofem::DofManager::mergePartitionList | ( | IntArray & | _p | ) |
Merges receiver partition list with given lists.
Definition at line 924 of file dofmanager.C.
References oofem::IntArray::at(), oofem::IntArray::giveSize(), and partitions.
|
overridevirtual |
Performs post initialization steps. Called after all components are created and initialized.
Reimplemented from oofem::FEMComponent.
Reimplemented in oofem::GeneralSlaveNode, oofem::HangingNode, oofem::LatticeDirichletCouplingNode, oofem::LatticeNeumannCouplingNode, oofem::Particle, oofem::qcNode, oofem::RigidArmNode, and oofem::SlaveNode.
Definition at line 444 of file dofmanager.C.
References hasSlaveDofs, and oofem::Dof::isPrimaryDof().
Referenced by oofem::GeneralSlaveNode::postInitialize(), oofem::LatticeNeumannCouplingNode::postInitialize(), and oofem::Particle::postInitialize().
|
overridevirtual |
Prints output of receiver to stream, for given time step. This is used for output into the standard output file.
| file | File pointer to print to. |
| tStep | Time step to write for. |
Reimplemented from oofem::FEMComponent.
Reimplemented in oofem::LatticeDirichletCouplingNode, and oofem::qcNode.
Definition at line 507 of file dofmanager.C.
References giveClassName(), oofem::FEMComponent::giveDomain(), giveLabel(), oofem::FEMComponent::giveNumber(), and oofem::EngngModel::printDofOutputAt().
Referenced by oofem::EngngModel::outputNodes(), and oofem::Element::printOutputAt().
|
overridevirtual |
Prints receiver state on stdout. Useful for debugging.
Reimplemented from oofem::FEMComponent.
Reimplemented in oofem::ElementDofManager, oofem::ElementSide, oofem::LatticeDirichletCouplingNode, oofem::LatticeNeumannCouplingNode, and oofem::Node.
Definition at line 518 of file dofmanager.C.
References loadArray, oofem::FEMComponent::number, and oofem::Dof::printYourself().
| void oofem::DofManager::removeDof | ( | DofIDItem | id | ) |
Removes Dof with given id from dofArray.
| id |
Definition at line 159 of file dofmanager.C.
References begin(), dofArray, oofem::Dof::giveDofID(), and OOFEM_WARNING.
Referenced by oofem::EnrichmentItem::createEnrichedDofs().
|
inline |
Removes given partition from receiver list.
Definition at line 537 of file dofmanager.h.
References partitions.
|
virtual |
Indicates, whether dofManager requires the transformation.
Reimplemented in oofem::ElementSide, and oofem::Node.
Definition at line 903 of file dofmanager.C.
References hasAnySlaveDofs().
|
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::FEMComponent.
Reimplemented in oofem::Node.
Definition at line 595 of file dofmanager.C.
References appendDof(), oofem::CIO_IOERR, oofem::CIO_OK, oofem::classFactory, CM_Definition, dofArray, globalNumber, hasSlaveDofs, isBoundaryFlag, loadArray, parallel_mode, partitions, oofem::DataStream::read(), oofem::Dof::restoreContext(), and THROW_CIOERR.
Referenced by oofem::LoadBalancer::unpackMigratingData(), and oofem::Subdivision::unpackRemoteElements().
|
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::FEMComponent.
Reimplemented in oofem::Node.
Definition at line 540 of file dofmanager.C.
References oofem::CIO_IOERR, oofem::CIO_OK, CM_Definition, globalNumber, hasSlaveDofs, isBoundaryFlag, loadArray, parallel_mode, partitions, THROW_CIOERR, and oofem::DataStream::write().
Referenced by oofem::LoadBalancer::packMigratingData(), oofem::NonlocalMaterialWTP::packRemoteElements(), and oofem::Subdivision::packRemoteElements().
|
inline |
Sets the boundary flag.
| isBoundary | Determines if receiver is on the boundary. |
Definition at line 444 of file dofmanager.h.
References isBoundary().
|
inline |
Set coordinates.
Definition at line 394 of file dofmanager.h.
|
inline |
Sets receiver global number.
| number | New global number for receiver. |
Definition at line 521 of file dofmanager.h.
References globalNumber.
Referenced by oofem::LoadBalancer::unpackMigratingData(), and oofem::Subdivision::unpackRemoteElements().
| void oofem::DofManager::setLoadArray | ( | IntArray & | load | ) |
Sets the array of applied loadings of the receiver
| load | Array with indices to the applied loads. |
Definition at line 99 of file dofmanager.C.
References loadArray.
| void oofem::DofManager::setNumberOfDofs | ( | int | _ndofs | ) |
Sets number of dofs of the receiver; Deallocates existing DOFs; Resizes the dofArray accordingly
Definition at line 294 of file dofmanager.C.
References dofArray.
Referenced by oofem::Domain::createDofs().
|
inline |
Sets parallel mode of receiver
Definition at line 528 of file dofmanager.h.
References parallel_mode.
Referenced by oofem::LoadBalancer::deleteRemoteDofManagers(), oofem::LoadBalancer::unpackMigratingData(), and oofem::Subdivision::unpackRemoteElements().
|
inline |
Sets receiver's partition list.
Definition at line 535 of file dofmanager.h.
References partitions.
Referenced by oofem::LoadBalancer::deleteRemoteDofManagers(), and oofem::LoadBalancer::unpackMigratingData().
|
overridevirtual |
Local renumbering support. For some tasks (parallel load balancing, for example) it is necessary to renumber the entities. The various FEM components (such as nodes or elements) typically contain links to other entities in terms of their local numbers, etc. This service allows to update these relations to reflect updated numbering. The renumbering function is passed, which is supposed to return an updated number of specified entity type based on old number.
Reimplemented from oofem::FEMComponent.
Reimplemented in oofem::GeneralSlaveNode, oofem::RigidArmNode, and oofem::SlaveNode.
Definition at line 909 of file dofmanager.C.
References dofMastermap, oofem::ERS_DofManager, and oofem::Dof::updateLocalNumbering().
Referenced by oofem::GeneralSlaveNode::updateLocalNumbering(), and oofem::RigidArmNode::updateLocalNumbering().
|
virtual |
Updates receiver after equilibrium in time step has been reached.
| tStep | Active time step. |
Reimplemented in oofem::InteractionPFEMParticle, oofem::Node, and oofem::PFEMParticle.
Definition at line 531 of file dofmanager.C.
References oofem::Dof::updateYourself().
|
protected |
Array storing nodal coordinates.
Definition at line 103 of file dofmanager.h.
Referenced by oofem::LatticeNeumannCouplingNode::computeLoadCouplingContribution(), oofem::LatticeDirichletCouplingNode::computeUnknownCouplingContribution(), oofem::Node::giveInputRecord(), oofem::Node::giveUpdatedCoordinates(), oofem::Node::initializeFrom(), oofem::HangingNode::postInitialize(), oofem::qcNode::postInitializeAsHangingNode(), oofem::Node::restoreContext(), oofem::Node::saveContext(), oofem::Node::setCoordinates(), and oofem::Node::updateYourself().
|
protected |
Array of DOFs.
Definition at line 106 of file dofmanager.h.
Referenced by appendDof(), begin(), begin(), DofManager(), end(), end(), giveNumberOfDofs(), oofem::LatticeDirichletCouplingNode::giveUnknownVector(), oofem::LatticeDirichletCouplingNode::printYourself(), oofem::LatticeNeumannCouplingNode::printYourself(), removeDof(), restoreContext(), setNumberOfDofs(), and ~DofManager().
|
protected |
Map from DofIDItem to bc (to be removed).
Definition at line 138 of file dofmanager.h.
Referenced by DofManager(), giveBcMap(), and initializeFinish().
|
protected |
Map from DofIDItem to ic (to be removed).
Definition at line 140 of file dofmanager.h.
Referenced by DofManager(), giveIcMap(), and initializeFinish().
|
protected |
List of additional dof ids to include.
Definition at line 132 of file dofmanager.h.
Referenced by oofem::RigidArmNode::computeMasterContribution(), giveForcedDofIDs(), giveInputRecord(), initializeFinish(), and initializeFrom().
|
protected |
Map from DofIDItem to master node.
Definition at line 136 of file dofmanager.h.
Referenced by DofManager(), giveInputRecord(), giveMasterMap(), initializeFinish(), and updateLocalNumbering().
|
protected |
Map from DofIDItem to dofType.
Definition at line 134 of file dofmanager.h.
Referenced by DofManager(), giveDofTypeMap(), giveInputRecord(), initializeFinish(), and oofem::qcNode::setAsHanging().
|
protected |
In parallel mode, globalNumber contains globally unique DoFManager number. The component number, inherited from FEMComponent class contains local domain number.
Definition at line 121 of file dofmanager.h.
Referenced by DofManager(), giveGlobalNumber(), giveLabel(), restoreContext(), saveContext(), and setGlobalNumber().
|
protected |
Flag indicating whether receiver has slave DOFs.
Definition at line 115 of file dofmanager.h.
Referenced by DofManager(), giveCompleteLocationArray(), giveCompleteMasterDofIDArray(), giveLocationArray(), giveMasterDofIDArray(), giveNumberOfPrimaryMasterDofs(), postInitialize(), oofem::Node::requiresTransformation(), restoreContext(), and saveContext().
|
static |
Definition at line 148 of file dofmanager.h.
Referenced by giveInputRecord(), initializeFinish(), initializeFrom(), oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem1D(), oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem2D(), and oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem3D().
|
static |
Definition at line 152 of file dofmanager.h.
Referenced by giveInputRecord(), and initializeFrom().
|
static |
Definition at line 146 of file dofmanager.h.
Referenced by giveInputRecord(), initializeFinish(), initializeFrom(), oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem1D(), oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem2D(), and oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem3D().
|
static |
Definition at line 151 of file dofmanager.h.
Referenced by giveInputRecord(), initializeFinish(), oofem::GeneralSlaveNode::initializeFinish(), initializeFrom(), and oofem::GeneralSlaveNode::initializeFrom().
|
static |
Definition at line 153 of file dofmanager.h.
|
static |
Definition at line 149 of file dofmanager.h.
Referenced by initializeFinish(), and initializeFrom().
|
static |
Definition at line 147 of file dofmanager.h.
Referenced by initializeFrom(), and oofem::HuertaErrorEstimatorInterface::setupRefinedElementProblem1D().
|
static |
Definition at line 150 of file dofmanager.h.
Referenced by giveInputRecord(), initializeFinish(), initializeFrom(), and oofem::RigidArmNode::postInitialize().
|
static |
Definition at line 157 of file dofmanager.h.
Referenced by giveInputRecord(), and initializeFrom().
|
static |
Definition at line 154 of file dofmanager.h.
Referenced by giveInputRecord(), and initializeFrom().
|
static |
Definition at line 156 of file dofmanager.h.
Referenced by giveInputRecord(), and initializeFrom().
|
static |
Definition at line 155 of file dofmanager.h.
Referenced by giveInputRecord(), and initializeFrom().
|
protected |
Indicates if dofManager is boundary (true boundary or on boundary between regions) or interior. This information is required by some recovery techniques.
Definition at line 113 of file dofmanager.h.
Referenced by DofManager(), giveInputRecord(), initializeFrom(), isBoundary(), restoreContext(), and saveContext().
|
protected |
List of applied loads.
Definition at line 108 of file dofmanager.h.
Referenced by oofem::LatticeNeumannCouplingNode::computeLoadVectorAt(), DofManager(), giveLoadArray(), initializeFrom(), printYourself(), oofem::ElementDofManager::printYourself(), oofem::ElementSide::printYourself(), oofem::LatticeDirichletCouplingNode::printYourself(), oofem::LatticeNeumannCouplingNode::printYourself(), oofem::Node::printYourself(), restoreContext(), saveContext(), and setLoadArray().
|
protected |
Definition at line 143 of file dofmanager.h.
Referenced by initializeFinish(), and initializeFrom().
|
protected |
Definition at line 123 of file dofmanager.h.
Referenced by oofem::HangingNode::checkConsistency(), oofem::qcNode::checkConsistency(), DofManager(), giveInputRecord(), giveParallelMode(), initializeFrom(), isLocal(), isNull(), isShared(), oofem::RigidArmNode::postInitialize(), restoreContext(), saveContext(), and setParallelMode().
|
protected |
List of partition sharing the shared dof manager or remote partition containing remote dofmanager counterpart.
Definition at line 129 of file dofmanager.h.
Referenced by DofManager(), giveInputRecord(), givePartitionList(), givePartitionsConnectivitySize(), initializeFrom(), isLocal(), mergePartitionList(), removePartitionFromList(), restoreContext(), saveContext(), and setPartitionList().