52 #ifndef AnalysisModel_h 53 #define AnalysisModel_h 68 #include <utility/actor/actor/MovableObject.h> 69 #include "xc_utils/src/kernel/CommandEntity.h" 70 #include "solution/graph/graph/DOF_Graph.h" 71 #include "solution/graph/graph/DOF_GroupGraph.h" 72 #include "utility/tagged/storage/ArrayOfTaggedObjects.h" 73 #include "solution/analysis/model/FE_EleIter.h" 74 #include "solution/analysis/model/FE_EleConstIter.h" 75 #include "solution/analysis/model/DOF_GrpIter.h" 76 #include "solution/analysis/model/DOF_GrpConstIter.h" 82 class LagrangeSFreedom_FE;
83 class LagrangeMFreedom_FE;
84 class LagrangeMRMFreedom_FE;
85 class PenaltySFreedom_FE;
86 class PenaltyMFreedom_FE;
87 class PenaltyMRMFreedom_FE;
88 class MFreedom_ConstraintBase;
89 class TransformationFE;
91 class LagrangeDOF_Group;
92 class TransformationDOF_Group;
95 class FEM_ObjectBroker;
96 class ConstraintHandler;
97 class TransformationConstraintHandler;
98 class RayleighDampingFactors;
149 mutable bool updateGraphs;
161 virtual int newStepDomain(
double dT =0.0);
211 virtual Graph &getDOFGraph(
void);
213 virtual const Graph &getDOFGraph(
void)
const;
228 virtual void setNumEigenvectors(
int numEigenvectors);
229 virtual void setEigenvector(
int mode,
const Vector &);
virtual void setDisp(const Vector &disp)
Sets the values of the displacement of the nodes.
Definition: AnalysisModel.cpp:681
virtual int revertDomainToLastCommit(void)
Returns to the last commited state.
Definition: AnalysisModel.cpp:899
virtual LagrangeMFreedom_FE * createLagrangeMFreedom_FE(const int &, MFreedom_Constraint &, DOF_Group &, const double &)
Method to create a LagrangeMFreedom_FE object and append it to the model.
Definition: AnalysisModel.cpp:244
virtual int getNumEqn(void) const
Returns the number of DOFs in the model which have been assigned an equation number.
Definition: AnalysisModel.cpp:599
LagrangeMRMFreedom_FE is a subclass of FE_Element which handles MRMFreedom_Constraints using the Lagr...
Definition: LagrangeMRMFreedom_FE.h:60
Iterator over DEF groups.
Definition: DOF_GrpConstIter.h:41
Float vector abstraction.
Definition: Vector.h:93
Base class for mult-freedom constraints.
Definition: MFreedom_ConstraintBase.h:57
A LagrangeDOF_Group object is instantiated by a LagrangeConstraintHandler for every constrained node ...
Definition: LagrangeDOF_Group.h:82
virtual bool addFE_Element(FE_Element *theFE_Ele)
Adds the FE_Element pointed to by theElement to the model.
Definition: AnalysisModel.cpp:169
virtual double getCurrentDomainTime(void)
To get the current time in the Domain.
Definition: AnalysisModel.cpp:922
virtual void setEigenvalues(const Vector &)
Informs the domain of the obtained eigenvalues.
Definition: AnalysisModel.cpp:769
ConstraintHandlers enforce the single and multi freedom constraints that exist in the domain by creat...
Definition: ConstraintHandler.h:92
virtual void setNumEqn(int)
Sets the value of the number of equations in the model.
Definition: AnalysisModel.cpp:590
virtual Graph & getDOFGroupGraph(void)
Returns the connectivity of the DOF_Group objects in the model.
Definition: AnalysisModel.cpp:620
Object that can move between processes.
Definition: MovableObject.h:99
virtual void setCurrentDomainTime(double newTime)
To set the current time in the Domain to be newTime.
Definition: AnalysisModel.cpp:942
] at the locations corresponding to the constrained degree-of-freedom specified by the SFreedom_Const...
Definition: LagrangeSFreedom_FE.h:93
Base class for the object that perform the analysis.
Definition: Analysis.h:116
Degrees of freedom group graph.
Definition: DOF_GroupGraph.h:82
Iterator over DOF groups.
Definition: DOF_GrpIter.h:72
virtual void setAccel(const Vector &vel)
Sets the values of the acceleration of the nodes.
Definition: AnalysisModel.cpp:709
FEM_ObjectBroker is is an object broker class for the finite element method.
Definition: FEM_ObjectBroker.h:145
AnalysisModel * getCopy(void) const
Virtual constructor.
Definition: AnalysisModel.cpp:142
virtual PenaltySFreedom_FE * createPenaltySFreedom_FE(const int &, SFreedom_Constraint &, const double &)
Method to create a PenaltySFreedom_FE object and append it to the model.
Definition: AnalysisModel.cpp:272
Domain * getDomainPtr(void)
Returns a pointer to the associated Domain, that is the Domain set when the links were set...
Definition: AnalysisModel.cpp:986
virtual void clearAll(void)
Clears from the model all FE_Element and DOF_Group objects.
Definition: AnalysisModel.cpp:512
AnalysisModel & operator=(const AnalysisModel &)
Assignment operator.
Definition: AnalysisModel.cpp:126
ArrayOfTaggedObjects is a storage class.
Definition: ArrayOfTaggedObjects.h:91
virtual LagrangeSFreedom_FE * createLagrangeSFreedom_FE(const int &, SFreedom_Constraint &, DOF_Group &, const double &)
Create an LagrangeSFreedom_FE object and append it to the model.
Definition: AnalysisModel.cpp:230
virtual FE_EleConstIter & getConstFEs() const
Returns a {FE_EleConstIter} for the FE_Elements of the model.
Definition: AnalysisModel.cpp:569
Base class for the finite elements.
Definition: Element.h:109
PenaltyMRMFreedom_FE is a subclass of FE_Element which handles MRMFreedom_Constraints using the penal...
Definition: PenaltyMRMFreedom_FE.h:78
virtual void setModalParticipationFactors(const Vector &)
Informs the domain of the obtained modal participation factors.
Definition: AnalysisModel.cpp:773
Wrapper for the finite element model "as seen" from the solver.
Definition: ModelWrapper.h:58
] at the locations corresponding to the constrained degree-of-freedoms specified by the MFreedom_Co...
Definition: LagrangeMFreedom_FE.h:102
Container for FE_Element and DOF_Group objects created by the constraint handler. ...
Definition: AnalysisModel.h:133
virtual DOF_Group * getDOF_GroupPtr(int tag)
Returns a pointer to the DEF group with the tag beign passed as parameter.
Definition: AnalysisModel.cpp:539
Single freedom constraint.
Definition: SFreedom_Constraint.h:84
The Graph class provides the abstraction of a graph.
Definition: Graph.h:93
Base class for the objects that performs the integration of physical properties over the domain to fo...
Definition: Integrator.h:99
virtual FE_Element * createTransformationFE(const int &, Element *, const std::set< int > &, std::set< FE_Element *> &)
Create a TransformationFE_Element object and append it to the model.
Definition: AnalysisModel.cpp:311
virtual int sendSelf(CommParameters &)
Returns .
Definition: AnalysisModel.cpp:1012
A DOF_Group object is instantiated by the ConstraintHandler for every unconstrained node in the domai...
Definition: DOF_Group.h:106
virtual PenaltyMRMFreedom_FE * createPenaltyMRMFreedom_FE(const int &, MRMFreedom_Constraint &, const double &)
Create a PenaltyMRMFreedom_FE object and append it to the model.
Definition: AnalysisModel.cpp:298
Rayleigh damping factors.
Definition: RayleighDampingFactors.h:58
virtual int updateDomain(void)
Method which invokes update() on the domain.
Definition: AnalysisModel.cpp:806
virtual int recvSelf(const CommParameters &)
Returns .
Definition: AnalysisModel.cpp:1016
Degrees of freedom graph.
Definition: DOF_Graph.h:85
Iterator over the finite element of the model.
Definition: FE_EleIter.h:76
Multiple retained nodes constraint.
Definition: MRMFreedom_Constraint.h:58
virtual void incrAccel(const Vector &vel)
Sets the values of the acceleration increment of the nodes.
Definition: AnalysisModel.cpp:751
Finite element as seen by analysis.
Definition: FE_Element.h:107
virtual void setResponse(const Vector &, const Vector &, const Vector &)
Sets the values of the displacement, velocity and acceleration of the nodes.
Definition: AnalysisModel.cpp:663
virtual PenaltyMFreedom_FE * createPenaltyMFreedom_FE(const int &, MFreedom_Constraint &, const double &)
Create a PenaltyMFreedom_FE object and append it to the model.
Definition: AnalysisModel.cpp:285
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:34
virtual void incrVel(const Vector &vel)
Sets the values of the velocity increment of the nodes.
Definition: AnalysisModel.cpp:737
virtual ~AnalysisModel(void)
Destructor.
Definition: AnalysisModel.cpp:153
Communication parameters between processes.
Definition: CommParameters.h:65
virtual FE_EleIter & getFEs()
Returns an {FE_EleIter} for the FE_Elements of the model.
Definition: AnalysisModel.cpp:561
virtual FE_Element * createFE_Element(const int &, Element *)
Creates a FE_Element and appends it to the model.
Definition: AnalysisModel.cpp:202
Multi-freedom constraint.
Definition: MFreedom_Constraint.h:110
PenaltySFreedom_FE is a subclass of SFreedom_FE which handles SFreedom_Constraints using the penalty ...
Definition: PenaltySFreedom_FE.h:86
virtual void incrDisp(const Vector &disp)
Sets the values of the displacement increment of the nodes.
Definition: AnalysisModel.cpp:723
virtual int getNumDOF_Groups(void) const
Returns the umber of DOF_Group objects added to the model.
Definition: AnalysisModel.cpp:527
virtual LagrangeDOF_Group * createLagrangeDOF_Group(const int &, SFreedom_Constraint *)
Appends to the model the Lagrange DOFs for the single freedom constraint being passed as parameter...
Definition: AnalysisModel.cpp:415
Domain (mesh and boundary conditions) of the finite element model.
Definition: Domain.h:116
Mesh node.
Definition: Node.h:110
virtual void setVel(const Vector &vel)
Sets the values of the velocity of the nodes.
Definition: AnalysisModel.cpp:695
Const iterator over the finite elements of the model.
Definition: FE_EleConstIter.h:41
PenaltyMFreedom_FE is a subclass of FE_Element which handles MFreedom_Constraints using the penalty m...
Definition: PenaltyMFreedom_FE.h:89
virtual bool addDOF_Group(DOF_Group *theDOF_Grp)
Method to add an DOF to the model.
Definition: AnalysisModel.cpp:363
AnalysisModel(ModelWrapper *owr=nullptr)
Constructor.
Definition: AnalysisModel.cpp:98
virtual int commitDomain(void)
Commits domain state.
Definition: AnalysisModel.cpp:869
virtual LagrangeMRMFreedom_FE * createLagrangeMRMFreedom_FE(const int &, MRMFreedom_Constraint &, DOF_Group &, const double &)
Method to create a LagrangeMRMFreedom_FE object and append it to the model.
Definition: AnalysisModel.cpp:258
virtual void applyLoadDomain(double newTime)
Method which invokes {applyLoad(timeStep, loadFactor)} on the domain.
Definition: AnalysisModel.cpp:791