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

Partitioned domain (aggregation of subdomains). More...

#include <PartitionedDomain.h>

Inheritance diagram for XC::PartitionedDomain:
Inheritance graph
[legend]
Collaboration diagram for XC::PartitionedDomain:
Collaboration graph
[legend]

Public Member Functions

 PartitionedDomain (CommandEntity *owr, DataOutputHandler::map_output_handlers *oh)
 Constructor. More...
 
 PartitionedDomain (CommandEntity *owr, DomainPartitioner &thePartitioner, DataOutputHandler::map_output_handlers *oh)
 Constructor. More...
 
 PartitionedDomain (CommandEntity *owr, int numNods, int numElems, int numSPs, int numMPs, int numLPatterns, int numNLockers, int numSubdom, DomainPartitioner &thePartitioner, DataOutputHandler::map_output_handlers *oh)
 Constructor. More...
 
virtual ~PartitionedDomain (void)
 Destructor.
 
virtual bool addElement (Element *elePtr)
 To add the element pointed to by theElementPtr to the domain. More...
 
virtual bool addNode (Node *nodePtr)
 Adds the node pointed to by theNodePtr to the domain. More...
 
virtual bool addLoadPattern (LoadPattern *)
 Add the load pattern to the domain.
 
virtual bool addSFreedom_Constraint (SFreedom_Constraint *)
 Adds the single point constraint pointed to by theSPptr to the domain. More...
 
virtual bool addSFreedom_Constraint (SFreedom_Constraint *, int loadPatternTag)
 Adds to the domain a single freedom constraint.
 
virtual bool addMFreedom_Constraint (MFreedom_Constraint *)
 Adds the multiple freedom constraint pointed to by the argument. More...
 
virtual bool addMRMFreedom_Constraint (MRMFreedom_Constraint *)
 Adds to the domain a multi-freedom multi-retained node 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 whose tag is given by tag. More...
 
virtual bool removeNode (int tag)
 Remove the node whose tag is given by tag. More...
 
virtual bool removeSFreedom_Constraint (int tag)
 To remove the SFreedom_Constraint whose tag is given by tag from the domain. More...
 
virtual bool removeMFreedom_Constraint (int tag)
 To remove the MFreedom_Constraint whose tag is given by tag. More...
 
virtual bool removeLoadPattern (int loadTag)
 To remove the load case whose tag is given by tag. More...
 
virtual ElementItergetElements ()
 Return an iterator to the element container. More...
 
virtual ElementgetElement (int tag)
 Return the element identified by the argument. More...
 
virtual int getNumElements (void) const
 Return the number of elements.
 
virtual void setCommitTag (int newTag)
 Set the committed tag to newTag.
 
virtual void setCurrentTime (double newTime)
 Sets the current pseudo-time of the domain. More...
 
virtual void setCommittedTime (double newTime)
 Set the committed time to newTime.
 
virtual void applyLoad (double pseudoTime)
 Applies the load to all the subdomains. More...
 
virtual void setLoadConstant (void)
 Set all the loads as constant. More...
 
virtual int commit (void)
 The partioned domain iterates through all the subdomains invoking {commit()} on them. 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)
 
virtual int addRecorder (Recorder &theRecorder)
 Add the recorder to the partitioned domain.
 
virtual int removeRecorders (void)
 Remove recorders from the domain.
 
virtual void Print (std::ostream &s, int flag=0) const
 Print stuff. More...
 
virtual int setPartitioner (DomainPartitioner *thePartitioner)
 
virtual int partition (int numPartitions, bool usingMain=false, int mainPartitionID=0)
 Triggers the partition of the domain. More...
 
virtual bool addSubdomain (Subdomain *theSubdomain)
 Adds the subdomain pointed to by theSubdomainPtr to the domain. More...
 
virtual int getNumSubdomains (void)
 Return the number of Subdomains (partitions).
 
virtual SubdomaingetSubdomainPtr (int tag)
 Return the Subdomain whose tag is given by tag.
 
virtual SubdomainItergetSubdomains (void)
 Return an iterator for the Subdomains of the PartitionedDomain.
 
