66 #ifndef PartitionedDomain_h 67 #define PartitionedDomain_h 69 #include <domain/domain/Domain.h> 70 #include "solution/graph/graph/Graph.h" 73 class DomainPartitioner;
76 class ArrayOfTaggedObjects;
77 class PartitionedDomainSubIter;
78 class PartitionedDomainEleIter;
79 class SingleDomEleIter;
93 TaggedObjectStorage *elements;
101 Graph mySubdomainGraph;
105 int barrierCheck(
int result);
109 PartitionedDomain(CommandEntity *owr,DataOutputHandler::map_output_handlers *oh);
113 int numSPs,
int numMPs,
int numLPatterns,
int numNLockers,
149 virtual void applyLoad(
double pseudoTime);
156 virtual int update(
double newTime,
double dT);
157 virtual int newStep(
double dT);
162 virtual void Print(std::ostream &s,
int flag =0);
166 virtual int partition(
int numPartitions,
bool usingMain =
false,
int mainPartitionID = 0);
176 virtual double getNodeDisp(
int nodeTag,
int dof,
int &errorFlag);
virtual int buildEleGraph(Graph &theEleGraph)
A method which will cause the domain to discard the current element graph and build a new one based o...
Definition: PartitionedDomain.cpp:1327
virtual int addRecorder(Recorder &theRecorder)
Adds a recorder to the model.
Definition: PartitionedDomain.cpp:1129
virtual bool removeLoadPattern(int loadTag)
To remove the load case whose tag is given by tag.
Definition: PartitionedDomain.cpp:739
Domain enclosed in another domain.
Definition: Subdomain.h:101
Object that can partition and load balance a PartitionedDomain.
Definition: DomainPartitioner.h:87
virtual SubdomainIter & getSubdomains(void)
Return an iterator for the Subdomains of the PartitionedDomain.
Definition: PartitionedDomain.cpp:1305
virtual ElementIter & getElements()
Return an iterator to the element container.
Definition: PartitionedDomain.cpp:773
virtual int partition(int numPartitions, bool usingMain=false, int mainPartitionID=0)
Triggers the partition of the domain.
Definition: PartitionedDomain.cpp:1213
virtual bool addLoadPattern(LoadPattern *)
Add the load pattern to the domain.
Definition: PartitionedDomain.cpp:536
virtual Subdomain * getSubdomainPtr(int tag)
Return the Subdomain whose tag is given by tag.
Definition: PartitionedDomain.cpp:1296
virtual bool addElement(Element *elePtr)
To add the element pointed to by theElementPtr to the domain.
Definition: PartitionedDomain.cpp:199
virtual void Print(std::ostream &s, int flag=0)
Print stuff.
Definition: PartitionedDomain.cpp:1181
An Recorder object is used in the program to store/restore information at each commit().
Definition: Recorder.h:86
virtual bool addNode(Node *nodePtr)
Adds the node pointed to by theNodePtr to the domain.
Definition: PartitionedDomain.cpp:261
Iterator over an element container.
Definition: ElementIter.h:73
virtual void setCommitTag(int newTag)
Set the committed tag to newTag.
Definition: PartitionedDomain.cpp:845
virtual int revertToStart(void)
Return the domain to its initial state and triggers the "restart" method for all the recorders...
Definition: PartitionedDomain.cpp:1096
virtual bool removeExternalNode(int tag)
a method which will only remove a node from the partitioned domain it does not touch the subdomains ...
Definition: PartitionedDomain.cpp:1441
A LoadPattern object is used to to store reference loads and single point constraints and a TimeSerie...
Definition: LoadPattern.h:93
DomainPartitioner * getPartitioner(void) const
Return a pointer to the DomainPartitioner object associated with the PartitionedDomain.
Definition: PartitionedDomain.cpp:1314
virtual int setMass(const Matrix &mass, int nodeTag)
Set the mass matrix for the node identified by the argument.
Definition: PartitionedDomain.cpp:1590
virtual bool addSubdomain(Subdomain *theSubdomain)
Adds the subdomain pointed to by theSubdomainPtr to the domain.
Definition: PartitionedDomain.cpp:1273
virtual void setCommittedTime(double newTime)
Set the committed time to newTime.
Definition: PartitionedDomain.cpp:885
ArrayOfTaggedObjects is a storage class.
Definition: ArrayOfTaggedObjects.h:91
virtual bool addSFreedom_Constraint(SFreedom_Constraint *)
Adds the single point constraint pointed to by theSPptr to the domain.
Definition: PartitionedDomain.cpp:284
virtual void setCurrentTime(double newTime)
Sets the current pseudo-time of the domain.
Definition: PartitionedDomain.cpp:867
virtual int removeRecorders(void)
Remove the recorders.
Definition: PartitionedDomain.cpp:1155
Base class for the finite elements.
Definition: Element.h:109
virtual bool addMFreedom_Constraint(MFreedom_Constraint *)
Adds the multiple freedom constraint pointed to by the argument.
Definition: PartitionedDomain.cpp:348
virtual bool removeSFreedom_Constraint(int tag)
To remove the SFreedom_Constraint whose tag is given by tag from the domain.
Definition: PartitionedDomain.cpp:678
Definition: SubdomainIter.h:70
virtual Graph & getSubdomainGraph(void)
This will create a new graph each time it is invoked; deleting the old graph.
Definition: PartitionedDomain.cpp:1451
virtual void applyLoad(double pseudoTime)
Applies the load to all the subdomains.
Definition: PartitionedDomain.cpp:827
Definition: PartitionedDomainEleIter.h:79
Single freedom constraint.
Definition: SFreedom_Constraint.h:84
virtual int update(void)
Updates the state of the domain.
Definition: PartitionedDomain.cpp:917
virtual void setLoadConstant(void)
Set all the loads as constant.
Definition: PartitionedDomain.cpp:901
The Graph class provides the abstraction of a graph.
Definition: Graph.h:93
virtual bool removeElement(int tag)
Remove the element whose tag is given by tag.
Definition: PartitionedDomain.cpp:614
virtual int getNumSubdomains(void)
Return the number of Subdomains (partitions).
Definition: PartitionedDomain.cpp:1290
virtual int commit(void)
The partioned domain iterates through all the subdomains invoking {commit()} on them.
Definition: PartitionedDomain.cpp:1024
virtual bool addElementalLoad(ElementalLoad *, int loadPatternTag)
Adds a load over element to the pattern.
Definition: PartitionedDomain.cpp:600
virtual int revertToLastCommit(void)
Return the domain to its last commited state.
Definition: PartitionedDomain.cpp:1064
virtual bool addMRMFreedom_Constraint(MRMFreedom_Constraint *)
Adds to the domain a multi-freedom multi-retained node constraint.
Definition: PartitionedDomain.cpp:528
Multiple retained nodes constraint.
Definition: MRMFreedom_Constraint.h:58
virtual bool removeMFreedom_Constraint(int tag)
To remove the MFreedom_Constraint whose tag is given by tag.
Definition: PartitionedDomain.cpp:706
virtual Element * getElement(int tag)
Return the element identified by the argument.
Definition: PartitionedDomain.cpp:785
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:34
Partitioned domain (aggregation of subdomains).
Definition: PartitionedDomain.h:90
virtual int getNumElements(void) const
Return the number of elements.
Definition: PartitionedDomain.cpp:814
Matrix of floats.
Definition: Matrix.h:108
Multi-freedom constraint.
Definition: MFreedom_Constraint.h:110
virtual ~PartitionedDomain(void)
Destructor.
Definition: PartitionedDomain.cpp:170
Definition: PartitionedDomainSubIter.h:72
Definition: SingleDomEleIter.h:71
Base class for loads over elements.
Definition: ElementalLoad.h:77
virtual bool removeNode(int tag)
Remove the node whose tag is given by tag.
Definition: PartitionedDomain.cpp:649
Domain (mesh and boundary conditions) of the finite element model.
Definition: Domain.h:116
Mesh node.
Definition: Node.h:110
virtual void clearAll(void)
Removes all components from domain (nodes, elements, loads & constraints).
Definition: PartitionedDomain.cpp:176
PartitionedDomain(CommandEntity *owr, DataOutputHandler::map_output_handlers *oh)
Constructor.
Definition: PartitionedDomain.cpp:127
Load over a node.
Definition: NodalLoad.h:82
virtual bool addNodalLoad(NodalLoad *, int loadPatternTag)
Appends a nodal load to the pattern being passed as parameter.
Definition: PartitionedDomain.cpp:567
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 param...
Definition: PartitionedDomain.cpp:1566