xc
Public Member Functions | Static Public Member Functions | Protected Member Functions | Friends | List of all members
XC::Domain Class Reference

Domain (mesh and boundary conditions) of the finite element model. More...

#include <Domain.h>

Inheritance diagram for XC::Domain:
XC::ObjWithRecorders XC::DistributedBase XC::RecorderContainer XC::PartitionedDomain XC::Subdomain XC::ActorSubdomain XC::ShadowSubdomain

Public Member Functions

 Domain (CommandEntity *owr, DataOutputHandler::map_output_handlers *oh)
 Constructor. More...
 
 Domain (CommandEntity *owr, int numNods, int numElements, int numSPs, int numMPs, int numLPatterns, int numNLockers, DataOutputHandler::map_output_handlers *oh)
 Constructor. More...
 
virtual ~Domain (void)
 Destructor. More...
 
virtual bool addElement (Element *)
 Adds to the domain the element being passed as parameter.
 
virtual bool addNode (Node *)
 Adds to the domain the node being passed as parameter.
 
virtual bool addSFreedom_Constraint (SFreedom_Constraint *)
 Adds a single freedom constraint to the domain. More...
 
virtual bool addMFreedom_Constraint (MFreedom_Constraint *)
 Adds to the domain a multi-freedom constraint. More...
 
virtual bool addMRMFreedom_Constraint (MRMFreedom_Constraint *)
 Adds to the domain a multi-freedom multi-retained node constraint.
 
virtual bool addLoadPattern (LoadPattern *)
 Appends the load pattern to the domain. More...
 
virtual bool isLoadPatternActive (const LoadPattern *) const
 Return true if the load pattern is already added to the domain. More...
 
virtual bool addNodeLocker (NodeLocker *)
 Appends the node locker object to the domain.
 
virtual bool addLoadCombination (LoadCombination *)
 Adds to the domain the load combination being passed as parameter.
 
virtual bool addParameter (Parameter *)
 
void setNodeReactionException (const int &)
 Sets the exception for node reactions checking (see Domain::checkNodalReactions).
 
bool checkNodalReactions (const double &)
 Check that al free nodes have zero reaction.
 
virtual bool addSFreedom_Constraint (SFreedom_Constraint *, int loadPatternTag)
 Adds to the domain a single freedom constraint.
 
virtual bool addNodalLoad (NodalLoad *, int loadPatternTag)
 Appends a nodal load to the pattern being passed as parameter. More...
 
virtual bool addElementalLoad (ElementalLoad *, int loadPatternTag)
 Adds a load over element to the pattern. More...
 
virtual void clearAll (void)
 Removes all components from domain (nodes, elements, loads & constraints). More...
 
virtual bool removeElement (int tag)
 Remove the element identified by the argument.
 
virtual bool removeNode (int tag)
 Remove the node identified by the argument.
 
virtual bool removeSFreedom_Constraint (int theNode, int theDOF, int loadPatternTag)
 Remove the single freedom constraint from the load pattern identified by the argument. More...
 
virtual bool removeSFreedom_Constraint (int tag)
 Removes from domain the single freedom constraint identified by the argument. More...
 
virtual bool removeMFreedom_Constraint (int tag)
 Removes from domain the multi-freedom constraint identified by the argument. More...
 
virtual bool removeMRMFreedom_Constraint (int tag)
 Removes from domain the multi-freedom multi-retained node constraint identified by the argument. More...
 
virtual bool removeLoadPattern (int loadTag)
 Remove from domain el load pattern identified by the argument. More...
 
virtual bool removeNodeLocker (int nlTag)
 Remove from domain el.
 
bool removeLoadPattern (LoadPattern *lp)
 Remove from domain the load pattern being passed as parameter.
 
bool removeAllLoadPatterns (void)
 Remove from all load pattenrs from domain.
 
bool removeNodeLocker (NodeLocker *lp)
 Remove from domain the load pattern being passed as parameter.
 
void removeLoadCombination (LoadCombination *comb)
 Removes from the domain the load combination being passed as parameter. More...
 
void removeLPs (void)
 Remove from domain todos los load patterns.
 