virtual bool removeExternalNode (int tag)
 a method which will only remove a node from the partitioned domain it does not touch the subdomains . More...
 
virtual GraphgetSubdomainGraph (void)
 This will create a new graph each time it is invoked; deleting the old graph. More...
 
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.
 
- Public Member Functions inherited from XC::Domain
 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 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.
 
bool remove (Element *)
 Remove the element from the domain. More...
 
bool remove (Node *)
 Remove the node from the domain. More...
 
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 removeMRMFreedom_Constraint (int tag)
 Removes from domain the multi-freedom multi-retained node constraint identified by the argument. More...
 
bool remove (Constraint *)
 Remove the element from the domain. 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 patterns 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 removeAllLoadCombinations (void)
 Remove all the load combinations currently in activeCombinations.
 
void removeAllLoadsAndCombinations (void)
 Remove all the load patterns and load combinations currently in this domain. More...
 
void removeLPs (void)
 Remove all the load patterns from this domain.
 
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 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 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...
 
bool existSFreedom_Constraint (int tag)
 Return true if the SFreedom constraint exists. More...
 
virtual ConstraintgetSFreedom_Constraint (int tag)
 Return a pointer to the SFreedom constraint identified by the argument. More...
 
virtual const ConstraintgetSFreedom_Constraint (int tag) const
 Return a pointer to the SFreedom constraint identified by the argument. More...
 
bool existMFreedom_Constraint (int tag)
 Return true if the MFreedom constraint exists. More...
 
virtual ConstraintgetMFreedom_Constraint (int tag)
 Return a pointer to the MFreedom constraint identified by the argument. More...
 
virtual const ConstraintgetMFreedom_Constraint (int tag) const
 Return a pointer to the MFreedom constraint identified by the argument. More...
 
bool existMRMFreedom_Constraint (int tag)
 Return true if the MRMFreedom constraint exists. More...
 
virtual ConstraintgetMRMFreedom_Constraint (int tag)
 Return a pointer to the MRMFreedom constraint identified by the argument. More...
 
virtual const ConstraintgetMRMFreedom_Constraint (int tag) const
 Return a pointer to the MRMFreedom constraint 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
 Return a constant reference to the internal time tracker.
 
double getCommittedTime (void) const
 Return the committed value of the pseudo-time.
 
double getCurrentTime (void) const
 Return the current value fo the pseudo-time.
 
int getCurrentGeoTag (void) const
 
virtual int getCommitTag (void) const
 
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 setTime (double newTime)
 
virtual int initialize (void)
 Initialize mesh.
 
virtual int setRayleighDampingFactors (const RayleighDampingFactors &rF)
 Set Rayleigh damping factors.
 
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.
 
boost::python::list getEigenvaluesPy (void) const
 Returns a Python list with the computed eigenvalues for each mode.
 
void clearEigenvectors (void)
 Remove the stored eigenvectors.
 
void clearEigenvalues (void)
 Remove the stored eigenvalues.
 
void clearEigendata (void)
 Remove the stored eigenvalues and eigenvectors.
 
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 getTotalEffectiveModalMass (void) const
 Return the total effective modal mass.
 
Matrix getTotalMass (void) const
 Return the total mass matrix.
 
double getTotalMassComponent (const int &) const
 Return the total mass matrix component for the DOF argument.
 
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 int sendSelf (Communicator &)
 Sends object through the communicator argument.
 
virtual int recvSelf (const Communicator &)
 Receives object through the communicator argument.
 
boost::python::dict getPyDict (void) const
 Return a Python dictionary with the object members values.
 
void setPyDict (const boost::python::dict &)
 Set the values of the object members from a Python dictionary.
 
const PreprocessorgetPreprocessor (void) const
 Returns (if possible) a pointer to the preprocessor.
 
PreprocessorgetPreprocessor (void)
 Returns (if possible) a pointer to the preprocessor.
 
virtual int calculateNodalReactions (bool inclInertia, const double &)
 Calculate nodal reaction forces and moments.
 
