xc
Public Member Functions | Protected Member Functions | Friends | List of all members

Direct integration dynamic analysis. More...

#include <DirectIntegrationAnalysis.h>

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

Public Member Functions

virtual ~DirectIntegrationAnalysis (void)
 Destructor. More...
 
void clearAll (void)
 Clears all object members (constraint handler, analysis model,...). More...
 
int analyze (int numSteps, double dT)
 Performs the analysis. More...
 
int initialize (void)
 
int domainChanged (void)
 Execute the changes following a change in the domain. More...
 
int setNumberer (DOF_Numberer &theNumberer)
 Sets the renumerador to use in the analysis.
 
int setAlgorithm (EquiSolnAlgo &theAlgorithm)
 Sets the solutio algorithm to use in the analysis. More...
 
int setIntegrator (TransientIntegrator &theIntegrator)
 Sets the integrator to use in the analysis. More...
 
int setLinearSOE (LinearSOE &theSOE)
 Sets the linear system of equations to use in the analysis. More...
 
int setConvergenceTest (ConvergenceTest &theTest)
 Sets the convergence test to use in the analysis.
 
int checkDomainChange (void)
 Comprueba si el domain ha cambiado.
 
- Public Member Functions inherited from XC::Analysis
SolutionStrategygetSolutionStrategyPtr (void)
 Returns the solution strategy to which this analysis belongs. More...
 
DomaingetDomainPtr (void)
 Returns a pointer to the domain.
 
const DomaingetDomainPtr (void) const
 Returns a pointer to the domain.
 
ConstraintHandlergetConstraintHandlerPtr (void)
 Returns a pointer to the constraint handler.
 
DOF_NumberergetDOF_NumbererPtr (void) const
 Returns a pointer to the DOF numberer.
 
AnalysisModelgetAnalysisModelPtr (void) const
 Returns a pointer to the analysis model.
 
LinearSOEgetLinearSOEPtr (void) const
 Returns a pointer to the linear system of equations.
 
EigenSOEgetEigenSOEPtr (void) const
 Returns a pointer to the system of equations de eigenvalues.
 
IntegratorgetIntegratorPtr (void)
 Returns, if possible, a pointer al integrator otherwise it returns nullptr.
 
const IntegratorgetIntegratorPtr (void) const
 Returns, if possible, a pointer al integrator otherwise it returns nullptr.
 
IncrementalIntegratorgetIncrementalIntegratorPtr (void)
 Returns, if possible, a pointer al integrator incremental otherwise it returns nullptr.
 
EigenIntegratorgetEigenIntegratorPtr (void)
 Returns, if possible, a pointer al EigenIntegrator otherwise it returns nullptr.
 
LinearBucklingIntegratorgetLinearBucklingIntegratorPtr (void)
 Returns, if possible, a pointer al LinearBucklingIntegrator otherwise it returns nullptr.
 
TransientIntegrator * getTransientIntegratorPtr (void)
 Returns, if possible, a pointer al EigenIntegrator otherwise it returns nullptr.
 
StaticIntegratorgetStaticIntegratorPtr (void)
 Returns, if possible, a pointer al StaticIntegrator otherwise it returns nullptr.
 
SolutionAlgorithmgetSolutionAlgorithmPtr (void)
 