void removeNLs (void)
 Remove all node lockers from domain.
 
virtual bool removeNodalLoad (int tag, int loadPattern)
 Removes from domain the nodal load being passed as parameter. More...
 
virtual bool removeElementalLoad (int tag, int loadPattern)
 Removes from domain the elemental load being passed as parameter. More...
 
virtual bool removeSFreedom_Constraint (int tag, int loadPattern)
 Removes from domain the single freedom constraint being passed as parameter. More...
 
virtual void clearDOF_GroupPtr (void)
 Clears the pointers to DOF groups.
 
virtual ElementItergetElements (void)
 Returns an iterator to the element container.
 
virtual NodeItergetNodes (void)
 Returns an iterator to the node container.
 
virtual MeshgetMesh (void)
 Returns a reference to the domain mesh.
 
virtual const MeshgetMesh (void) const
 Returns a reference to the domain mesh.
 
virtual ConstrContainergetConstraints (void)
 Returns domain constraints.
 
virtual const ConstrContainergetConstraints (void) const
 Returns domain constraints.
 
std::string getCurrentCombinationName (void) const
 Return the name of the current load combination.
 
std::string getCurrentLoadCaseDescription (void) const
 Return the name of the current load case.
 
bool existElement (int tag)
 Returns true if the element identified by the tag being passed as parameter already exists in the domain. More...
 
virtual ElementgetElement (int tag)
 Return a pointer to the element identified by the argument. More...
 
virtual const ElementgetElement (int tag) const
 Returns a const pointer to the element identified by the argument. More...
 
bool existNode (int tag)
 Return true if the mesh has a node with this tag. More...
 
virtual NodegetNode (int tag)
 Return a pointer to the node identified by the argument. More...
 
virtual const NodegetNode (int tag) const
 Return a pointer to the node identified by the argument. More...
 
virtual ParametergetParameter (int tag)
 Return a pointer to the parameter identified by the argument. More...
 
virtual const ParametergetParameter (int tag) const
 Return a pointer to the parameter identified by the argument. More...
 
const PseudoTimeTrackergetTimeTracker (void) const
 
int getCurrentGeoTag (void) const
 
virtual int getCommitTag (void) const
 
virtual int getNumElements (void) const
 Return the number of elements.
 
virtual int getNumNodes (void) const
 Return the number of nodes.
 
virtual const VectorgetPhysicalBounds (void)
 
virtual GraphgetElementGraph (void)
 Builds (if necessary) the domain elements graph and returns a reference to it. More...
 
virtual GraphgetNodeGraph (void)
 Builds (if necessary) the domain node graph and returns a reference to it. More...
 
virtual void setCommitTag (int newTag)
 Set the committed tag to newTag.
 
virtual void setCurrentTime (double newTime)
 Set the current time to newTime.
 
virtual void setCommittedTime (double newTime)
 Set the committed time to newTime.
 
virtual void setTime (double newTime)
 
virtual void applyLoad (double pseudoTime)
 Apply the loads for the given time pseudoTime. More...
 
virtual void setLoadConstant (void)
 Set all the loads as constant. More...
 
virtual int initialize (void)
 Initialize mesh.
 
virtual int setRayleighDampingFactors (const RayleighDampingFactors &rF)
 Set Rayleigh damping factors.
 
virtual int commit (void)
 Commits domain state and triggers "record" method for all defined recorders. More...
 
virtual int revertToLastCommit (void)
 Return the domain to its last committed state. More...
 
virtual int revertToStart (void)
 Return the domain to its initial state and triggers the "restart" method for all the recorders. More...
 
virtual int update (void)
 Updates the state of the domain. More...
 
virtual int update (double newTime, double dT)
 Updates domain state.
 
virtual int newStep (double dT)
 
void resetLoadCase (void)
 Prepares the domain to solve for a new load pattern.
 
int getNumModes (void) const
 Return the number of computed eigenvalues.
 
virtual int setEigenvalues (const Vector &)
 Sets eigenvalues.
 
virtual const double & getEigenvalue (int) const
 Return the eigenvalue of the i-th mode.
 
