xc
AnalysisAggregationMap.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 //AnalysisAggregationMap.h
28 
29 #ifndef MAPSOLUMETHOD_H
30 #define MAPSOLUMETHOD_H
31 
32 #include "xc_utils/src/kernel/CommandEntity.h"
33 #include "utility/handler/DataOutputHandler.h"
34 #include "AnalysisAggregation.h"
35 
36 namespace XC {
37 
38 class ProcSoluControl;
39 class ModelWrapper;
40 
44 class AnalysisAggregationMap: public CommandEntity
45  {
46  private:
47  typedef std::map<std::string,AnalysisAggregation> map_solu_method;
48  typedef map_solu_method::iterator iterator;
49  typedef map_solu_method::const_iterator const_iterator;
50 
51  map_solu_method solu_methods;
52  public:
54 
55  inline iterator begin()
56  { return solu_methods.begin(); }
57  inline iterator end()
58  { return solu_methods.end(); }
59  inline const_iterator begin() const
60  { return solu_methods.begin(); }
61  inline const_iterator end() const
62  { return solu_methods.end(); }
63 
64  inline bool empty(void) const
65  { return solu_methods.empty(); }
66  inline size_t size(void) const
67  { return solu_methods.size(); }
68 
69  bool AnalysisAggregationExists(const std::string &) const;
71  const AnalysisAggregation *getAnalysisAggregation(const std::string &) const;
72  AnalysisAggregation *getAnalysisAggregation(const std::string &);
73 
74  AnalysisAggregation &newAnalysisAggregation(const std::string &,const std::string &);
75 
76  void revertToStart(void);
77  void clearAll(void);
78  };
79 
80 } // end of XC namespace
81 
82 #endif
Solution procedure for the finite element problem.
Definition: AnalysisAggregation.h:89
bool AnalysisAggregationExists(const std::string &) const
Return true if the solution method exists.
Definition: AnalysisAggregationMap.cc:44
AnalysisAggregation & newAnalysisAggregation(const std::string &, const std::string &)
Creates a new solution method with the code being passed as parameter.
Definition: AnalysisAggregationMap.cc:83
AnalysisAggregationMap(ProcSoluControl *owr)
Default constructor.
Definition: AnalysisAggregationMap.cc:40
void revertToStart(void)
Returns todo a su estado original.
Definition: AnalysisAggregationMap.cc:92
Wrapper for the finite element model "as seen" from the solver.
Definition: ModelWrapper.h:58
Container for the objects that control the solution procedure.
Definition: ProcSoluControl.h:44
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:34
Solution methods container.
Definition: AnalysisAggregationMap.h:44
const AnalysisAggregation * getAnalysisAggregation(const std::string &) const
Returns a const pointer to the solution method.
Definition: AnalysisAggregationMap.cc:51
void clearAll(void)
Clears all.
Definition: AnalysisAggregationMap.cc:99
AnalysisAggregation & createAnalysisAggregation(const std::string &, ModelWrapper *)
Creates a new solution method with the code being passed as parameter.
Definition: AnalysisAggregationMap.cc:72