OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Class implementing slave node connected to other nodes (masters) using predetermined weights. More...
#include <slavenode.h>
Public Member Functions | |
SlaveNode (int n, Domain *aDomain) | |
Constructor. More... | |
virtual | ~SlaveNode (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 bool | isDofTypeCompatible (dofType type) const |
Returns true if dof of given type is allowed to be associated to receiver. More... | |
virtual void | updateLocalNumbering (EntityRenumberingFunctor &f) |
Local renumbering support. 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 int | checkConsistency () |
Allows programmer to test some internal data, before computation begins. More... | |
virtual int | giveQcNodeType () |
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... | |
virtual void | printOutputAt (FILE *file, TimeStep *tStep) |
Prints output of receiver to stream, for given time step. 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... | |
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 | |
IntArray | masterDofManagers |
Master nodes for all dofs. More... | |
FloatArray | masterWeights |
Common dof weights for each master node. 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 slave node connected to other nodes (masters) using predetermined weights.
Hanging node possess no degrees of freedom - all values are interpolated from corresponding master dofs.
The contributions of hanging node are localized directly to master related equations. The node can not have its own boundary or initial conditions, they are determined completely from master dof conditions except for dofs of master type.
Definition at line 57 of file slavenode.h.
|
inline |
Constructor.
Creates a hanging node with number n, belonging to aDomain.
Definition at line 71 of file slavenode.h.
|
inlinevirtual |
Destructor.
Definition at line 73 of file slavenode.h.
|
inlinevirtual |
Reimplemented from oofem::Node.
Definition at line 80 of file slavenode.h.
|
inlinevirtual |
Reimplemented from oofem::Node.
Definition at line 81 of file slavenode.h.
References _IFT_SlaveNode_Name.
|
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 45 of file slavenode.C.
References _IFT_SlaveNode_masterDofManagers, _IFT_SlaveNode_weights, oofem::FloatArray::add(), oofem::IntArray::giveSize(), oofem::FloatArray::giveSize(), oofem::Node::initializeFrom(), IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, oofem::IRRT_BAD_FORMAT, masterDofManagers, masterWeights, OOFEM_WARNING, and oofem::FloatArray::resize().
|
inlinevirtual |
Returns true if dof of given type is allowed to be associated to receiver.
Reimplemented from oofem::Node.
Definition at line 77 of file slavenode.h.
|
virtual |
Performs post-initialization such like checking if there are any slave dofs etc.
Reimplemented from oofem::DofManager.
Definition at line 63 of file slavenode.C.
References oofem::FloatArray::clear(), oofem::SlaveDof::initialize(), masterDofManagers, masterWeights, and oofem::DofManager::postInitialize().
|
virtual |
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::DofManager.
Definition at line 79 of file slavenode.C.
References oofem::IntArray::at(), oofem::ERS_DofManager, oofem::IntArray::giveSize(), masterDofManagers, and oofem::DofManager::updateLocalNumbering().
|
protected |
Master nodes for all dofs.
Definition at line 61 of file slavenode.h.
Referenced by initializeFrom(), postInitialize(), and updateLocalNumbering().
|
protected |
Common dof weights for each master node.
Definition at line 63 of file slavenode.h.
Referenced by initializeFrom(), and postInitialize().