double getAngularFrequency (int) const
 Return the angular frequency of the i-th mode.
 
double getPeriod (int) const
 Return the period of the i-th mode.
 
double getFrequency (int) const
 Return the frequency of the i-th mode.
 
virtual const VectorgetEigenvalues (void) const
 Return the eigenvalues vector.
 
Vector getAngularFrequencies (void) const
 Returns a vector with the computed angular frequencies (for each mode).
 
Vector getPeriods (void) const
 Returns a vector with the computed periods (for each mode).
 
Vector getFrequencies (void) const
 Returns a vector with the computed frequencies (for each mode).
 
virtual int setModalParticipationFactors (const Vector &)
 Sets the values of the modal participation factors.
 
virtual const double & getModalParticipationFactor (int mode) const
 Return the modal participation factor of the i-th mode.
 
virtual const VectorgetModalParticipationFactors (void) const
 Return the modal participation factors.
 
const double getEffectiveModalMass (int mode) const
 Return the effective modal mass of the i-th mode.
 
Vector getEffectiveModalMasses (void) const
 Return the effective modal masses for each mode.
 
double getTotalMass (void) const
 Return the total effective modal mass.
 
virtual void domainChange (void)
 Sets a flag indicating that the integer returned in the next call to hasDomainChanged() must be incremented by \(1\). More...
 
virtual int hasDomainChanged (void)
 Returns true if the model has changed. More...
 
virtual void setDomainChangeStamp (int newStamp)
 Set the domain stamp to be newStamp. More...
 
virtual int addRegion (MeshRegion &theRegion)
 Adds a region.
 
virtual MeshRegiongetRegion (int region)
 Returns a pointer to the region identified by the argument.
 
virtual void Print (std::ostream &s, int flag=0) const
 Print stuff. More...
 
virtual int sendSelf (Communicator &)
 Sends object through the communicator argument.
 
virtual int recvSelf (const Communicator &)
 Receives object through the communicator argument.
 
const PreprocessorgetPreprocessor (void) const
 Returns (if possible) a pointer to the preprocessor.
 
PreprocessorgetPreprocessor (void)
 Returns (if possible) a pointer to the preprocessor.
 
virtual double getNodeDisp (int nodeTag, int dof, int &errorFlag)
 Return the value of the dof component of displacement for the node with the tag being passed as parameter. More...
 
virtual int setMass (const Matrix &mass, int nodeTag)
 Set the mass matrix for the node identified by the argument.
 
virtual int calculateNodalReactions (bool inclInertia, const double &)
 Calculate nodal reaction forces and moments.
 
virtual int addRecorder (Recorder &theRecorder)
 Adds a recorder to the model. More...
 
- Public Member Functions inherited from XC::ObjWithRecorders
 ObjWithRecorders (CommandEntity *owr, DataOutputHandler::map_output_handlers *oh=nullptr)
 
- Public Member Functions inherited from XC::RecorderContainer
 RecorderContainer (DataOutputHandler::map_output_handlers *oh=nullptr)
 
virtual ~RecorderContainer (void)
 Destructor.
 
RecordernewRecorder (const std::string &, DataOutputHandler *oh=nullptr)
 Read a Recorder object from file.
 
recorder_iterator recorder_begin (void)
 
const_recorder_iterator recorder_begin (void) const
 
recorder_iterator recorder_end (void)
 
const_recorder_iterator recorder_end (void) const
 
virtual int record (int track, double timeStamp=0.0)
 To invoke {record(cTag, timeStamp)} on any Recorder objects which have been added. More...
 
void restart (void)
 To invoke {restart()} on any Recorder objects which have been added. More...
 
virtual int removeRecorders (void)
 Remove the recorders.
 
void setLinks (Domain *dom)
 Asigna el domain a los recorders.
 
void SetOutputHandlers (DataOutputHandler::map_output_handlers *oh)
 Set the outputhandlers container.
 
- Public Member Functions inherited from XC::DistributedBase
 DistributedBase (void)
 Constructor.
 
virtual ~DistributedBase (void)
 Destructor.
 