- Public Member Functions inherited from XC::ObjWithRecorders
 ObjWithRecorders (CommandEntity *owr, DataOutputHandler::map_output_handlers *oh=nullptr)
 
boost::python::dict getPyDict (void) const
 Return a Python dictionary with the object members values.
 
void setPyDict (const boost::python::dict &)
 Set the values of the object members from a Python dictionary.
 
- Public Member Functions inherited from CommandEntity
 CommandEntity (CommandEntity *owr=nullptr)
 Default constructor.
 
CommandEntityOwner (void)
 Return a pointer to the object owner.
 
const CommandEntityOwner (void) const
 Return un puntero al objeto propietario de ESTE.
 
const StandardOutputWrappergetStandardOutputWrapper (void) const
 Return the regular output stream wrapper.
 
StandardOutputWrappergetStandardOutputWrapper (void)
 Return the regular output stream wrapper.
 
const std::string & getLogFileName (void) const
 Returns log file name.
 
void setLogFileName (const std::string &)
 Sets log file name.
 
const std::string & getErrFileName (void) const
 Returns err file name.
 
void setErrFileName (const std::string &)
 Sets error file name.
 
const std::string & getOutputFileName (void) const
 Returns regular output file name.
 
void setOutputFileName (const std::string &)
 Sets regular output file name.
 
boost::python::object evalPy (boost::python::object dict, const std::string &)
 Return the Python object that results from evaluating the argument.
 
boost::python::object execPy (boost::python::object dict, const std::string &)
 Return the Python objects that results from executing the code in the string argument.
 
boost::python::object execFilePy (boost::python::object dict, const std::string &)
 Return the Python object that results from executing the code in the file.
 
- Public Member Functions inherited from EntityWithProperties
 EntityWithProperties (EntityWithProperties *owr=nullptr)
 Default constructor.
 
void clearPyProps (void)
 Clear python properties map.
 
bool hasPyProp (const std::string &)
 Returns true if property exists.
 
boost::python::object getPyProp (const std::string &str)
 Return the Python object with the name being passed as parameter.
 
void setPyProp (std::string str, boost::python::object val)
 Sets/appends a value tho the Python object's dictionary.
 
void copyPropsFrom (const EntityWithProperties &)
 Copy the properties from the argument.
 
boost::python::list getPropNames (void) const
 Return the names of the object properties weightings.
 
const PythonDict & getPropertiesDict (void) const
 Return a std::map container with the properties of the object.
 
- Public Member Functions inherited from EntityWithOwner
 EntityWithOwner (EntityWithOwner *owr=nullptr)
 Default constructor.
 
 EntityWithOwner (const EntityWithOwner &)
 Copy constructor.
 
EntityWithOwneroperator= (const EntityWithOwner &)
 Assignment operator.
 
virtual bool operator== (const EntityWithOwner &) const
 Comparison operator.
 
virtual ~EntityWithOwner (void)
 Virtual destructor.
 
virtual std::string getClassName (void) const
 Returns demangled class name.
 
void set_owner (EntityWithOwner *owr)
 Assigns the owner of the object.
 
EntityWithOwnerOwner (void)
 
const EntityWithOwnerOwner (void) const
 
- 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...
 
void setLinks (Domain *dom)
 Asigna el domain a los recorders.
 
void SetOutputHandlers (DataOutputHandler::map_output_handlers *oh)
 Set the outputhandlers container.
 
boost::python::dict getPyDict (void) const
 Return a Python dictionary with the object members values.
 
void setPyDict (const boost::python::dict &)
 Set the values of the object members from a Python dictionary.
 
- 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.
 

Protected Member Functions

int barrierCheck (int result)
 
DomainPartitionergetPartitioner (void) const
 Return a pointer to the DomainPartitioner object associated with the PartitionedDomain. More...
 
virtual int buildEleGraph (Graph &theEleGraph)
 A method which will cause the domain to discard the current element graph and build a new one based on the element connectivity. More...
 
- Protected Member Functions inherited from XC::Domain
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 CommandEntity
template<class T >
void string_to (T &, const std::string &) const
 
