67 #ifndef PartitionedDomain_h 68 #define PartitionedDomain_h 70 #include <domain/domain/Domain.h> 71 #include "solution/graph/graph/Graph.h" 74 class DomainPartitioner;
77 class ArrayOfTaggedObjects;
78 class PartitionedDomainSubIter;
79 class PartitionedDomainEleIter;
80 class SingleDomEleIter;
94 TaggedObjectStorage *elements;
102 Graph mySubdomainGraph;
108 int barrierCheck(
int result);
116 int numSPs,
int numMPs,
int numLPatterns,
int numNLockers,
152 virtual void applyLoad(
double pseudoTime);
159 virtual int update(
double newTime,
double dT);
160 virtual int newStep(
double dT);
165 virtual void Print(std::ostream &s,
int flag =0)
const;
169 virtual int partition(
int numPartitions,
bool usingMain =
false,
int mainPartitionID = 0);
179 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:1440
virtual int addRecorder(Recorder &theRecorder)
Add the recorder to the partitioned domain.
Definition: PartitionedDomain.cpp:1231
virtual void Print(std::ostream &s, int flag=0) const
Print stuff.
Definition: PartitionedDomain.cpp:1291
virtual bool removeLoadPattern(int loadTag)
To remove the load case whose tag is given by tag.
Definition: PartitionedDomain.cpp:835
Domain enclosed in another domain.
Definition: Subdomain.h:102
Object that can partition and load balance a PartitionedDomain.
Definition: DomainPartitioner.h:88
virtual SubdomainIter & getSubdomains(void)
Return an iterator for the Subdomains of the PartitionedDomain.
Definition: PartitionedDomain.cpp:1418
virtual ElementIter & getElements()
Return an iterator to the element container.
Definition: PartitionedDomain.cpp:871
virtual int partition(int numPartitions, bool usingMain=false, int mainPartitionID=0)
Triggers the partition of the domain.
Definition: PartitionedDomain.cpp:1323
virtual bool addLoadPattern(LoadPattern *)
Add the load pattern to the domain.
Definition: PartitionedDomain.cpp:583
virtual Subdomain * getSubdomainPtr(int tag)
Return the Subdomain whose tag is given by tag.
Definition: PartitionedDomain.cpp:1409
virtual bool addElement(Element *elePtr)
To add the element pointed to by theElementPtr to the domain.
Definition: PartitionedDomain.cpp:202
An Recorder object is used in the program to store/restore information at each commit().
Definition: Recorder.h:87
virtual bool addNode(Node *nodePtr)
Adds the node pointed to by theNodePtr to the domain.
Definition: PartitionedDomain.cpp:265
Iterator over an element container.
Definition: ElementIter.h:74
virtual void setCommitTag(int newTag)
Set the committed tag to newTag.
Definition: PartitionedDomain.cpp:943
virtual int revertToStart(void)
Return the domain to its initial state and triggers the "restart" method for all the recorders...
Definition: PartitionedDomain.cpp:1195
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:1554
A load pattern is the spatial distribution as well as its variation in time of a specific set of forc...
Definition: LoadPattern.h:97
DomainPartitioner * getPartitioner(void) const
Return a pointer to the DomainPartitioner object associated with the PartitionedDomain.
Definition: PartitionedDomain.cpp:1427
virtual int setMass(const Matrix &mass, int nodeTag)
Set the mass matrix for the node identified by the argument.
Definition: PartitionedDomain.cpp:1703
virtual bool addSubdomain(Subdomain *theSubdomain)
Adds the subdomain pointed to by theSubdomainPtr to the domain.
Definition: PartitionedDomain.cpp:1386
virtual void setCommittedTime(double newTime)
Set the committed time to newTime.
Definition: PartitionedDomain.cpp:983
ArrayOfTaggedObjects is a storage class.
Definition: ArrayOfTaggedObjects.h:92
virtual bool addSFreedom_Constraint(SFreedom_Constraint *)
Adds the single point constraint pointed to by theSPptr to the domain.
Definition: PartitionedDomain.cpp:288
virtual void setCurrentTime(double newTime)
Sets the current pseudo-time of the domain.
Definition: PartitionedDomain.cpp:965
virtual int removeRecorders(void)
Remove recorders from the domain.
Definition: PartitionedDomain.cpp:1262
Base class for the finite elements.
Definition: Element.h:112
virtual bool addMFreedom_Constraint(MFreedom_Constraint *)
Adds the multiple freedom constraint pointed to by the argument.
Definition: PartitionedDomain.cpp:392
virtual bool removeSFreedom_Constraint(int tag)
To remove the SFreedom_Constraint whose tag is given by tag from the domain.
Definition: PartitionedDomain.cpp:765
Definition: SubdomainIter.h:71
virtual Graph & getSubdomainGraph(void)
This will create a new graph each time it is invoked; deleting the old graph.
Definition: PartitionedDomain.cpp:1564
virtual void applyLoad(double pseudoTime)
Applies the load to all the subdomains.
Definition: PartitionedDomain.cpp:925
Definition: PartitionedDomainEleIter.h:80
Single freedom constraint.
Definition: SFreedom_Constraint.h:85
Objet that can execute python scripts.
Definition: CommandEntity.h:40
virtual int update(void)
Updates the state of the domain.
Definition: PartitionedDomain.cpp:1015
virtual void setLoadConstant(void)
Set all the loads as constant.
Definition: PartitionedDomain.cpp:999
The Graph class provides the abstraction of a graph.
Definition: Graph.h:94
virtual bool removeElement(int tag)
Remove the element whose tag is given by tag.
Definition: PartitionedDomain.cpp:698
virtual int getNumSubdomains(void)
Return the number of Subdomains (partitions).
Definition: PartitionedDomain.cpp:1403
virtual int commit(void)
The partioned domain iterates through all the subdomains invoking {commit()} on them.
Definition: PartitionedDomain.cpp:1122
virtual bool addElementalLoad(ElementalLoad *, int loadPatternTag)
Adds a load over element to the pattern.
Definition: PartitionedDomain.cpp:652
virtual int revertToLastCommit(void)
Return the domain to its last committed state.
Definition: PartitionedDomain.cpp:1163
virtual bool addMRMFreedom_Constraint(MRMFreedom_Constraint *)
Adds to the domain a multi-freedom multi-retained node constraint.
Definition: PartitionedDomain.cpp:575
Multiple retained nodes constraint.
Definition: MRMFreedom_Constraint.h:59
virtual bool removeMFreedom_Constraint(int tag)
To remove the MFreedom_Constraint whose tag is given by tag.
Definition: PartitionedDomain.cpp:799
virtual Element * getElement(int tag)
Return the element identified by the argument.
Definition: PartitionedDomain.cpp:883
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
Partitioned domain (aggregation of subdomains).
Definition: PartitionedDomain.h:91
virtual int getNumElements(void) const
Return the number of elements.
Definition: PartitionedDomain.cpp:912
Matrix of floats.
Definition: Matrix.h:111
Multi-freedom constraint.
Definition: MFreedom_Constraint.h:113
virtual ~PartitionedDomain(void)
Destructor.
Definition: PartitionedDomain.cpp:171
Definition: PartitionedDomainSubIter.h:73
Definition: SingleDomEleIter.h:72
Base class for loads over elements.
Definition: ElementalLoad.h:79
virtual bool removeNode(int tag)
Remove the node whose tag is given by tag.
Definition: PartitionedDomain.cpp:735
Domain (mesh and boundary conditions) of the finite element model.
Definition: Domain.h:117
Mesh node.
Definition: Node.h:111
virtual void clearAll(void)
Removes all components from domain (nodes, elements, loads & constraints).
Definition: PartitionedDomain.cpp:177
PartitionedDomain(CommandEntity *owr, DataOutputHandler::map_output_handlers *oh)
Constructor.
Definition: PartitionedDomain.cpp:128
Load over a node.
Definition: NodalLoad.h:83
virtual bool addNodalLoad(NodalLoad *, int loadPatternTag)
Appends a nodal load to the pattern being passed as parameter.
Definition: PartitionedDomain.cpp:617
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:1679