const int & getDbTagDataPos (const int &i) const
 Returns the data at the i-th position.
 
void setDbTagDataPos (const int &i, const int &v)
 Sets the data at the i-th position.
 
void inicComm (const int &dataSize) const
 Initializes communication.
 

Static Public Member Functions

static void setDeadSRF (const double &)
 Assigns Stress Reduction Factor for element deactivation.
 

Protected Member Functions

virtual int buildEleGraph (Graph &theEleGraph)
 Builds the element graph. More...
 
virtual int buildNodeGraph (Graph &theNodeGraph)
 Builds the node graph. More...
 
virtual Domainget_domain_ptr (void)
 
void free_mem (void)
 
DbTagDatagetDbTagData (void) const
 Returns a vector to store the dbTags de los miembros of the clase. More...
 
int sendData (Communicator &comm)
 Send data through the communicator argument.
 
int recvData (const Communicator &comm)
 Receive data through the communicator argument.
 
- Protected Member Functions inherited from XC::RecorderContainer
int sendData (Communicator &comm)
 
int recvData (const Communicator &comm)
 
size_t getNumRecorders (void) const
 Returns the number of recorders already defined.
 

Friends

std::ostream & operator<< (std::ostream &, const Domain &)
 
int sendDomain (Domain &, int posDbTag, DbTagData &, Communicator &comm)
 
int receiveDomain (Domain &, int posDbTag, DbTagData &, const Communicator &comm)
 

Additional Inherited Members

- Public Types inherited from XC::RecorderContainer
typedef std::list< Recorder * > lista_recorders
 
typedef lista_recorders::iterator recorder_iterator
 
typedef lista_recorders::const_iterator const_recorder_iterator
 

Detailed Description

Domain (mesh and boundary conditions) of the finite element model.

Is a container class for storing and providing access to the components of a domain, i.e. nodes, elements, boundary conditions, and load patterns.

A Domain is a container class which contains the all elements, nodes, load cases, single point constraints and multiple point constraints that the model builder uses to create the model of the structure. It provides operations for the following:

Constructor & Destructor Documentation

§ Domain() [1/2]

XC::Domain::Domain ( CommandEntity *  owr,
DataOutputHandler::map_output_handlers *  oh 
)

Constructor.

Constructs an empty domain. The storage for the DomainComponents uses ArrayOfTaggedObjects objects for each type of object to be stored.

Parameters
owrobject that contains this one.

§ Domain() [2/2]

XC::Domain::Domain ( CommandEntity *  owr,
int  numNodes,
int  numElements,
int  numSPs,
int  numMPs,
int  numLoadPatterns,
int  numNodeLockers,
DataOutputHandler::map_output_handlers *  oh 
)

Constructor.

Constructs an empty Domain. The initial sizes specified for these objects are no more needed (so ignored)

Parameters
owrobject that contains this one.
numNodesnumber of nodes.
numElementsnumber of elements.
numSPsnumber of single freedom constraints.
numMPsnumber of multi-freedom constraints.
numLoadPatternsnumber of load patterns.
numNodeLockersnumber of node lockers.

§ ~Domain()

XC::Domain::~Domain ( void  )
virtual

Destructor.

destructor, this calls delete on all components of the model, i.e. calls delete on all that is added to the model. WARNING: if 3rd constructor, TaggedObjectStorage objects passed must have been created with new and nowhere else must the destructor be called.

Member Function Documentation

§ addElementalLoad()

bool XC::Domain::addElementalLoad ( ElementalLoad load,
int  pattern 
)
virtual

Adds a load over element to the pattern.

To add the elemental load theld to the LoadPattern in the domain whose tag is given by loadPatternTag. If {_DEBUG} is defines, checks to see that corresponding element exists in the domain. A pointer to the LoadPattern is obtained from the LoadPattern container and the load is added to LoadPattern by invoking {addElementalLoad(theLd)} on the LoadPattern object. The domain is responsible for invoking {setDomain(this)} on the load. The call returns true if the load was added, otherwise a warning is raised and and {false} is returned.

Parameters
loadload over element.
patternload pattern identifier.