- Protected Member Functions inherited from EntityWithProperties
bool isEqual (const EntityWithProperties &) const
 Return true if both objects are equal.
 
- Protected Member Functions inherited from EntityWithOwner
virtual bool isEqual (const EntityWithOwner &) const
 Return true if both objects are equal.
 
- 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

class PartitionedDomainEleIter
 

Additional Inherited Members

- Public Types inherited from EntityWithProperties
typedef std::map< std::string, boost::python::object > PythonDict
 
- Public Types inherited from XC::RecorderContainer
typedef std::list< Recorder * > recorders_list
 
typedef recorders_list::iterator recorder_iterator
 
typedef recorders_list::const_iterator const_recorder_iterator
 
- Static Public Member Functions inherited from XC::Domain
static void setDeadSRF (const double &)
 Assigns Stress Reduction Factor for element deactivation.
 
- Static Public Member Functions inherited from CommandEntity
static void resetStandardOutput (void)
 Reset the standard output streams to its defaults buffers.
 
- Static Public Member Functions inherited from EntityWithOwner
static int getVerbosityLevel (void)
 Get the value of the verbosity level.
 
static void setVerbosityLevel (const int &)
 Set the value of the verbosity level.
 
- Static Protected Member Functions inherited from CommandEntity
static CommandEntityentcmd_cast (boost::any &data)
 
- Static Protected Attributes inherited from EntityWithOwner
static int verbosity = 1
 Object that owns THIS ONE. More...
 

Detailed Description

Partitioned domain (aggregation of subdomains).

PartitionedDomain is an extension of Domain. A partitioned domain is an aggregation of subdomains. All elements, nodes, loadcases are added to the PartitionedDomain. The components can be moved among subdomains (keeping in mind that subdomains are themselves subclasses of domain and therefore must obey the requirements for adding and removing elements specified in the interface for Domain) by invoking the remove..() and add...() methods on the subdomain.

Constructor & Destructor Documentation

◆ PartitionedDomain() [1/3]

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

Constructor.

Parameters
owrobject that encloses this one.
ohto DEPRECATE.

◆ PartitionedDomain() [2/3]

XC::PartitionedDomain::PartitionedDomain ( CommandEntity owr,
DomainPartitioner thePartitioner,
DataOutputHandler::map_output_handlers *  oh 
)

Constructor.

Constructs an empty PartitionedDomain. A link with the domain partitioner thePartitioner is set up. The thePartitioner is used by the domain to partition and load balance the partitioned domain.

Parameters
owrobject that encloses this one.
thePartitionerobject that make the partition.
ohto DEPRECATE.

◆ PartitionedDomain() [3/3]

XC::PartitionedDomain::PartitionedDomain ( CommandEntity owr,
int  numNodes,
int  numElements,
int  numSPs,
int  numMPs,
int  numLoadPatterns,
int  numNodeLockers,
int  numSubdomains,
DomainPartitioner thePartitioner,
DataOutputHandler::map_output_handlers *  oh 
)

Constructor.

Constructs an empty PartitionedDomain, storage is allocated for the components that are to be added using the estimated number of components passed as arguments. A link with the domain partitioner thePartitioner is set up. The thePartitioner is used by the domain to partition and load balance the partitioned domain.

Parameters
owrobject that encloses this one.
thePartitionerobject that make the partition.
ohto DEPRECATE.

Member Function Documentation

◆ addElement()

bool XC::PartitionedDomain::addElement ( Element elePtr)
virtual

To add the element pointed to by theElementPtr to the domain.

To add the element pointed to by theElementPtr to the domain. If check is true the domain is responsible for checking to see that: 1) no other element with a similar tag, element number, exists in any of the subdomains. If check is successful the partitioned domain attempts to add the element to the storage arrey. The call returns false if the element was not added, otherwise true is returned.

Reimplemented from XC::Domain.

◆ addElementalLoad()

bool XC::PartitionedDomain::addElementalLoad ( ElementalLoad load,
int  loadPatternTag 
)
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.
loadPatternTagload pattern identifier.