EigenAlgorithmgetEigenSolutionAlgorithmPtr (void)
 Return a pointer to the eigenproblem solution algorithm (if it's not defined it returns nullptr). More...
 
EquiSolnAlgogetEquiSolutionAlgorithmPtr (void)
 Return a pointer to the linear SOE solution algorithm (if it's not defined it returns nullptr). More...
 
DomainDecompAlgogetDomainDecompSolutionAlgorithmPtr (void)
 Return a pointer to the domain decomposition solution algorithm (if it's not defined it returns nullptr). More...
 
virtual ConvergenceTestgetConvergenceTestPtr (void)
 Returns a pointer to the convergence test (only for suitable analysis).
 
virtual const ConvergenceTestgetConvergenceTestPtr (void) const
 Returns a pointer to the convergence test (only for suitable analysis).
 
virtual const DomainSolvergetDomainSolver (void) const
 Returns a pointer to the DomainSolver.
 
virtual DomainSolvergetDomainSolver (void)
 Returns a pointer to the DomainSolver.
 
virtual const SubdomaingetSubdomain (void) const
 Returns a pointer to the subdomain.
 
virtual SubdomaingetSubdomain (void)
 Returns a pointer to the subdomain.
 
virtual int setEigenSOE (EigenSOE &theSOE)
 Sets the system of eigenvalues to use in the analysis.
 
virtual int setIntegrator (Integrator &theNewIntegrator)
 Sets the integrator to use in the analysis.
 
virtual int setAlgorithm (SolutionAlgorithm &theNewAlgorithm)
 Set the solution algorithm to be used in the analysis.
 
void brokeConstraintHandler (const Communicator &, const ID &)
 
void brokeNumberer (const Communicator &, const ID &)
 
void brokeAnalysisModel (const Communicator &, const ID &)
 
void brokeDDLinearSOE (const Communicator &, const ID &)
 
void brokeLinearSOE (const Communicator &, const ID &)
 
void brokeIncrementalIntegrator (const Communicator &, const ID &)
 
void brokeStaticIntegrator (const Communicator &, const ID &)
 
void brokeTransientIntegrator (const Communicator &, const ID &)
 
void brokeDomainDecompAlgo (const Communicator &, const ID &)
 
void brokeEquiSolnAlgo (const Communicator &, const ID &)
 
int getAnalysisResult (void) const
 
- 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.
 
boost::python::dict getPyDict (void) const
 Return a Python dictionary containing 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 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
 

Protected Member Functions

 DirectIntegrationAnalysis (SolutionStrategy *analysis_aggregation)
 Constructor. More...
 
AnalysisgetCopy (void) const
 Virtual constructor.
 
- Protected Member Functions inherited from XC::TransientAnalysis
 TransientAnalysis (SolutionStrategy *)
 Constructor.
 
- Protected Member Functions inherited from XC::Analysis
int newStepDomain (AnalysisModel *theModel, const double &dT=0.0)
 
SolutionProceduregetSolutionProcedure (void)
 
const SolutionProceduregetSolutionProcedure (void) const
 
 Analysis (SolutionStrategy *analysis_aggregation)
 Constructor. More...
 
- 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.
 

Friends

class SolutionProcedure
 

Additional Inherited Members

- Public Types inherited from EntityWithProperties
typedef std::map< std::string, boost::python::object > PythonDict
 
- 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)
 
- Protected Attributes inherited from XC::Analysis
int analysis_result
 Equal to zero if success.
 
SolutionStrategysolution_strategy
 Solution strategy.
 
- Static Protected Attributes inherited from EntityWithOwner
static int verbosity = 1
 Object that owns THIS ONE. More...
 

Detailed Description

Direct integration dynamic analysis.

DirectIntegrationAnalysis is a subclass of TransientAnalysis. It is used to perform a transient analysis using an incremental approach on the Domain.

Constructor & Destructor Documentation

◆ DirectIntegrationAnalysis()

XC::DirectIntegrationAnalysis::DirectIntegrationAnalysis ( SolutionStrategy solution_strategy)
protected

Constructor.

Parameters
solution_strategysolution strategy to which this analysis belongs.

◆ ~DirectIntegrationAnalysis()

XC::DirectIntegrationAnalysis::~DirectIntegrationAnalysis ( void  )
virtual

Destructor.

Does nothing. clearAll() must be invoked if the destructor on the objects in the aggregation need to be invoked.

Member Function Documentation

◆ analyze()

int XC::DirectIntegrationAnalysis::analyze ( int  numSteps,
double  dT 
)
virtual

Performs the analysis.

Parameters
numStepsnumber of steps in the analysis.
dTtime increment.

Invoked to perform a transient analysis on the FE_Model. The method checks to see if the domain has changed before it performs the analysis. The type of analysis performed, depends on the type of the objects in the analysis aggregation. If any of the methods invoked returns a negative number, an error message is printed, {revertToLastCommit()} is invoked on the Domain, and a negative number is immediately returned. Returns a \(0\) if the algorithm is successful.

Implements XC::TransientAnalysis.

◆ clearAll()

void XC::DirectIntegrationAnalysis::clearAll ( void  )
virtual

Clears all object members (constraint handler, analysis model,...).

Will invoke the destructor on all the objects in the aggregation. NOTE this means they must have been constructed using new(), otherwise a segmentation fault can occur.

Reimplemented from XC::Analysis.

◆ domainChanged()

int XC::DirectIntegrationAnalysis::domainChanged ( void  )
virtual

Execute the changes following a change in the domain.

This is a method invoked by a domain which indicates to the analysis that the domain has changed. The method invokes the following:

  • It invokes clearAll() on theModel which causes the AnalysisModel to clear out its list of FE_Elements and DOF_Groups, and clearAll() on theHandler.
  • It then invokes handle() on theHandler. This causes the constraint handler to recreate the appropriate FE_Element and DOF_Groups to perform the analysis subject to the boundary conditions in the modified domain.
  • It then invokes number() on theNumberer. This causes the DOF numberer to assign equation numbers to the individual dof's. Once the equation numbers have been set the numberer then invokes setID() on all the FE_Elements in the model. Finally the numberer invokes setNumEqn() on the model.
  • It then invokes domainChanged() on theIntegrator and theAlgorithm to inform these objects that changes have occurred in the model.
  • It invokes {setSize(theModel.getDOFGraph())} on {theSOE} which causes the system of equation to determine its size based on the connectivity of the dofs in the analysis model.
  • Finally it invokes domainChanged() on theIntegrator and theAlgorithm. Returns \(0\) if successful. At any stage above, if an error occurs the method is stopped, a warning message is printed and a negative number is returned.

Implements XC::Analysis.

◆ setAlgorithm()

int XC::DirectIntegrationAnalysis::setAlgorithm ( EquiSolnAlgo theNewAlgorithm)

Sets the solutio algorithm to use in the analysis.

To change the algorithm between analysis. It first invokes the destructor on the old SolutionAlgorithm object associated with the analysis. It then sets the SolutionAlgorithm associated with the analysis to be newAlgorithm and sets the links for this object by invoking setLinks(). Checks then to see if the domain has changed, if true it invokes {domainChanged()}, otherwise it invokes domainChanged() on the new SolutionAlgorithm. Returns \(0\) if successful, a warning message and a negative number if not.

◆ setIntegrator()

int XC::DirectIntegrationAnalysis::setIntegrator ( TransientIntegrator &  theNewIntegrator)

Sets the integrator to use in the analysis.

To change the integration scheme between analysis. It first invokes the destructor on the old Integrator object associated with the analysis. It then sets the SolutionAlgorithm associated with the analysis to be newAlgorithm and sets the links for this object by invoking setLinks(). It also invokes setLinks() on the ConstraintHandler and SolutionAlgorithm objects. Checks then to see if the domain has changed, if true it invokes domainChanged(), otherwise it invokes {domainChanged()} on the new Integrator. Returns \(0\) if successful, a warning message and a negative number if not.

◆ setLinearSOE()

int XC::DirectIntegrationAnalysis::setLinearSOE ( LinearSOE theNewSOE)
virtual

Sets the linear system of equations to use in the analysis.

To change the linear system of equation object between analysis. It first invokes the destructor on the old LinearSOE object associated with the analysis. It then sets the SolutionAlgorithm associated with the analysis to be newSOE. links for this object by invoking setLinks(). It then invokes setLinks() on the ConstraintHandler and SolutionAlgorithm objects. Checks then to see if the domain has changed, if true it invokes domainChanged(), otherwise it invokes {setSize()} on the new LinearSOE. Returns \(0\) if successful, a warning message and a negative number if not.

Reimplemented from XC::Analysis.


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