|
OOFEM 3.0
|
#include <set.h>
Public Member Functions | |
| Set (int n, Domain *d) | |
| virtual | ~Set () |
| void | initializeFrom (InputRecord &ir) override |
| void | giveInputRecord (DynamicInputRecord &input) override |
| const IntArray & | giveElementList () |
| const IntArray & | giveBoundaryList () |
| const IntArray & | giveEdgeList () |
| const IntArray & | giveSurfaceList () |
| const IntArray & | giveInternalElementDofManagerList () |
| const IntArray & | giveNodeList () |
| const IntArray & | giveSpecifiedNodeList () |
| void | setElementList (IntArray newElements) |
| void | setBoundaryList (IntArray newBoundaries) |
| void | setEdgeList (IntArray newEdges) |
| void | setNodeList (IntArray newNodes) |
| void | clear () |
| void | addAllElements () |
| bool | hasElement (int elem) const |
| Return True if given element is contained. | |
| std::string | giveElementProperties () const |
| std::string | giveDofManProperties () const |
| void | updateLocalNumbering (EntityRenumberingFunctor &f) override |
| void | updateLocalNodeNumbering (EntityRenumberingFunctor &f) |
| void | updateLocalElementNumbering (EntityRenumberingFunctor &f) |
| void | saveContext (DataStream &stream, ContextMode mode) override |
| void | restoreContext (DataStream &stream, ContextMode mode) override |
| 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 void | initializeFrom (InputRecord &ir, int priority) |
| virtual void | initializeFinish () |
| virtual void | postInitialize () |
| Performs post initialization steps. Called after all components are created and initialized. | |
| virtual int | checkConsistency () |
| virtual void | printOutputAt (FILE *file, TimeStep *tStep) |
| virtual void | printYourself () |
| Prints receiver state on stdout. Useful for debugging. | |
| virtual Interface * | giveInterface (InterfaceType t) |
| std::string | errorInfo (const char *func) const |
| Returns string for prepending output (used by error reporting macros). | |
Protected Member Functions | |
| void | computeIntArray (IntArray &answer, const IntArray &specified, std ::list< Range >ranges) |
Protected Attributes | |
| IntArray | elements |
| Element numbers. | |
| bool | mElementListIsSorted |
| IntArray | mElementsSorted |
| IntArray | elementBoundaries |
| IntArray | elementEdges |
| Element numbers + boundary numbers (interleaved). | |
| IntArray | elementSurfaces |
| Element numbers + edge numbers (interleaved). | |
| IntArray | elementInternalNodes |
| Element numbers + surface numbers (interleaved). | |
| IntArray | nodes |
| Element numbers + internal dof manager numbers (interleaved). | |
| IntArray | totalNodes |
| Unique set of nodes (computed). | |
| std::string | elementprops |
| Element properties. | |
| std::string | dofmanprops |
| Dof manager properties. | |
| bool | nodalListInitialized = false |
| Protected Attributes inherited from oofem::FEMComponent | |
| int | number |
| Component number. | |
| Domain * | domain |
| Link to domain object, useful for communicating with other FEM components. | |
Set of elements, boundaries, edges and/or nodes. Describes a collection of components which are given easy access to for example boundary conditions.
| oofem::Set::Set | ( | int | n, |
| Domain * | d ) |
Creates a empty set with given number and belonging to given domain.
Definition at line 52 of file set.C.
References elementprops, oofem::FEMComponent::FEMComponent(), and mElementListIsSorted.
| void oofem::Set::addAllElements | ( | ) |
Initialize the element set to contain all elements in the receiver domain
Definition at line 239 of file set.C.
References elements, oofem::FEMComponent::giveDomain(), and mElementListIsSorted.
Referenced by oofem::ZZErrorEstimator::estimateError(), oofem::InternalVariableField::evaluateAt(), oofem::VTKExportModule::exportIntVarAs(), and oofem::VTKExportModule::getDofManPrimaryVariable().
| void oofem::Set::clear | ( | ) |
Clears the entire set.
Definition at line 255 of file set.C.
References elementBoundaries, elementEdges, elementInternalNodes, elements, nodes, and totalNodes.
Referenced by oofem::DGProblem::constructBoundaryEntities().
|
protected |
Converts list ranges to list of individual values + individually specified values.
Definition at line 133 of file set.C.
References oofem::IntArray::at(), oofem::IntArray::findNonzeros(), oofem::IntArray::giveSize(), oofem::IntArray::maximum(), and oofem::IntArray::zero().
Referenced by initializeFrom().
| const IntArray & oofem::Set::giveBoundaryList | ( | ) |
Returns list of element boundaries within set. Boundaries are either surfaces (3d), edges (2d), or corners (1d).
Definition at line 160 of file set.C.
References elementBoundaries.
Referenced by oofem::EngngModel::assemble(), oofem::TransverseReinfConstraint::assemble(), oofem::PrescribedDispSlipBCNeumannRC::assembleOnReinfStress(), oofem::PrescribedGradientBCNeumann::assembleVector(), oofem::TransportGradientNeumann::assembleVector(), oofem::TransverseReinfConstraint::assembleVector(), oofem::EngngModel::assembleVectorFromBC(), oofem::PrescribedDispSlipBCNeumannRC::assembleVectorRStress(), oofem::PrescribedDispSlipBCNeumannRC::assembleVectorStress(), oofem::SolutionbasedShapeFunction::computeCorrectionFactors(), oofem::TransportGradientNeumann::computeEta(), oofem::TransportGradientDirichlet::computeXi(), oofem::DGProblem::constructBoundaryEntities(), oofem::PrescribedDispSlipHomogenization::domainSize(), oofem::PrescribedGradientHomogenization::domainSize(), oofem::PrescribedGradientBCWeak::findCrackBndIntersecCoord(), oofem::PrescribedGradientBCWeak::findHoleCoord(), oofem::PrescribedGradientBCWeak::giveBoundaries(), giveInputRecord(), oofem::PrescribedDispSlipBCNeumannRC::giveLocationArrays(), oofem::TransverseReinfConstraint::giveLocationArrays(), oofem::BCTracker::initialize(), and oofem::SolutionbasedShapeFunction::initializeSurfaceData().
|
inlineoverridevirtual |
Implements oofem::FEMComponent.
|
inline |
Definition at line 182 of file set.h.
Referenced by oofem::Domain::initializeFinish().
| const IntArray & oofem::Set::giveEdgeList | ( | ) |
Returns list of element edges within set (must be edges of 3D elements).
Definition at line 162 of file set.C.
References elementEdges.
Referenced by oofem::EngngModel::assemble(), oofem::EngngModel::assembleVectorFromBC(), giveInputRecord(), and oofem::BCTracker::initialize().
| const IntArray & oofem::Set::giveElementList | ( | ) |
Returns list of elements within set.
Definition at line 158 of file set.C.
References elements.
Referenced by oofem::EngngModel::assemble(), oofem::TransverseReinfConstraint::assemble(), oofem::Integral::assemble_lhs(), oofem::Integral::assemble_rhs(), oofem::PrescribedDispSlipBCNeumannRC::assembleOnReinfStress(), oofem::PrescribedDispSlipBCNeumannRC::assembleOnTransferStress(), oofem::TransverseReinfConstraint::assembleVector(), oofem::PrescribedDispSlipBCNeumannRC::assembleVectorBStress(), oofem::EngngModel::assembleVectorFromBC(), oofem::PrescribedDispSlipBCNeumannRC::assembleVectorRStress(), oofem::PrescribedDispSlipBCNeumannRC::computeInterfaceLength(), oofem::PrescribedDispSlipBCNeumannRC::computeWeightMatrix(), oofem::SPRNodalRecoveryModel::determinePatchAssemblyPoints(), oofem::SPRNodalRecoveryModel::determinePatchType(), oofem::MatlabExportModule::doOutputIntegrationPointFields(), oofem::VTKBaseExportModule::exportCellVars(), oofem::VTKBaseExportModule::exportSetMembership(), giveInputRecord(), oofem::PrescribedDispSlipBCNeumannRC::giveLocationArrays(), oofem::TransverseReinfConstraint::giveLocationArrays(), oofem::BCTracker::initialize(), oofem::Integral::initialize(), oofem::Domain::initializeFinish(), oofem::XfemManager::initiateFronts(), oofem::SPRNodalRecoveryModel::initPatch(), oofem::NodalRecoveryModel::initRegionNodeNumbering(), oofem::QuasicontinuumVTKXMLExportModule::initRegionNodeNumbering(), oofem::VTKBaseExportModule::initRegionNodeNumbering(), oofem::VTKXMLLatticeExportModule::initRegionNodeNumbering(), oofem::VTKXMLPeriodicExportModule::initRegionNodeNumbering(), oofem::EngngModel::outputElements(), oofem::Delamination::propagateFronts(), oofem::PLCZdamageRadius::propagateInterface(), oofem::NodalAveragingRecoveryModel::recoverValues(), oofem::ZZNodalRecoveryModel::recoverValues(), oofem::QuasicontinuumVTKXMLExportModule::setupVTKPiece(), oofem::VTKBaseExportModule::setupVTKPiece(), oofem::VTKXMLLatticeExportModule::setupVTKPiece(), oofem::VTKXMLPeriodicExportModule::setupVTKPiece(), and oofem::VTKXMLLatticeExportModule::setupVTKPieceCross().
|
inline |
Definition at line 181 of file set.h.
Referenced by oofem::Domain::initializeFinish().
|
overridevirtual |
Setups the input record string of receiver.
| input | Dynamic input record to be filled by receiver. |
Reimplemented from oofem::FEMComponent.
Definition at line 105 of file set.C.
References _IFT_Set_elementBoundaries, _IFT_Set_elementEdges, _IFT_Set_elementprops, _IFT_Set_elements, _IFT_Set_elementSurfaces, _IFT_Set_internalElementNodes, _IFT_Set_Name, _IFT_Set_nodes, elementBoundaries, elementEdges, elementInternalNodes, elementprops, elements, elementSurfaces, giveBoundaryList(), giveEdgeList(), giveElementList(), giveInternalElementDofManagerList(), giveNodeList(), oofem::FEMComponent::giveNumber(), giveSurfaceList(), nodes, oofem::DynamicInputRecord::setField(), and oofem::DynamicInputRecord::setRecordKeywordField().
|
inlineoverridevirtual |
Implements oofem::FEMComponent.
Definition at line 199 of file set.h.
References _IFT_Set_Name.
| const IntArray & oofem::Set::giveInternalElementDofManagerList | ( | ) |
Returns list of internal element dof managers within set
Definition at line 166 of file set.C.
References elementInternalNodes.
Referenced by oofem::Domain::createDofs(), and giveInputRecord().
| const IntArray & oofem::Set::giveNodeList | ( | ) |
Returns list of all nodes within set. This list is computed automatically, based on all elements, boundaries, edges, and specified nodes within the set.
Definition at line 168 of file set.C.
References oofem::IntArray::at(), oofem::FEMComponent::domain, elementBoundaries, elementEdges, elements, elementSurfaces, nodalListInitialized, nodes, totalNodes, and oofem::IntArray::zero().
Referenced by oofem::PrimaryField::applyBoundaryCondition(), oofem::PrimaryField::applyInitialCondition(), oofem::EngngModel::assembleVectorFromBC(), oofem::TransportGradientDirichlet::computeXi(), oofem::Domain::createDofs(), oofem::MatlabExportModule::doOutputData(), oofem::MatlabExportModule::doOutputReactionForces(), oofem::VTKBaseExportModule::exportSetMembership(), oofem::PrescribedDispSlipBCDirichletRC::give(), giveInputRecord(), oofem::Domain::initializeFinish(), oofem::EngngModel::outputNodes(), oofem::DGProblem::postInitialize(), oofem::IncrementalLinearStatic::solveYourselfAt(), and oofem::PrescribedDispSlipBCDirichletRC::updateCoefficientMatrix().
| const IntArray & oofem::Set::giveSpecifiedNodeList | ( | ) |
Returns list of all directly specified nodes (excluding those generated from elements). This list is exactly the list given in the input.
Definition at line 229 of file set.C.
References nodes.
Referenced by oofem::VTKBaseExportModule::exportSetMembership().
| const IntArray & oofem::Set::giveSurfaceList | ( | ) |
Returns list of element surfaces within set
Definition at line 164 of file set.C.
References elementSurfaces.
Referenced by giveInputRecord().
| bool oofem::Set::hasElement | ( | int | elem | ) | const |
Return True if given element is contained.
Definition at line 245 of file set.C.
References elements, mElementListIsSorted, mElementsSorted, and oofem::FEMComponent::number.
Referenced by oofem::MMALeastSquareProjection::__init(), oofem::SPRNodalRecoveryModel::determinePatchAssemblyPoints(), oofem::VTKBaseExportModule::exportSetMembership(), oofem::OctreeSpatialLocalizer::giveClosestIP(), oofem::OctreeSpatialLocalizer::giveClosestIPWithinOctant(), oofem::OctreeSpatialLocalizer::giveElementContainingPoint(), oofem::Field::hasElementInSets(), and oofem::SPRNodalRecoveryModel::initPatch().
|
overridevirtual |
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.
Definition at line 58 of file set.C.
References _IFT_Set_allElements, _IFT_Set_allNodes, _IFT_Set_dofmanprops, _IFT_Set_elementBoundaries, _IFT_Set_elementEdges, _IFT_Set_elementprops, _IFT_Set_elementRanges, _IFT_Set_elements, _IFT_Set_elementSurfaces, _IFT_Set_internalElementNodes, _IFT_Set_nodeRanges, _IFT_Set_nodes, oofem::InputRecord::clone(), computeIntArray(), dofmanprops, elementBoundaries, elementEdges, elementInternalNodes, elementprops, elements, elementSurfaces, oofem::FEMComponent::giveDomain(), oofem::InputRecord::hasField(), IR_GIVE_OPTIONAL_FIELD, mElementListIsSorted, and nodes.
|
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.
Definition at line 364 of file set.C.
References oofem::CIO_OK, CM_Definition, elementBoundaries, elementEdges, elementInternalNodes, elements, nodes, THROW_CIOERR, and totalNodes.
|
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.
Definition at line 340 of file set.C.
References oofem::CIO_OK, CM_Definition, elementBoundaries, elementEdges, elementInternalNodes, elements, nodes, and THROW_CIOERR.
| void oofem::Set::setBoundaryList | ( | IntArray | newBoundaries | ) |
Sets list of element boundaries within set.
Definition at line 233 of file set.C.
References elementBoundaries.
| void oofem::Set::setEdgeList | ( | IntArray | newEdges | ) |
Sets list of element edges within set (must be edges of 3D elements).
Definition at line 235 of file set.C.
References elementEdges.
Referenced by oofem::TransportGradientDirichlet::computeXi().
| void oofem::Set::setElementList | ( | IntArray | newElements | ) |
Sets list of elements within set.
Definition at line 231 of file set.C.
References elements, and mElementListIsSorted.
Referenced by oofem::DGProblem::constructBoundaryEntities(), and oofem::Element::mapStateVariables().
| void oofem::Set::setNodeList | ( | IntArray | newNodes | ) |
Sets list of nodes within set.
Definition at line 237 of file set.C.
References nodes.
Referenced by oofem::DGProblem::constructBoundaryEntities().
| void oofem::Set::updateLocalElementNumbering | ( | EntityRenumberingFunctor & | f | ) |
Renumbering of nodes (could change due to load balancing).
Definition at line 290 of file set.C.
References elementBoundaries, elementEdges, elementInternalNodes, elements, oofem::ERS_Element, oofem::IntArray::followedBy(), mElementListIsSorted, OOFEM_WARNING, and oofem::IntArray::resize().
Referenced by updateLocalNumbering().
| void oofem::Set::updateLocalNodeNumbering | ( | EntityRenumberingFunctor & | f | ) |
Renumbering of nodes (could change due to load balancing).
Definition at line 271 of file set.C.
References oofem::ERS_DofManager, oofem::IntArray::followedBy(), nodes, and OOFEM_WARNING.
Referenced by updateLocalNumbering().
|
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.
Definition at line 265 of file set.C.
References updateLocalElementNumbering(), and updateLocalNodeNumbering().
|
protected |
|
protected |
Definition at line 87 of file set.h.
Referenced by clear(), giveBoundaryList(), giveInputRecord(), giveNodeList(), initializeFrom(), restoreContext(), saveContext(), setBoundaryList(), and updateLocalElementNumbering().
|
protected |
Element numbers + boundary numbers (interleaved).
Definition at line 88 of file set.h.
Referenced by clear(), giveEdgeList(), giveInputRecord(), giveNodeList(), initializeFrom(), restoreContext(), saveContext(), setEdgeList(), and updateLocalElementNumbering().
|
protected |
Element numbers + surface numbers (interleaved).
Definition at line 90 of file set.h.
Referenced by clear(), giveInputRecord(), giveInternalElementDofManagerList(), initializeFrom(), restoreContext(), saveContext(), and updateLocalElementNumbering().
|
protected |
Element properties.
Definition at line 93 of file set.h.
Referenced by giveInputRecord(), initializeFrom(), and Set().
|
protected |
Element numbers.
Definition at line 84 of file set.h.
Referenced by addAllElements(), clear(), giveElementList(), giveInputRecord(), giveNodeList(), hasElement(), initializeFrom(), restoreContext(), saveContext(), setElementList(), and updateLocalElementNumbering().
|
protected |
Element numbers + edge numbers (interleaved).
Definition at line 89 of file set.h.
Referenced by giveInputRecord(), giveNodeList(), giveSurfaceList(), and initializeFrom().
|
mutableprotected |
Definition at line 85 of file set.h.
Referenced by addAllElements(), hasElement(), initializeFrom(), Set(), setElementList(), and updateLocalElementNumbering().
|
mutableprotected |
Definition at line 86 of file set.h.
Referenced by hasElement().
|
protected |
Definition at line 99 of file set.h.
Referenced by giveNodeList().
|
protected |
Element numbers + internal dof manager numbers (interleaved).
Node numbers.
Definition at line 91 of file set.h.
Referenced by clear(), giveInputRecord(), giveNodeList(), giveSpecifiedNodeList(), initializeFrom(), restoreContext(), saveContext(), setNodeList(), and updateLocalNodeNumbering().
|
protected |
Unique set of nodes (computed).
Definition at line 92 of file set.h.
Referenced by clear(), giveNodeList(), and restoreContext().