xc
SolutionProcedure.h
1 // -*-c++-*-
2 //----------------------------------------------------------------------------
3 // XC program; finite element analysis code
4 // for structural analysis and design.
5 //
6 // Copyright (C) Luis C. Pérez Tato
7 //
8 // This program derives from OpenSees <http://opensees.berkeley.edu>
9 // developed by the «Pacific earthquake engineering research center».
10 //
11 // Except for the restrictions that may arise from the copyright
12 // of the original program (see copyright_opensees.txt)
13 // XC is free software: you can redistribute it and/or modify
14 // it under the terms of the GNU General Public License as published by
15 // the Free Software Foundation, either version 3 of the License, or
16 // (at your option) any later version.
17 //
18 // This software is distributed in the hope that it will be useful, but
19 // WITHOUT ANY WARRANTY; without even the implied warranty of
20 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 // GNU General Public License for more details.
22 //
23 //
24 // You should have received a copy of the GNU General Public License
25 // along with this program.
26 // If not, see <http://www.gnu.org/licenses/>.
27 //----------------------------------------------------------------------------
28 //SolutionProcedure.h
29 
30 #ifndef PROCSOLU_H
31 #define PROCSOLU_H
32 
33 #include "utility/kernel/CommandEntity.h"
34 #include "SolutionProcedureControl.h"
35 
36 
37 namespace XC {
38 
39 class SolutionAlgorithm;
40 class Integrator;
41 class ConstraintHandler;
42 class DOF_Numberer;
43 class SystemOfEqn;
44 class Analysis;
45 class FEProblem;
46 
48 
58  {
59  private:
60  SolutionProcedureControl solu_control;
61  Analysis *theAnalysis;
62  protected:
63  friend class FEProblem;
64 
65  void free_analysis(void);
66  bool alloc_analysis(const std::string &,const std::string &,const std::string &);
67  void copy_analysis(Analysis *);
68 
69  void free_mem(void);
70 
71  void revertToStart(void);
72  FEProblem *getFEProblem(void);
73  const FEProblem *getFEProblem(void) const;
74 
78  public:
79  ~SolutionProcedure(void);
80  void clearAll(void);
81 
82  Domain *getDomainPtr(void);
83  const Domain *getDomainPtr(void) const;
85  const Integrator *getIntegratorPtr(void) const;
86  const DomainSolver *getDomainSolverPtr(void) const;
88  const Subdomain *getSubdomainPtr(void) const;
91  const SolutionProcedureControl &getSoluControl(void) const;
92  Analysis *getAnalysisPtr(void);
93  const Analysis *getAnalysisPtr(void) const;
94  Analysis &getAnalysis(void);
95  Analysis &newAnalysis(const std::string &,const std::string &,const std::string &);
96 
97  DataOutputHandler::map_output_handlers *getOutputHandlers(void) const;
98  };
99 
100 } // end of XC namespace
101 
102 #endif
Domain enclosed in another domain.
Definition: Subdomain.h:102
~SolutionProcedure(void)
Destructor.
Definition: SolutionProcedure.cc:174
Analysis * getAnalysisPtr(void)
Return a pointer to the analysis.
Definition: SolutionProcedure.cc:272
SolutionProcedureControl & getSoluControl(void)
Return a reference to the objects that control the solution procedure.
Definition: SolutionProcedure.cc:263
Analysis & getAnalysis(void)
Return a reference to the analysis object.
Definition: SolutionProcedure.cc:280
Domain * getDomainPtr(void)
Return a pointer to the domain.
Definition: SolutionProcedure.cc:184
Integrator * getIntegratorPtr(void)
Return a pointer to the integrator.
Definition: SolutionProcedure.cc:200
Base class for the object that perform the analysis.
Definition: Analysis.h:117
SolutionProcedure(FEProblem *owr)
Default constructor.
Definition: SolutionProcedure.cc:145
Solution procedure for the finite element problem.
Definition: SolutionProcedure.h:57
Analysis & newAnalysis(const std::string &, const std::string &, const std::string &)
Defines type of analysis (static, dynamic,...)
Definition: SolutionProcedure.cc:132
DataOutputHandler::map_output_handlers * getOutputHandlers(void) const
Return a pointer to the output handlers.
Definition: SolutionProcedure.cc:218
Objet that can execute python scripts.
Definition: CommandEntity.h:40
const Subdomain * getSubdomainPtr(void) const
Return a pointer to the subdomain.
Definition: SolutionProcedure.cc:244
Base class for the objects that performs the integration of physical properties over the domain to fo...
Definition: Integrator.h:100
Finite element problem.
Definition: FEProblem.h:81
Container for the objects that control the solution procedure.
Definition: SolutionProcedureControl.h:45
SolutionProcedure & operator=(const SolutionProcedure &)
Assignment operator.
Definition: SolutionProcedure.cc:154
const DomainSolver * getDomainSolverPtr(void) const
Return a pointer to the DomainSolver.
Definition: SolutionProcedure.cc:226
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
used to solve a system of equations and to do static condensation operations on the linear system of ...
Definition: DomainSolver.h:83
void revertToStart(void)
Return the model to their initial state.
Definition: SolutionProcedure.cc:163
Domain (mesh and boundary conditions) of the finite element model.
Definition: Domain.h:117
void clearAll(void)
Delete all entities in the FE problem.
Definition: SolutionProcedure.cc:167