Reimplemented in XC::ShadowSubdomain, and XC::PartitionedDomain.

§ addLoadPattern()

bool XC::Domain::addLoadPattern ( LoadPattern lp)
virtual

Appends the load pattern to the domain.

To add the LoadPattern thePattern to the domain. The load is added to domain by the domain invoking {addComponent(theLd)} on the container for the LoadPatterns. The domain is responsible for invoking {setDomain(this)} on the load. The call returns true if the load was added, otherwise a warning is raised and false is returned.

Parameters
lppointer to the load pattern to ask for.

Reimplemented in XC::ShadowSubdomain, and XC::PartitionedDomain.

§ addMFreedom_Constraint()

bool XC::Domain::addMFreedom_Constraint ( MFreedom_Constraint mpConstraint)
virtual

Adds to the domain a multi-freedom constraint.

To add the multiple point constraint pointed to by theMPptr, to the domain. In addition the domain always checks to ensure that no other MP_Constraint with a similar tag exists in the domain. If the checks are successful, the constraint is added to domain by the domain invoking {addComponent(theMPptr)} on the container for the MP_Constraints. The domain then invokes {setDomain(this)} on the constraint and domainChange() on itself. The call returns {true} if the constraint was added, otherwise a warning is raised and false is returned.

Reimplemented in XC::ShadowSubdomain, and XC::PartitionedDomain.

§ addNodalLoad()

bool XC::Domain::addNodalLoad ( NodalLoad load,
int  pattern 
)
virtual

Appends a nodal load to the pattern being passed as parameter.

To add the nodal load theld to the LoadPattern in the domain whose tag is given by loadPatternTag. If {_DEBUG} is defines, checks to see that corresponding node exists in the domain. A pointer to the LoadPattern is obtained from the LoadPattern container and the load is added to LoadPattern by invoking {addNodalLoad(theLd)} on the LoadPattern object. The domain is responsible for invoking {setDomain(this)} on the load. The call returns true if the load was added, a warning is raised and and {false} is returned.

Parameters
loadload over node.
patternload pattern identifier.

Reimplemented in XC::ShadowSubdomain, and XC::PartitionedDomain.

§ addRecorder()

int XC::Domain::addRecorder ( Recorder theRecorder)
virtual

Adds a recorder to the model.

To add a recorder object theRecorder to the domain. {record(commitTag)} is invoked on each commit(). The pointers to the recorders are stored in an array which is resized on each invocation of this method.

Reimplemented from XC::RecorderContainer.

Reimplemented in XC::ShadowSubdomain, and XC::PartitionedDomain.

§ addSFreedom_Constraint()

bool XC::Domain::addSFreedom_Constraint ( SFreedom_Constraint spConstraint)
virtual

Adds a single freedom constraint to the domain.

To add the single point constraint pointed to by spConstraint to the domain. In addition the container always checks to ensure that no other constraint with a similar tag exists in the domain. The domain then invokes setDomain(this) on the constraint and domainChange() on itself.

Reimplemented in XC::ShadowSubdomain, and XC::PartitionedDomain.

§ applyLoad()

void XC::Domain::applyLoad ( double  timeStep)
virtual

Apply the loads for the given time pseudoTime.