Reimplemented from XC::Domain.

◆ addMFreedom_Constraint()

bool XC::PartitionedDomain::addMFreedom_Constraint ( MFreedom_Constraint load)
virtual

Adds the multiple freedom constraint pointed to by the argument.

Adds the multiple freedom constraint pointed to by the argument, to the domain. The domain performs some checks is check is true. If successful the domain adds the constraint using {Domain::addMP_Constraint()}. The call returns false if the constraint was not added, otherwise true is returned.

Reimplemented from XC::Domain.

◆ addNodalLoad()

bool XC::PartitionedDomain::addNodalLoad ( NodalLoad load,
int  loadPatternTag 
)
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.
loadPatternTagload pattern identifier.

Reimplemented from XC::Domain.

◆ addNode()

bool XC::PartitionedDomain::addNode ( Node nodePtr)
virtual

Adds the node pointed to by theNodePtr to the domain.

Adds the node pointed to by theNodePtr to the domain. If check is true the domain is responsible for checking that no other node with a similar tag, node number, exists in any of the subdomains. If successful the partition domain attempts to add the node by invoking {Domain::addNode}. The call returns false if the node was not added, otherwise true is returned.

Reimplemented from XC::Domain.

◆ addSFreedom_Constraint()

bool XC::PartitionedDomain::addSFreedom_Constraint ( SFreedom_Constraint load)
virtual

Adds the single point constraint pointed to by theSPptr to the domain.

Adds the single point constraint pointed to by theSPptr to the domain. The domain performs some checks is check is true. If successful the domain adds the constraint using {Domain::addSFreedom_Constraint()}. The call returns false if the constraint was not added, otherwise true is returned.

Reimplemented from XC::Domain.

◆ addSubdomain()

bool XC::PartitionedDomain::addSubdomain ( Subdomain theSubdomain)
virtual

Adds the subdomain pointed to by theSubdomainPtr to the domain.

Adds the subdomain pointed to by theSubdomainPtr to the domain. The domain is responsible for checking that no other subdomain with a similar tag, has been previously added to the domain. If successful the domain is responsible for invoking {setDomain(this)} on the Subdomain. The domain is also responsible for invoking {domainChange()}. The call returns false if the subdomain was not added, otherwise true is returned.

◆ applyLoad()

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

Applies the load to all the subdomains.

The partioned domain iterates through all the subdomains invoking {applyLoad(double timeStamp)} on them.

Reimplemented from XC::Domain.

◆ buildEleGraph()

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

A method which will cause the domain to discard the current element graph and build a new one based on the element connectivity.

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 to std::cerr.

Reimplemented from XC::Domain.

◆ clearAll()

void XC::PartitionedDomain::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 from XC::Domain.

◆ commit()

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

The partioned domain iterates through all the subdomains invoking {commit()} on them.

Reimplemented from XC::Domain.

◆ getElement()

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

Return the element identified by the argument.

Returns a pointer to the element whose tag is given by tag. If no such element exists \(0\) is returned. This is done by invoking {getElement(tag)} on the subdomains until the element is found or no more subdomains exist; in which case a \(0\) is returned.

Reimplemented from XC::Domain.

◆ getElements()

XC::ElementIter & XC::PartitionedDomain::getElements ( void  )
virtual

Return an iterator to the element container.

It returns an PartionedDomEleIter for the elements of the domain. This is an iter which goes through all the subdomains, invoking {getElements()} on the subdomain to get an ElementIter. The PartitionedDomEleIter uses this iter to go through the elements of the subdomain until it begins returning \(0\); at which point it goes on to the next subdomain.

Reimplemented from XC::Domain.

◆ getNodeDisp()

double XC::PartitionedDomain::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 from XC::Domain.

◆ getPartitioner()

XC::DomainPartitioner * XC::PartitionedDomain::getPartitioner ( void  ) const
protected

Return a pointer to the DomainPartitioner object associated with the PartitionedDomain.

◆ getSubdomainGraph()

