xc
FEProblem.h
1 //----------------------------------------------------------------------------
2 // XC program; finite element analysis code
3 // for structural analysis and design.
4 //
5 // Copyright (C) Luis Claudio Pérez Tato
6 //
7 // This program derives from OpenSees <http://opensees.berkeley.edu>
8 // developed by the «Pacific earthquake engineering research center».
9 //
10 // Except for the restrictions that may arise from the copyright
11 // of the original program (see copyright_opensees.txt)
12 // XC is free software: you can redistribute it and/or modify
13 // it under the terms of the GNU General Public License as published by
14 // the Free Software Foundation, either version 3 of the License, or
15 // (at your option) any later version.
16 //
17 // This software is distributed in the hope that it will be useful, but
18 // WITHOUT ANY WARRANTY; without even the implied warranty of
19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 // GNU General Public License for more details.
21 //
22 //
23 // You should have received a copy of the GNU General Public License
24 // along with this program.
25 // If not, see <http://www.gnu.org/licenses/>.
26 //----------------------------------------------------------------------------
27 //FEProblem.h
28 
29 #ifndef PROBLEMAEF_H
30 #define PROBLEMAEF_H
31 
32 #include "xc_utils/src/kernel/CommandEntity.h"
33 #include "version.h"
34 #include "preprocessor/Preprocessor.h"
35 #include "solution/ProcSolu.h"
36 #include "post_process/MapFields.h"
37 #include "utility/handler/DataOutputHandler.h"
38 
40 namespace XC {
41 class Domain;
42 class FE_Datastore;
43 class FEM_ObjectBrokerAllClasses;
44 
80 
82 class FEProblem: public CommandEntity
83  {
84  mutable DataOutputHandler::map_output_handlers output_handlers; //Manejadores para salida de resultados.
85  Preprocessor preprocessor;
86  ProcSolu proc_solu;
87  MapFields fields;
88  FE_Datastore *dataBase;
89  static FEM_ObjectBrokerAllClasses theBroker;
90 
91  public:
92  static Domain *theActiveDomain;
93  FEProblem(void);
94  ~FEProblem(void);
95  static inline const std::string &getXCVersion(void)
96  { return gVERSION; }
97  static inline const std::string &getXCVersionShort(void)
98  { return gVERSION_SHORT; }
99  void clearAll(void);
100  FE_Datastore *defineDatabase(const std::string &, const std::string &);
101  inline FE_Datastore *getDataBase(void)
102  { return dataBase; }
103  inline const Preprocessor &getPreprocessor(void) const
104  { return preprocessor; }
105  inline Preprocessor &getPreprocessor(void)
106  { return preprocessor; }
107  inline Domain *getDomain(void)
108  { return preprocessor.getDomain(); }
109  inline const Domain *getDomain(void) const
110  { return preprocessor.getDomain(); }
111  inline const ProcSolu &getSoluProc(void) const
112  { return proc_solu; }
113  inline ProcSolu &getSoluProc(void)
114  { return proc_solu; }
115  inline const MapFields &getFields(void) const
116  { return fields; }
117  inline DataOutputHandler::map_output_handlers *getOutputHandlers(void) const
118  { return &output_handlers; }
119  };
120 
121 inline std::string getXCVersion(void)
122  { return FEProblem::getXCVersion(); }
123 inline std::string getXCVersionShort(void)
124  { return FEProblem::getXCVersionShort(); }
125 
126 } // end of XC namespace
127 
128 #endif
void clearAll(void)
Delete all entities in the FE problem.
Definition: FEProblem.cc:88
Container of field definitions.
Definition: MapFields.h:44
Objects of this class are used in the program to store/restore the geometry and state information in ...
Definition: FE_Datastore.h:81
FE_Datastore * defineDatabase(const std::string &, const std::string &)
Database definition.
Definition: FEProblem.cc:59
Finite element model generation tools.
Definition: Preprocessor.h:58
FEProblem(void)
Default constructor.
Definition: FEProblem.cc:55
Finite element problem.
Definition: FEProblem.h:82
Solution procedure for the finite element problem.
Definition: ProcSolu.h:56
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:34
Domain (mesh and boundary conditions) of the finite element model.
Definition: Domain.h:116
The same as FEM_ObjectBroker?
Definition: FEM_ObjectBrokerAllClasses.h:71