66 #include "utility/recorder/ObjWithRecorders.h" 67 #include "PseudoTimeTracker.h" 68 #include "../mesh/Mesh.h" 69 #include "../constraints/ConstrContainer.h" 70 #include "utility/matrix/Vector.h" 71 #include "domain/mesh/region/DqMeshRegion.h" 81 class SingleDomParamIter;
83 class LoadCombination;
91 class FEM_ObjectBroker;
92 class RayleighDampingFactors;
121 std::string callbackCommit;
125 bool hasDomainChangedFlag;
130 Vector modalParticipationFactors;
132 std::deque<std::string> activeCombinations;
134 TaggedObjectStorage *theParameters;
136 std::deque<int> paramIndex;
141 void alloc_containers(
void);
142 void alloc_iters(
void);
143 bool check_containers(
void)
const;
147 inline virtual Domain *get_domain_ptr(
void)
156 Domain(
CommandEntity *owr,
int numNods,
int numElements,
int numSPs,
int numMPs,
int numLPatterns,
int numNLockers,DataOutputHandler::map_output_handlers *oh);
242 {
return timeTracker; }
245 {
return timeTracker.getCommittedTime(); }
248 {
return timeTracker.getCurrentTime(); }
251 inline int getCurrentGeoTag(
void)
const 252 {
return currentGeoTag; }
253 virtual int getCommitTag(
void)
const;
267 virtual void setTime(
double newTime);
268 virtual void applyLoad(
double pseudoTime);
277 virtual int update(
double newTime,
double dT);
278 virtual int newStep(
double dT);
316 virtual void Print(std::ostream &s,
int flag =0)
const;
317 friend std::ostream &operator<<(std::ostream &,
const Domain &);
324 boost::python::dict
getPyDict(
void)
const;
325 void setPyDict(
const boost::python::dict &);
331 virtual double getNodeDisp(
int nodeTag,
int dof,
int &errorFlag);
340 std::ostream &operator<<(std::ostream &,
const Domain &);
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: Domain.cpp:1565
virtual int calculateNodalReactions(bool inclInertia, const double &)
Calculate nodal reaction forces and moments.
Definition: Domain.cpp:1581
virtual void clearDOF_GroupPtr(void)
Clears the pointers to DOF groups.
Definition: Domain.cpp:790
virtual void domainChange(void)
Sets a flag indicating that the integer returned in the next call to hasDomainChanged() must be incre...
Definition: Domain.cpp:1288
virtual bool addNode(Node *)
Adds to the domain the node being passed as parameter.
Definition: Domain.cpp:251
virtual const Vector & getPhysicalBounds(void)
Definition: Domain.cpp:959
DbTagData & getDbTagData(void) const
Returns a vector to store the dbTags de los miembros of the clase.
Definition: Domain.cpp:1389
virtual int addRegion(MeshRegion &theRegion)
Adds a region.
Definition: Domain.cpp:1357
virtual bool addSFreedom_Constraint(SFreedom_Constraint *)
Adds a single freedom constraint to the domain.
Definition: Domain.cpp:261
Float vector abstraction.
Definition: Vector.h:94
virtual Parameter * getParameter(int tag)
Return a pointer to the parameter identified by the argument.
Definition: Domain.cpp:920
virtual int setMass(const Matrix &mass, int nodeTag)
Set the mass matrix for the node identified by the argument.
Definition: Domain.cpp:1569
virtual int setModalParticipationFactors(const Vector &)
Sets the values of the modal participation factors.
Definition: Domain.cpp:1231
virtual bool addNodeLocker(NodeLocker *)
Appends the node locker object to the domain.
Definition: Domain.cpp:539
virtual Mesh & getMesh(void)
Returns a reference to the domain mesh.
Definition: Domain.cpp:806
virtual void clearAll(void)
Removes all components from domain (nodes, elements, loads & constraints).
Definition: Domain.cpp:201
virtual int revertToStart(void)
Return the domain to its initial state and triggers the "restart" method for all the recorders...
Definition: Domain.cpp:1097
void removeNLs(void)
Remove all node lockers from domain.
Definition: Domain.cpp:756
virtual bool removeNodalLoad(int tag, int loadPattern)
Removes from domain the nodal load being passed as parameter.
Definition: Domain.cpp:768
Communication parameters between processes.
Definition: Communicator.h:66
virtual bool removeMRMFreedom_Constraint(int tag)
Removes from domain the multi-freedom multi-retained node constraint identified by the argument...
Definition: Domain.cpp:464
int getNumModes(void) const
Return the number of computed eigenvalues.
Definition: Domain.cpp:1227
virtual const double & getModalParticipationFactor(int mode) const
Return the modal participation factor of the i-th mode.
Definition: Domain.cpp:1238
virtual Graph & getNodeGraph(void)
Builds (if necessary) the domain node graph and returns a reference to it.
Definition: Domain.cpp:983
virtual int recvSelf(const Communicator &)
Receives object through the communicator argument.
Definition: Domain.cpp:1538
virtual bool addMFreedom_Constraint(MFreedom_Constraint *)
Adds to the domain a multi-freedom constraint.
Definition: Domain.cpp:284
Finite element model generation tools.
Definition: Preprocessor.h:59
virtual int setRayleighDampingFactors(const RayleighDampingFactors &rF)
Set Rayleigh damping factors.
Definition: Domain.cpp:1041
An Recorder object is used in the program to store/restore information at each commit().
Definition: Recorder.h:87
virtual int revertToLastCommit(void)
Return the domain to its last committed state.
Definition: Domain.cpp:1079
Matrix getTotalMass(void) const
Return the total mass matrix.
Definition: Domain.cpp:1268
Iterator over an element container.
Definition: ElementIter.h:74
virtual ElementIter & getElements(void)
Returns an iterator to the element container.
Definition: Domain.cpp:794
void clearEigenvectors(void)
Remove the stored eigenvectors.
Definition: Domain.cpp:1182
double getPeriod(int) const
Return the period of the i-th mode.
Definition: Domain.cpp:1163
virtual bool removeLoadPattern(int loadTag)
Remove from domain el load pattern identified by the argument.
Definition: Domain.cpp:628
boost::python::dict getPyDict(void) const
Return a Python dictionary with the object members values.
Definition: Domain.cpp:1456
static void setDeadSRF(const double &)
Assigns Stress Reduction Factor for element deactivation.
Definition: Domain.cpp:242
virtual int buildNodeGraph(Graph &theNodeGraph)
Builds the node graph.
Definition: Domain.cpp:1384
Vector that stores the dbTags of the class members.
Definition: DbTagData.h:44
Base class for distributed processing.
Definition: DistributedBase.h:41
virtual Node * getNode(int tag)
Return a pointer to the node identified by the argument.
Definition: Domain.cpp:853
virtual void Print(std::ostream &s, int flag=0) const
Print stuff.
Definition: Domain.cpp:1319
int recvData(const Communicator &comm)
Receive data through the communicator argument.
Definition: Domain.cpp:1420
virtual int addRecorder(Recorder &theRecorder)
Adds a recorder to the model.
Definition: Domain.cpp:1342
virtual bool removeElementalLoad(int tag, int loadPattern)
Removes from domain the elemental load being passed as parameter.
Definition: Domain.cpp:775
virtual int hasDomainChanged(void)
Returns true if the model has changed.
Definition: Domain.cpp:1298
void removeAllLoadCombinations(void)
Remove all the load combinations currently in activeCombinations.
Definition: Domain.cpp:734
A load pattern is the spatial distribution as well as its variation in time of a specific set of forc...
Definition: LoadPattern.h:97
virtual int commit(void)
Commits domain state and triggers "record" method for all defined recorders.
Definition: Domain.cpp:1054
virtual ~Domain(void)
Destructor.
Definition: Domain.cpp:229
bool existElement(int tag)
Returns true if the element identified by the tag being passed as parameter already exists in the dom...
Definition: Domain.cpp:826
void setNodeReactionException(const int &)
Sets the exception for node reactions checking (see Domain::checkNodalReactions). ...
Definition: Domain.cpp:1573
const Preprocessor * getPreprocessor(void) const
Returns (if possible) a pointer to the preprocessor.
Definition: Domain.cpp:1589
const double getEffectiveModalMass(int mode) const
Return the effective modal mass of the i-th mode.
Definition: Domain.cpp:1246
virtual bool addElement(Element *)
Adds to the domain the element being passed as parameter.
Definition: Domain.cpp:247
virtual int initialize(void)
Initialize mesh.
Definition: Domain.cpp:1037
std::string getCurrentCombinationName(void) const
Return the name of the current load combination.
Definition: Domain.cpp:699
virtual int setEigenvalues(const Vector &)
Sets eigenvalues.
Definition: Domain.cpp:1144
void clearEigendata(void)
Remove the stored eigenvalues and eigenvectors.
Definition: Domain.cpp:1190
Base class for the finite elements.
Definition: Element.h:112
void clearEigenvalues(void)
Remove the stored eigenvalues.
Definition: Domain.cpp:1186
std::string getCurrentLoadCaseDescription(void) const
Return the name of the current load case.
Definition: Domain.cpp:716
virtual bool addNodalLoad(NodalLoad *, int loadPatternTag)
Appends a nodal load to the pattern being passed as parameter.
Definition: Domain.cpp:339
bool existMRMFreedom_Constraint(int tag)
Return true if the MRMFreedom constraint exists.
Definition: Domain.cpp:901
virtual const double & getEigenvalue(int) const
Return the eigenvalue of the i-th mode.
Definition: Domain.cpp:1155
double getTotalMassComponent(const int &) const
Return the total mass matrix component for the DOF argument.
Definition: Domain.cpp:1272
void resetLoadCase(void)
Prepares the domain to solve for a new load pattern.
Definition: Domain.cpp:233
virtual bool isLoadPatternActive(const LoadPattern *) const
Return true if the load pattern is already added to the domain.
Definition: Domain.cpp:534
virtual void setLoadConstant(void)
Set all the loads as constant.
Definition: Domain.cpp:1033
bool removeAllLoadPatterns(void)
Remove from all load patterns from domain.
Definition: Domain.cpp:669
bool existMFreedom_Constraint(int tag)
Return true if the MFreedom constraint exists.
Definition: Domain.cpp:883
virtual bool addLoadPattern(LoadPattern *)
Appends the load pattern to the domain.
Definition: Domain.cpp:508
void removeAllLoadsAndCombinations(void)
Remove all the load patterns and load combinations currently in this domain.
Definition: Domain.cpp:739
virtual void setCommitTag(int newTag)
Set the committed tag to newTag.
Definition: Domain.cpp:987
Vector getPeriods(void) const
Returns a vector with the computed periods (for each mode).
Definition: Domain.cpp:1207
virtual int getNumNodes(void) const
Return the number of nodes.
Definition: Domain.cpp:949
Vector getEffectiveModalMasses(void) const
Return the effective modal masses for each mode.
Definition: Domain.cpp:1250
Registro del tiempo.
Definition: PseudoTimeTracker.h:41
virtual MeshRegion * getRegion(int region)
Returns a pointer to the region identified by the argument.
Definition: Domain.cpp:1364
virtual bool removeElement(int tag)
Remove the element identified by the argument.
Definition: Domain.cpp:385
Single freedom constraint.
Definition: SFreedom_Constraint.h:85
Domain(CommandEntity *owr, DataOutputHandler::map_output_handlers *oh)
Constructor.
Definition: Domain.cpp:153
virtual Constraint * getSFreedom_Constraint(int tag)
Return a pointer to the SFreedom constraint identified by the argument.
Definition: Domain.cpp:871
Objet that can execute python scripts.
Definition: CommandEntity.h:40
Definition: SingleDomParamIter.h:38
virtual Element * getElement(int tag)
Return a pointer to the element identified by the argument.
Definition: Domain.cpp:833
The Graph class provides the abstraction of a graph.
Definition: Graph.h:94
virtual Constraint * getMRMFreedom_Constraint(int tag)
Return a pointer to the MRMFreedom constraint identified by the argument.
Definition: Domain.cpp:907
virtual bool addLoadCombination(LoadCombination *)
Adds to the domain the load combination being passed as parameter.
Definition: Domain.cpp:551
virtual int update(void)
Updates the state of the domain.
Definition: Domain.cpp:1124
virtual bool removeNodeLocker(int nlTag)
Remove from domain el.
Definition: Domain.cpp:644
Object that can manage Recorders.
Definition: ObjWithRecorders.h:42
virtual ConstrContainer & getConstraints(void)
Returns domain constraints.
Definition: Domain.cpp:814
const PseudoTimeTracker & getTimeTracker(void) const
Return a constant reference to the internal time tracker.
Definition: Domain.h:241
virtual const Vector & getModalParticipationFactors(void) const
Return the modal participation factors.
Definition: Domain.cpp:1242
double getCurrentTime(void) const
Return the current value fo the pseudo-time.
Definition: Domain.h:247
virtual bool removeNode(int tag)
Remove the node identified by the argument.
Definition: Domain.cpp:395
Rayleigh damping factors.
Definition: RayleighDampingFactors.h:59
bool checkNodalReactions(const double &)
Check that al free nodes have zero reaction.
Definition: Domain.cpp:1577
double getTotalEffectiveModalMass(void) const
Return the total effective modal mass.
Definition: Domain.cpp:1257
bool existSFreedom_Constraint(int tag)
Return true if the SFreedom constraint exists.
Definition: Domain.cpp:865
virtual bool removeMFreedom_Constraint(int tag)
Removes from domain the multi-freedom constraint identified by the argument.
Definition: Domain.cpp:451
virtual bool addElementalLoad(ElementalLoad *, int loadPatternTag)
Adds a load over element to the pattern.
Definition: Domain.cpp:364
virtual Constraint * getMFreedom_Constraint(int tag)
Return a pointer to the MFreedom constraint identified by the argument.
Definition: Domain.cpp:889
void removeLPs(void)
Remove all the load patterns from this domain.
Definition: Domain.cpp:746
Multiple retained nodes constraint.
Definition: MRMFreedom_Constraint.h:59
bool existNode(int tag)
Return true if the mesh has a node with this tag.
Definition: Domain.cpp:847
virtual void setCurrentTime(double newTime)
Set the current time to newTime.
Definition: Domain.cpp:991
Single freedom constraints that make part of a load pattern.
Definition: NodeLocker.h:45
virtual void setDomainChangeStamp(int newStamp)
Set the domain stamp to be newStamp.
Definition: Domain.cpp:1277
Vector getAngularFrequencies(void) const
Returns a vector with the computed angular frequencies (for each mode).
Definition: Domain.cpp:1197
void setPyDict(const boost::python::dict &)
Set the values of the object members from a Python dictionary.
Definition: Domain.cpp:1486
double getCommittedTime(void) const
Return the committed value of the pseudo-time.
Definition: Domain.h:244
Vector getFrequencies(void) const
Returns a vector with the computed frequencies (for each mode).
Definition: Domain.cpp:1217
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
double getAngularFrequency(int) const
Return the angular frequency of the i-th mode.
Definition: Domain.cpp:1159
Iterator over the nodes.
Definition: NodeIter.h:74
boost::python::list getEigenvaluesPy(void) const
Returns a Python list with the computed eigenvalues for each mode.
Definition: Domain.cpp:1175
Matrix of floats.
Definition: Matrix.h:111
virtual int sendSelf(Communicator &)
Sends object through the communicator argument.
Definition: Domain.cpp:1517
Multi-freedom constraint.
Definition: MFreedom_Constraint.h:113
virtual int getNumElements(void) const
Return the number of elements.
Definition: Domain.cpp:945
Dinamically allocated mesh region deque container.
Definition: DqMeshRegion.h:44
Parameter.
Definition: Parameter.h:68
double getFrequency(int) const
Return the frequency of the i-th mode.
Definition: Domain.cpp:1167
Base class for model constraints.
Definition: Constraint.h:48
virtual void setCommittedTime(double newTime)
Set the committed time to newTime.
Definition: Domain.cpp:995
Base class for loads over elements.
Definition: ElementalLoad.h:79
Base class for load pattern combinations (1.5*selfWeight+1.0*permanentLoad+1.6*trafficLoad ...
Definition: LoadCombination.h:45
virtual void applyLoad(double pseudoTime)
Apply the loads for the given time pseudoTime.
Definition: Domain.cpp:1015
Domain (mesh and boundary conditions) of the finite element model.
Definition: Domain.h:117
Mesh node.
Definition: Node.h:111
Constraint (essential and natural boundary conditions) container.
Definition: ConstrContainer.h:64
Nodes and elements of a mesh region.
Definition: MeshRegion.h:78
virtual bool removeSFreedom_Constraint(int theNode, int theDOF, int loadPatternTag)
Remove the single freedom constraint from the load pattern identified by the argument.
Definition: Domain.cpp:419
Load over a node.
Definition: NodalLoad.h:83
virtual const Vector & getEigenvalues(void) const
Return the eigenvalues vector.
Definition: Domain.cpp:1171
Finite element mesh.
Definition: Mesh.h:65
int sendData(Communicator &comm)
Send data through the communicator argument.
Definition: Domain.cpp:1396
virtual Graph & getElementGraph(void)
Builds (if necessary) the domain elements graph and returns a reference to it.
Definition: Domain.cpp:971
void removeLoadCombination(LoadCombination *comb)
Removes from the domain the load combination being passed as parameter.
Definition: Domain.cpp:721
virtual bool addMRMFreedom_Constraint(MRMFreedom_Constraint *)
Adds to the domain a multi-freedom multi-retained node constraint.
Definition: Domain.cpp:296
virtual NodeIter & getNodes(void)
Returns an iterator to the node container.
Definition: Domain.cpp:798
virtual int buildEleGraph(Graph &theEleGraph)
Builds the element graph.
Definition: Domain.cpp:1375