XC::Graph & XC::PartitionedDomain::getSubdomainGraph ( void  )
virtual

This will create a new graph each time it is invoked; deleting the old graph.

THIS WILL BE CHANGED. A vertex is created for each Subdomain, with an edge to each Subdomain the Subdomain is connected to, a tag equal to the Subdomain tag, and a weight equal to the result of invoking getCost() on the Subdomain.

◆ partition()

int XC::PartitionedDomain::partition ( int  numPartitions,
bool  usingMain = false,
int  mainPartitionID = 0 
)
virtual

Triggers the partition of the domain.

Method which first checks that subdomains with tags 1 through numPartitions exist in the PartitionedDomain. Then it invokes {setPartitionedDomain(*this)} on the DomainPartitioner and finally it returns the result of invoking {partition(numPartitions} on the DomainPartitioner, which will return 0 if succesfull, a negative number if not.

◆ Print()

void XC::PartitionedDomain::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 from XC::Domain.

◆ removeElement()

bool XC::PartitionedDomain::removeElement ( int  tag)
virtual

Remove the element whose tag is given by tag.

To remove the element whose tag is given by tag from the domain. The method Returns \(0\) if no such element exists in the domain. Otherwise the domain invokes {setDomain(0)} on the element and {setDomainChange(true,true,false)} on itself before a pointer to the element is returned.

Reimplemented from XC::Domain.

◆ removeExternalNode()

bool XC::PartitionedDomain::removeExternalNode ( int  tag)
virtual

a method which will only remove a node from the partitioned domain it does not touch the subdomains .

. can be dangerous to use.

A method to remove a Node whose tag is given by tag from the PartitionedDomain, but will not remove the Node from any Subdomains.

◆ removeLoadPattern()

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

To remove the load case whose tag is given by tag.

To remove the load case whose tag is given by tag from the domain. Returns \(0\) if the load case was not in the domain, otherwise returns a pointer to the load case that was removed. Invokes {setDomain(0)} on the load case before it is returned.

Reimplemented from XC::Domain.

◆ removeMFreedom_Constraint()

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

To remove the MFreedom_Constraint whose tag is given by tag.

To remove the MFreedom_Constraint whose tag is given by tag from the domain. Returns \(0\) if the constraint was not in the domain, otherwise the domain invokes {setDomain(0)} on the constraint and {setDomainChange(true,false,false)} on itself before a pointer to the constraint is returned.

Reimplemented from XC::Domain.

◆ removeNode()

bool XC::PartitionedDomain::removeNode ( int  tag)
virtual

Remove the node whose tag is given by tag.

To remove the node whose tag is given by tag from the domain. Returns \(0\) if no such node exists in the domain. Otherwise if the checkNeeded is true before the node is removed a check is made to see that the node is not referenced by any element, constraint or load. If it is referenced the Node will not be removed and \(0\) is returned. If the node is to be removed the domain invokes {setDomain(0)} on the node and {setDomainChange(true,false,true)} on itself.

Reimplemented from XC::Domain.

◆ removeSFreedom_Constraint()

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

To remove the SFreedom_Constraint whose tag is given by tag from the domain.

To remove the SFreedom_Constraint whose tag is given by tag from the domain. Returns \(0\) if the constraint was not in the domain, otherwise the domain invokes {setDomain(0)} on the constraint and {setDomainChange(true,false,false)} on itself before a pointer to the constraint is returned.

Reimplemented from XC::Domain.

◆ revertToLastCommit()

int XC::PartitionedDomain::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 from XC::Domain.

◆ revertToStart()

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

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

Reimplemented from XC::Domain.

◆ setCurrentTime()

void XC::PartitionedDomain::setCurrentTime ( double  newTime)
virtual

Sets the current pseudo-time of the domain.

Sets the current pseudo-time of the domain to be that whose tag is given by newTime. It iterates through all the subdomains invoking the same operation on them.

Reimplemented from XC::Domain.

◆ setLoadConstant()

void XC::PartitionedDomain::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 from XC::Domain.

◆ update()

int XC::PartitionedDomain::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 from XC::Domain.


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