To apply the loads for the given time pseudoTime. The domain first clears the current load at all nodes and elements, done by invoking zeroUnbalancedLoad()} on each node and {zeroLoad() on each element. The domain then invokes {applyLoad(pseudoTime)} on all LoadPatterns which have been added to the domain. The domain will then invoke {applyConstraint(pseudoTime)} on all the constraints in the single and multi point constraint containers. Finally the domain sets its current time to be {pseudoTime}.

Reimplemented in XC::ShadowSubdomain, and XC::PartitionedDomain.

§ buildEleGraph()

int XC::Domain::buildEleGraph ( Graph theEleGraph)
protectedvirtual

Builds the element graph.

A method which will cause the domain to discard the current element graph and build a new one based on the element connectivity. Returns \(0\) if successful otherwise \(-1\) is returned along with an error message.

Reimplemented in XC::ShadowSubdomain, and XC::PartitionedDomain.

§ buildNodeGraph()

int XC::Domain::buildNodeGraph ( Graph theNodeGraph)
protectedvirtual

Builds the node graph.

A method which will cause the domain to discard the current node graph and build a new one based on the node connectivity. Returns \(0\) if successful otherwise \(-1\) is returned along with an error message.

Reimplemented in XC::ShadowSubdomain.

§ clearAll()

void XC::Domain::clearAll ( void  )
virtual

Removes all components from domain (nodes, elements, loads & constraints).

To remove all the components from the model and invoke the destructor on these objects. First clearAll() is invoked on all the LoadPattern objects. Then the domain object invokes {clearAll()} on its container objects. In addition the destructor for each Recorder object that has been added to the domain is invoked. In addition the current time and load factor are set to \(0\), and the box bounding the domain is set to the box enclosing the origin.

GENERAL NOTE ON REMOVAL OF COMPONENTS: downward casts (while bad) are o.k. as only the type of components can be added to the storage objects, e.g. only elements can be added to theElements therefore casting a DomainComponent from theElements to an Element is o.k.

Reimplemented in XC::ShadowSubdomain, XC::Subdomain, and XC::PartitionedDomain.

§ commit()

int XC::Domain::commit ( void  )
virtual

Commits domain state and triggers "record" method for all defined recorders.

To commit the state of the domain , that is to accept the current state as being ion the solution path. The domain invokes {commit()} on all nodes in the domain and then {commit()} on all elements of the domain. These are calls for the nodes and elements to set there committed state as given by their current state. The domain will then set its committed time variable to be equal to the current time and lastly increments its commit tag by \(1\).

Reimplemented in XC::ShadowSubdomain, XC::Subdomain, and XC::PartitionedDomain.

§ domainChange()

void XC::Domain::domainChange ( void  )
virtual

Sets a flag indicating that the integer returned in the next call to hasDomainChanged() must be incremented by \(1\).

Sets a flag indicating that the integer returned in the next call to hasDomainChanged() must be incremented by \(1\). This method is invoked whenever a Node, Element or Constraint object is added to the domain.

Reimplemented in XC::ShadowSubdomain.

§ existElement()

bool XC::Domain::existElement ( int  tag)

Returns true if the element identified by the tag being passed as parameter already exists in the domain.

§ existNode()

bool XC::Domain::existNode ( int  tag)

Return true if the mesh has a node with this tag.

Parameters
tagnode identifier.

§ getDbTagData()

XC::DbTagData & XC::Domain::getDbTagData ( void  ) const
protectedvirtual

Returns a vector to store the dbTags de los miembros of the clase.

Reimplemented from XC::DistributedBase.

§ getElement() [1/2]

XC::Element * XC::Domain::getElement ( int  tag)
virtual

Return a pointer to the element identified by the argument.

Parameters
tagelement identifier.

Reimplemented in XC::PartitionedDomain.

§ getElement() [2/2]

const XC::Element * XC::Domain::getElement ( int  tag) const
virtual

Returns a const pointer to the element identified by the argument.

Parameters
tagelement identifier.

§ getElementGraph()

XC::Graph & XC::Domain::getElementGraph ( void  )
virtual

Builds (if necessary) the domain elements graph and returns a reference to it.

Return the current element graph (the connectivity of the elements in the mesh). If the eleChangeFlag has been set to true the method will invoke {buildEleGraph(theEleGraph)} on itself before returning the graph. The vertices in the element graph are to be labeled \(0\) through \(numEle-1\). The vertices references contain the elemental tags.

Reimplemented in XC::ShadowSubdomain.

§ getNode() [1/2]

XC::Node * XC::Domain::getNode ( int  tag)
virtual

Return a pointer to the node identified by the argument.

Parameters
tagnode identifier.

Reimplemented in XC::Subdomain.

§ getNode() [2/2]

const XC::Node * XC::Domain::getNode ( int  tag) const
virtual

Return a pointer to the node identified by the argument.

Parameters
tagnode identifier.

Reimplemented in XC::Subdomain.

§ getNodeDisp()

double XC::Domain::getNodeDisp ( int  nodeTag,
int  dof,
int &  errorFlag 
)
virtual

Return the value of the dof component of displacement for the node with the tag being passed as parameter.

Parameters
nodeTagnode identifier.
dofcomponent of the displacement.
errorFlagerror indicator.

Reimplemented in XC::ShadowSubdomain, and XC::PartitionedDomain.

§ getNodeGraph()

XC::Graph & XC::Domain::getNodeGraph ( void  )
virtual

Builds (if necessary) the domain node graph and returns a reference to it.

Return the current node graph (the connectivity of the nodes in the mesh). If the nodeChangeFlag has been set to true the will invoke {buildNodeGraph(theNodeGraph)} on itself before returning the graph. The vertices in the node graph are to be labeled \(0\) through \(numNode-1\). The Vertices references contain the nodal tags.

Reimplemented in XC::ShadowSubdomain.

§ getParameter() [1/2]

XC::Parameter * XC::Domain::getParameter ( int  tag)
virtual

Return a pointer to the parameter identified by the argument.

Parameters
tagparameter identifier.

§ getParameter() [2/2]

const XC::Parameter * XC::Domain::getParameter ( int  tag) const
virtual

Return a pointer to the parameter identified by the argument.

Parameters
tagparameter identifier.

§ getPhysicalBounds()

const XC::Vector & XC::Domain::getPhysicalBounds ( void  )
virtual

This information is built up as nodes are added to the domain, initially all are set to \(0\) in the constructor.

§ hasDomainChanged()

int XC::Domain::hasDomainChanged ( void  )
virtual

Returns true if the model has changed.

To return an integer stamp indicating the state of the domain. Initially \(0\), this integer is incremented by \(1\) if {domainChange()} has been invoked since the last invocation of the method. If the domain has changed it marks the element and node graph flags as not having been built.

§ isLoadPatternActive()

bool XC::Domain::isLoadPatternActive ( const LoadPattern lp) const
virtual

Return true if the load pattern is already added to the domain.

Parameters
lppointer to the load pattern to ask for.

§ Print()

void XC::Domain::Print ( std::ostream &  s,
int  flag = 0 
) const
virtual

Print stuff.

To print the state of the domain. The domain invokes {Print(s,flag)} on all it's container objects.

Reimplemented in XC::ShadowSubdomain, XC::Subdomain, and XC::PartitionedDomain.

§ removeElementalLoad()

bool XC::Domain::removeElementalLoad ( int  elemLoadTag,
int  loadPattern 
)
virtual

Removes from domain the elemental load being passed as parameter.

Parameters
elemLoadTagIdentifier of the load over elements to remove.
loadPatternLoad pattern identifier.

Reimplemented in XC::ShadowSubdomain.

§ removeLoadCombination()

void XC::Domain::removeLoadCombination ( LoadCombination comb)

Removes from the domain the load combination being passed as parameter.

§ removeLoadPattern()

bool XC::Domain::removeLoadPattern ( int  tag)
virtual

Remove from domain el load pattern identified by the argument.

To remove the LoadPattern whose tag is given by tag from the domain. The domain achieves this by invoking {removeComponent(tag, numSPs)} on the container for the constraints. If the LoadPattern exists, the domain then iterates through the loads and constraints of the LoadPattern invoking {setDomain(nullptr)} on these objects. Returns \(0\) if the load was not in the domain, otherwise returns a pointer to the load that was removed. Invokes {setDomain(0)} on the load case before it is returned.

Parameters
tagidentifier of the load pattern.

Reimplemented in XC::ShadowSubdomain, and XC::PartitionedDomain.

§ removeMFreedom_Constraint()

bool XC::Domain::removeMFreedom_Constraint ( int  tag)
virtual

Removes from domain the multi-freedom constraint identified by the argument.

To remove the MP_Constraint whose tag is given by tag from the domain. The domain achieves this by invoking {removeComponent(tag)} on the container for the multi point constraints. Returns \(0\) if the constraint was not in the domain, otherwise the domain invokes {setDomain(nullptr)} on the constraint and domainChange() on itself before a pointer to the constraint is returned.

Parameters
tagidentifier of the constraint.

Reimplemented in XC::ShadowSubdomain, and XC::PartitionedDomain.

§ removeMRMFreedom_Constraint()

bool XC::Domain::removeMRMFreedom_Constraint ( int  tag)
virtual

Removes from domain the multi-freedom multi-retained node constraint identified by the argument.

Parameters
tagidentifier of the constraint.

§ removeNodalLoad()

bool XC::Domain::removeNodalLoad ( int  nodalLoadTag,
int  loadPattern 
)
virtual

Removes from domain the nodal load being passed as parameter.

Parameters
nodalLoadTagNodal load identifier.
loadPatternLoad pattern identifier.

Reimplemented in XC::ShadowSubdomain.

§ removeSFreedom_Constraint() [1/3]

bool XC::Domain::removeSFreedom_Constraint ( int  theNode,
int  theDOF,
int  loadPatternTag 
)
virtual

Remove the single freedom constraint from the load pattern identified by the argument.

To remove the SFreedom_Constraint whose tag is given by tag from the domain. The domain achieves this by invoking {removeComponent(tag)} on the container for the single point constraints. Returns \(0\) if the constraint was not in the domain, otherwise the domain invokes {setDomain(nullptr)} on the constraint and domainChange() on itself before a pointer to the constraint is returned. Note this will only remove SFreedom_Constraints which have been added to the domain and not directly to LoadPatterns.

Parameters
theNodenode identifier.
theDOFdegree of freedom identifier.
loadPatternTagload pattern identifier (if -1 then remove from domain).

§ removeSFreedom_Constraint() [2/3]

bool XC::Domain::removeSFreedom_Constraint ( int  tag)
virtual

Removes from domain the single freedom constraint identified by the argument.

Parameters
tagidentifier of the single freedom constraint.

Reimplemented in XC::ShadowSubdomain, and XC::PartitionedDomain.

§ removeSFreedom_Constraint() [3/3]

bool XC::Domain::removeSFreedom_Constraint ( int  singleFreedomTag,
int  loadPattern 
)
virtual

Removes from domain the single freedom constraint being passed as parameter.

Parameters
singleFreedomTagSingle freedom identifier.
loadPatternLoad pattern identifier.

Reimplemented in XC::ShadowSubdomain.

§ revertToLastCommit()

int XC::Domain::revertToLastCommit ( void  )
virtual

Return the domain to its last committed state.

To return the domain to the state it was in at the last commit. The domain invokes revertToLastCommit() on all nodes and elements in the domain. The domain sets its current loadFactor and time stamp to be equal to the last committed values. The domain decrements the current commitTag by \(1\). Finally it invokes applyLoad() on itself with the current time.

Reimplemented in XC::ShadowSubdomain, XC::Subdomain, and XC::PartitionedDomain.

§ revertToStart()

int XC::Domain::revertToStart ( void  )
virtual

Return the domain to its initial state and triggers the "restart" method for all the recorders.

Reimplemented in XC::ShadowSubdomain, XC::Subdomain, and XC::PartitionedDomain.

§ setDomainChangeStamp()

void XC::Domain::setDomainChangeStamp ( int  newStamp)
virtual

Set the domain stamp to be newStamp.

Domain stamp is the integer returned by hasDomainChanged().

§ setLoadConstant()

void XC::Domain::setLoadConstant ( void  )
virtual

Set all the loads as constant.

To set the loads in the LoadPatterns to be constant. The domain achieves this by invoking setLoadConstant() on all the LoadPatterns which have been added to the domain. Note that LoadPatterns added after this method has been invoked will not be constant until this method is invoked again.

Reimplemented in XC::ShadowSubdomain, and XC::PartitionedDomain.

§ update()

int XC::Domain::update ( void  )
virtual

Updates the state of the domain.

Called by the AnalysisModel to update the state of the domain. Iterates over all the elements of the Domain and invokes {update()}.

Reimplemented in XC::ShadowSubdomain, XC::Subdomain, XC::PartitionedDomain, and XC::ActorSubdomain.


The documentation for this class was generated from the following files: