OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Class implementing hanging node connected to other nodes (masters) using interpolation. More...
#include <qcnode.h>
Public Member Functions | |
qcNode (int n, Domain *aDomain) | |
Constructor. More... | |
virtual | ~qcNode (void) |
Destructor. More... | |
virtual IRResultType | initializeFrom (InputRecord *ir) |
Initializes receiver according to object description stored in input record. More... | |
virtual void | postInitialize () |
Performs post-initialization such like checking if there are any slave dofs etc. More... | |
virtual void | postInitializeAsHangingNode () |
virtual int | checkConsistency () |
Allows programmer to test some internal data, before computation begins. More... | |
virtual bool | isDofTypeCompatible (dofType type) const |
Returns true if dof of given type is allowed to be associated to receiver. More... | |
virtual bool | initializeAsRepnode () |
virtual void | setAsRepnode () |
virtual void | setAsHanging () |
virtual int | giveQcNodeType () |
virtual int | giveMasterElementNumber () |
void | printOutputAt (FILE *stream, TimeStep *tStep) |
Prints output of receiver to stream, for given time step. More... | |
virtual const char * | giveClassName () const |
virtual const char * | giveInputRecordName () const |
Public Member Functions inherited from oofem::Node | |
Node (int n, Domain *aDomain) | |
Constructor. More... | |
virtual | ~Node () |
Destructor. More... | |
virtual bool | hasCoordinates () |
virtual double | giveCoordinate (int i) |
virtual FloatArray * | giveCoordinates () |
const FloatArray & | giveNodeCoordinates () const |
As giveCoordinates, but non-virtual and therefore faster (because it can be inlined). More... | |
void | setCoordinates (FloatArray coords) |
Sets node coordinates to given array. More... | |
virtual double | giveUpdatedCoordinate (int ic, TimeStep *tStep, double scale=1.) |
Returns updated ic-th coordinate of receiver. More... | |
virtual void | giveUpdatedCoordinates (FloatArray &answer, TimeStep *tStep, double scale=1.) |
Returns updated coordinate of receiver. More... | |
bool | hasLocalCS () |
Returns nonzero if node has prescribed local coordinate system. More... | |
FloatMatrix * | giveLocalCoordinateTriplet () |
Returns pointer to local coordinate triplet in node. More... | |
bool | hasSameLCS (Node *remote) |
Returns true, if the local coordinate systems of receiver and given node are the same. More... | |
virtual bool | computeL2GTransformation (FloatMatrix &answer, const IntArray &dofIDArry) |
Computes transformation matrix from global c.s. More... | |
virtual bool | requiresTransformation () |
Indicates, whether dofManager requires the transformation. More... | |
virtual void | computeLoadVector (FloatArray &answer, Load *load, CharType type, TimeStep *tStep, ValueModeType mode) |
Computes the load vector for given load. More... | |
virtual void | updateYourself (TimeStep *tStep) |
Updates receiver at end of time step (i.e. More... | |
virtual void | giveInputRecord (DynamicInputRecord &input) |
Setups the input record string of receiver. More... | |
virtual void | printYourself () |
Prints receiver state on stdout. Useful for debugging. More... | |
virtual contextIOResultType | saveContext (DataStream &stream, ContextMode mode, void *obj=NULL) |
Stores receiver state to output stream. More... | |
virtual contextIOResultType | restoreContext (DataStream &stream, ContextMode mode, void *obj=NULL) |
Restores the receiver state previously written in stream. More... | |
virtual void | drawYourself (oofegGraphicContext &gc, TimeStep *tStep) |
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) | |
Constructor. More... | |
virtual | ~DofManager () |
Destructor. More... | |
bool | isBoundary () |
void | setBoundaryFlag (bool isBoundary) |
Sets the boundary flag. More... | |
virtual bool | hasAnySlaveDofs () |
virtual bool | giveMasterDofMans (IntArray &masters) |
Returns true if the receiver is linked (its slave DOFs depend on master values) to some other dof managers. More... | |
virtual void | updateLocalNumbering (EntityRenumberingFunctor &f) |
Local renumbering support. More... | |
void | appendDof (Dof *dof) |
Adds the given Dof into the receiver. More... | |
void | removeDof (DofIDItem id) |
Removes Dof with given id from dofArray. More... | |
bool | hasDofID (DofIDItem id) const |
Checks if receiver contains dof with given ID. More... | |
int | giveGlobalNumber () const |
int | giveLabel () const |
void | setGlobalNumber (int newNumber) |
Sets receiver global number. More... | |
dofManagerParallelMode | giveParallelMode () const |
Return dofManagerParallelMode of receiver. More... | |
void | setParallelMode (dofManagerParallelMode _mode) |
Sets parallel mode of receiver. More... | |
const IntArray * | givePartitionList () |
Returns partition list of receiver. More... | |
void | setPartitionList (const IntArray *_p) |
Sets receiver's partition list. More... | |
void | removePartitionFromList (int _part) |
Removes given partition from receiver list. More... | |
void | mergePartitionList (IntArray &_p) |
Merges receiver partition list with given lists. More... | |
int | givePartitionsConnectivitySize () |
Returns number of partitions sharing given receiver (=number of shared partitions + local one). More... | |
bool | isLocal () |
Returns true if receiver is locally maintained. More... | |
bool | isShared () |
Returns true if receiver is shared. More... | |
bool | isNull () |
Returns true if receiver is shared. More... | |
Dof * | giveDofWithID (int dofID) const |
Returns DOF with given dofID; issues error if not present. More... | |
int | giveNumberOfDofs () const |
void | askNewEquationNumbers (TimeStep *tStep) |
Renumbers all contained DOFs. More... | |
int | giveNumberOfPrimaryMasterDofs (const IntArray &dofIDArray) const |
Returns the number of primary dofs on which receiver dofs (given in dofArray) depend on. More... | |
void | 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. More... | |
void | giveMasterDofIDArray (const IntArray &dofIDArry, IntArray &masterDofIDs) const |
Returns master dof ID array of receiver. More... | |
void | giveCompleteLocationArray (IntArray &locationArray, const UnknownNumberingScheme &s) const |
Returns full location array of receiver containing equation numbers of all dofs of receiver. More... | |
void | giveCompleteMasterDofIDArray (IntArray &dofIDArray) const |
Returns the full dof ID array of receiver. More... | |
std::vector< Dof * >::const_iterator | findDofWithDofId (DofIDItem dofID) const |
Finds index of DOF with required physical meaning of receiver. More... | |
void | 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. More... | |
void | 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. More... | |
void | giveCompleteUnknownVector (FloatArray &answer, ValueModeType mode, TimeStep *tStep) |
Assembles the complete unknown vector in node. More... | |
void | giveUnknownVectorOfType (FloatArray &answer, UnknownType ut, ValueModeType mode, TimeStep *tStep) |
Constructs the requested vector by assembling e.g. More... | |
void | givePrescribedUnknownVector (FloatArray &answer, const IntArray &dofMask, ValueModeType mode, TimeStep *tStep) |
Assembles the vector of prescribed unknowns in nodal c.s for given dofs of receiver. More... | |
bool | computeM2GTransformation (FloatMatrix &answer, const IntArray &dofIDArry) |
Computes receiver transformation matrix from global CS to dofManager specific coordinate system; . More... | |
virtual bool | computeM2LTransformation (FloatMatrix &answer, const IntArray &dofIDArry) |
Computes transformation matrix from local DOFs to master DOFs; . More... | |
IntArray * | giveLoadArray () |
Returns the array containing applied loadings of the receiver. More... | |
void | setLoadArray (IntArray &load) |
Sets the array of applied loadings of the receiver. More... | |
const IntArray * | giveForcedDofIDs () |
Returns list of specific dofs that should be included in node. More... | |
std::map< int, int > * | giveDofTypeMap () |
Returns map from DofIDItem to dofType. More... | |
std::map< int, int > * | giveMasterMap () |
Returns map from DofIDItem to dofType. More... | |
std::map< int, int > * | giveBcMap () |
Returns map from DofIDItem to dofType. More... | |
std::map< int, int > * | giveIcMap () |
Returns map from DofIDItem to initial condition. More... | |
void | setNumberOfDofs (int _ndofs) |
Sets number of dofs of the receiver; Deallocates existing DOFs; Resizes the dofArray accordingly. More... | |
Public Member Functions inherited from oofem::FEMComponent | |
FEMComponent (int n, Domain *d) | |
Regular constructor, creates component with given number and belonging to given domain. More... | |
virtual | ~FEMComponent () |
Virtual destructor. More... | |
Domain * | giveDomain () const |
virtual void | setDomain (Domain *d) |
Sets associated Domain. More... | |
int | giveNumber () const |
void | setNumber (int num) |
Sets number of receiver. More... | |
virtual Interface * | giveInterface (InterfaceType t) |
Interface requesting service. More... | |
std::string | errorInfo (const char *func) const |
Returns string for prepending output (used by error reporting macros). More... | |
Protected Attributes | |
int | masterElement |
Number of the master element. More... | |
int | masterRegion |
Region of the master element (used for automatic detection). More... | |
int | qcNodeTypeLabel |
Type of qcNode (0 deactive, 1 master, 2 hanging) More... | |
bool | initialized |
Flag whether node is fully initialized already. More... | |
Protected Attributes inherited from oofem::Node | |
FloatArray | coordinates |
Array storing nodal coordinates. More... | |
FloatMatrix * | localCoordinateSystem |
Triplet defining the local coordinate system in node. More... | |
Protected Attributes inherited from oofem::DofManager | |
std::vector< Dof * > | dofArray |
Array of DOFs. More... | |
IntArray | loadArray |
List of applied loads. More... | |
bool | isBoundaryFlag |
Indicates if dofManager is boundary (true boundary or on boundary between regions) or interior. More... | |
bool | hasSlaveDofs |
Flag indicating whether receiver has slave DOFs. More... | |
int | globalNumber |
In parallel mode, globalNumber contains globally unique DoFManager number. More... | |
dofManagerParallelMode | parallel_mode |
IntArray | partitions |
List of partition sharing the shared dof manager or remote partition containing remote dofmanager counterpart. More... | |
IntArray * | dofidmask |
List of additional dof ids to include. More... | |
std::map< int, int > * | dofTypemap |
Map from DofIDItem to dofType. More... | |
std::map< int, int > * | dofMastermap |
Map from DofIDItem to master node. More... | |
std::map< int, int > * | dofBCmap |
Map from DofIDItem to bc (to be removed). More... | |
std::map< int, int > * | dofICmap |
Map from DofIDItem to ic (to be removed). More... | |
IntArray | mBC |
Protected Attributes inherited from oofem::FEMComponent | |
int | number |
Component number. More... | |
Domain * | domain |
Link to domain object, useful for communicating with other FEM components. More... | |
Class implementing hanging node connected to other nodes (masters) using interpolation.
Hanging node possess no degrees of freedom - all values are interpolated from corresponding master dofs.
The introduction of hanging nodes allows, for example, to include reinforcing bar elements inside arbitrary FE-mesh of concrete specimen or facilitates the local refinement of FE-mesh.
The contributions of hanging node are localized directly to master related equations. The hanging node can not have its own boundary or initial conditions, they are determined completely from master dof conditions. The local coordinate system in slave is not supported in current implementation, the global cs applies. On the other hand, hanging node can be loaded independently of master.
If no master element number is supplied (or negative) then it will locate it using the global coordinates. and if no master region number is supplied (or zero), it will look for elements in all regions.
oofem::qcNode::qcNode | ( | int | n, |
Domain * | aDomain | ||
) |
Constructor.
Creates a hanging node with number n, belonging to aDomain.
Definition at line 54 of file qcnode.C.
References initialized.
|
inlinevirtual |
|
virtual |
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::Node.
Definition at line 92 of file qcnode.C.
References oofem::Node::checkConsistency(), oofem::DofManager_local, oofem::FEMComponent::domain, oofem::Domain::giveElement(), oofem::Element::giveNode(), oofem::Element::giveNumberOfNodes(), oofem::DofManager::giveParallelMode(), oofem::Node::hasSameLCS(), masterElement, OOFEM_WARNING, oofem::DofManager::parallel_mode, and qcNodeTypeLabel.
|
inlinevirtual |
Reimplemented from oofem::Node.
Definition at line 104 of file qcnode.h.
Referenced by printOutputAt().
|
inlinevirtual |
Reimplemented from oofem::Node.
Definition at line 105 of file qcnode.h.
References _IFT_qcNode_Name.
|
inlinevirtual |
Definition at line 99 of file qcnode.h.
Referenced by oofem::Quasicontinuum::applyApproach2(), oofem::Quasicontinuum::applyApproach3(), oofem::Quasicontinuum::computeIntersectionsOfLinkWith2DTringleElements(), oofem::Quasicontinuum::computeIntersectionsOfLinkWith3DTetrahedraElements(), printOutputAt(), and oofem::Quasicontinuum::stiffnessAssignment().
|
inlinevirtual |
Reimplemented from oofem::Node.
Definition at line 98 of file qcnode.h.
Referenced by printOutputAt(), and oofem::QClinearStatic::transformMeshToParticles().
|
virtual |
Definition at line 208 of file qcnode.C.
References oofem::FEMComponent::giveDomain(), oofem::Domain::giveEngngModel(), oofem::QClinearStatic::nodeInFullSolvedDomainTest(), and OOFEM_ERROR.
Referenced by initializeFrom().
|
virtual |
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.
ir | Input record to initialize from. |
Reimplemented from oofem::Node.
Definition at line 61 of file qcnode.C.
References _IFT_qcNode_masterElement, _IFT_qcNode_masterRegion, oofem::FEMComponent::giveDomain(), oofem::Domain::giveEngngModel(), oofem::QClinearStatic::giveQcApproachNumber(), initializeAsRepnode(), oofem::Node::initializeFrom(), IR_GIVE_OPTIONAL_FIELD, oofem::IRRT_OK, masterElement, masterRegion, OOFEM_ERROR, setAsHanging(), and setAsRepnode().
|
inlinevirtual |
Returns true if dof of given type is allowed to be associated to receiver.
Reimplemented from oofem::Node.
|
virtual |
Performs post-initialization such like checking if there are any slave dofs etc.
Reimplemented from oofem::DofManager.
Definition at line 124 of file qcnode.C.
References oofem::DofManager::postInitialize(), postInitializeAsHangingNode(), and qcNodeTypeLabel.
|
virtual |
Definition at line 132 of file qcnode.C.
References oofem::IntArray::clear(), oofem::Node::coordinates, oofem::FEMComponent::domain, oofem::FEInterpolation::evalN(), oofem::IntArray::followedBy(), oofem::Dof::giveDofID(), oofem::Element::giveDofManArray(), oofem::FEMComponent::giveDomain(), oofem::SpatialLocalizer::giveElementClosestToPoint(), oofem::Element::giveInterpolation(), oofem::FEMComponent::giveNumber(), oofem::FloatMatrix::giveNumberOfColumns(), oofem::FloatArray::giveSize(), oofem::Domain::giveSpatialLocalizer(), oofem::FEInterpolation::global2local(), oofem::SpatialLocalizer::init(), oofem::SlaveDof::initialize(), initialized, masterElement, and OOFEM_ERROR.
Referenced by postInitialize().
|
virtual |
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::DofManager.
Definition at line 275 of file qcnode.C.
References giveClassName(), oofem::FEMComponent::giveDomain(), oofem::Domain::giveEngngModel(), oofem::DofManager::giveGlobalNumber(), oofem::DofManager::giveLabel(), giveMasterElementNumber(), oofem::FEMComponent::giveNumber(), giveQcNodeType(), OOFEM_WARNING, and oofem::EngngModel::printDofOutputAt().
|
virtual |
Definition at line 249 of file qcnode.C.
References oofem::DofManager::dofTypemap, oofem::Domain::giveDefaultNodeDofIDArry(), oofem::DofManager::giveDofTypeMap(), oofem::FEMComponent::giveDomain(), oofem::IntArray::giveSize(), and qcNodeTypeLabel.
Referenced by initializeFrom(), oofem::QClinearStatic::setQCNodeType(), and oofem::QClinearStatic::updateNodeTypes().
|
virtual |
Definition at line 241 of file qcnode.C.
References oofem::DofManager::giveDofTypeMap(), and qcNodeTypeLabel.
Referenced by initializeFrom(), oofem::QClinearStatic::setRepNodesInVerticesOfInterpolationMesh(), oofem::QClinearStatic::transformMeshToParticles(), and oofem::QClinearStatic::updateNodeTypes().
|
protected |
Flag whether node is fully initialized already.
Definition at line 75 of file qcnode.h.
Referenced by postInitializeAsHangingNode(), and qcNode().
|
protected |
Number of the master element.
Definition at line 68 of file qcnode.h.
Referenced by checkConsistency(), initializeFrom(), and postInitializeAsHangingNode().
|
protected |
Region of the master element (used for automatic detection).
Definition at line 70 of file qcnode.h.
Referenced by initializeFrom().
|
protected |
Type of qcNode (0 deactive, 1 master, 2 hanging)
Definition at line 72 of file qcnode.h.
Referenced by checkConsistency(), postInitialize(), setAsHanging(), and setAsRepnode().