xc
MaterialHandler.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 //MaterialHandler.h
29 
30 #ifndef MATERIALLOADER_H
31 #define MATERIALLOADER_H
32 
33 #include "PrepHandler.h"
34 #include <map>
35 
36 namespace XC {
37 class Material;
38 class SectionGeometry;
39 class InteractionDiagram;
40 class InteractionDiagram2d;
41 class InteractionDiagramData;
42 
47  {
48  public:
49  typedef std::map<std::string,Material *> map_materials;
50  typedef map_materials::const_iterator const_iterator;
51  typedef map_materials::iterator iterator;
52 
53  typedef std::map<std::string,SectionGeometry *> map_geom_secc;
54  typedef map_geom_secc::const_iterator const_geom_secc_iterator;
55  typedef map_geom_secc::iterator geom_secc_iterator;
56 
57  typedef std::map<std::string,InteractionDiagram *> map_interaction_diagram;
58  typedef map_interaction_diagram::const_iterator const_interaction_diagram_iterator;
59  typedef map_interaction_diagram::iterator interaction_diagram_iterator;
60 
61  typedef std::map<std::string,InteractionDiagram2d *> map_interaction_diagram2d;
62  typedef map_interaction_diagram2d::const_iterator const_interaction_diagram2d_iterator;
63  typedef map_interaction_diagram2d::iterator interaction_diagram2d_iterator;
64  private:
65  map_materials materials;
66  int tag_mat;
67  map_geom_secc sections_geometry;
68  map_interaction_diagram interaction_diagrams;
69  map_interaction_diagram2d interaction_diagrams2D;
70  protected:
71  friend class ElementHandler;
72  public:
74  ~MaterialHandler(void);
75  void clearAll(void);
76 
77  const map_materials &Map(void) const;
78  const_iterator begin(void) const;
79  const_iterator end(void) const;
80  iterator begin(void);
81  iterator end(void);
82  const_iterator find(const std::string &str) const;
83  iterator find(const std::string &str);
84  Material *find_ptr(const std::string &str);
85  const Material *find_ptr(const std::string &nmb) const;
86  Material *find_ptr(const int &tag);
87  const Material *find_ptr(const int &tag) const;
88  std::string getName(const int &tag) const;
89  std::string getSectionGeometryName(const SectionGeometry *) const;
90  SectionGeometry *find_ptr_section_geometry(const std::string &nmb);
91  const SectionGeometry *find_ptr_section_geometry(const std::string &nmb) const;
92  InteractionDiagram *find_ptr_interaction_diagram(const std::string &nmb);
93  const InteractionDiagram *find_ptr_interaction_diagram(const std::string &nmb) const;
95  const InteractionDiagram2d *find_ptr_interaction_diagram2d(const std::string &nmb) const;
96  bool materialExists(const std::string &nmb) const;
97  bool materialExists(const int &tag) const;
98  bool sectionGeometryExists(const std::string &nmb) const;
99  bool InteractionDiagramExists(const std::string &nmb) const;
100  bool InteractionDiagramExists2d(const std::string &nmb) const;
101  Material *newMaterial(const std::string &,const std::string &);
102  Material &getMaterial(const std::string &);
103  Material &getMaterial(const int &);
104  SectionGeometry *newSectionGeometry(const std::string &);
105  SectionGeometry &getSectionGeometry(const std::string &);
106  InteractionDiagram *newInteractionDiagram(const std::string &);
107  InteractionDiagram *calcInteractionDiagram(const std::string &,const InteractionDiagramData &diag_data);
108  InteractionDiagram &getInteractionDiagram(const std::string &);
109  InteractionDiagram2d *new2DInteractionDiagram(const std::string &);
110  InteractionDiagram2d *calcInteractionDiagramNMy(const std::string &,const InteractionDiagramData &diag_data);
111  InteractionDiagram2d *calcInteractionDiagramNMz(const std::string &,const InteractionDiagramData &diag_data);
112  InteractionDiagram2d &getNMzInteractionDiagram(const std::string &);
113 
114  std::set<std::string> getMaterialNames(void) const;
115  boost::python::list getMaterialNamesPy(void) const;
116 
117 
118  static void setCreepOn(void);
119  static void setCreepOff(void);
120  static void setCreepDt(const double &);
121  static double getCreepDt(void);
122  };
123 
124 } // end of XC namespace
125 
126 #endif
InteractionDiagram * newInteractionDiagram(const std::string &)
New interaction diagram.
Definition: MaterialHandler.cc:611
Material * newMaterial(const std::string &, const std::string &)
Defines a new material.
Definition: MaterialHandler.cc:564
boost::python::list getMaterialNamesPy(void) const
Return the names of the materials in a Python list.
Definition: MaterialHandler.cc:1020
SectionGeometry * find_ptr_section_geometry(const std::string &nmb)
Si encuentra el material which name is being passed as parameter returns a pointer al mismo...
Definition: MaterialHandler.cc:887
const_iterator find(const std::string &str) const
Si encuentra el material which name is being passed as parameter returns an iterator which points to ...
Definition: MaterialHandler.cc:796
const_iterator begin(void) const
Returns an iterator which points to principio de la lista.
Definition: MaterialHandler.cc:783
bool materialExists(const std::string &nmb) const
True if material exists.
Definition: MaterialHandler.cc:988
InteractionDiagram2d * find_ptr_interaction_diagram2d(const std::string &nmb)
Si encuentra el material which name is being passed as parameter returns a pointer al mismo...
Definition: MaterialHandler.cc:931
InteractionDiagram & getInteractionDiagram(const std::string &)
Returns a reference to the interaction diagram which identifier is being passed as parameter...
Definition: MaterialHandler.cc:980
bool InteractionDiagramExists(const std::string &nmb) const
Returns true if the 3D interaction diagram identified by the string being passed as parameter exists...
Definition: MaterialHandler.cc:1002
Finite element model generation tools.
Definition: Preprocessor.h:59
bool sectionGeometryExists(const std::string &nmb) const
Returns true if the section geometry identified by the string being passed as parameter exists...
Definition: MaterialHandler.cc:997
Base class for materials.
Definition: Material.h:93
InteractionDiagram * calcInteractionDiagram(const std::string &, const InteractionDiagramData &diag_data)
New interaction diagram.
Definition: MaterialHandler.cc:649
bool InteractionDiagramExists2d(const std::string &nmb) const
Returns true if the 2D interaction diagram identified by the string being passed as parameter exists...
Definition: MaterialHandler.cc:1007
Element creation manager.
Definition: ElementHandler.h:40
const map_materials & Map(void) const
Returns a reference to the material container.
Definition: MaterialHandler.cc:779
Base class for the preprocessor objects that create model entities: nodes, elements, loads, etc.
Definition: PrepHandler.h:47
@ingroup MATSCCDiagInt
Definition: InteractionDiagramData.h:42
Material * find_ptr(const std::string &str)
Si encuentra el material which name is being passed as parameter returns a pointer al mismo...
Definition: MaterialHandler.cc:805
InteractionDiagram * find_ptr_interaction_diagram(const std::string &nmb)
Si encuentra el material which name is being passed as parameter returns a pointer al mismo...
Definition: MaterialHandler.cc:909
InteractionDiagram2d * new2DInteractionDiagram(const std::string &)
New 2d interaction diagram.
Definition: MaterialHandler.cc:630
std::string getName(const int &tag) const
Returns the name that corresponds to the material tag being passed as parameter.
Definition: MaterialHandler.cc:856
SectionGeometry & getSectionGeometry(const std::string &)
Returns a reference to the section geometry which identifier is being passed as parameter.
Definition: MaterialHandler.cc:971
MaterialHandler(Preprocessor *owr)
Default constructor.
Definition: MaterialHandler.cc:208
@ingroup MATSCCDiagInt
Definition: InteractionDiagram.h:49
Material handler (definition, searching,...).
Definition: MaterialHandler.h:46
Material & getMaterial(const std::string &)
Returns a reference to the material which identifier is being passed as parameter.
Definition: MaterialHandler.cc:953
InteractionDiagram2d * calcInteractionDiagramNMz(const std::string &, const InteractionDiagramData &diag_data)
New 2D interaction diagram (N-Mz)
Definition: MaterialHandler.cc:725
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
std::set< std::string > getMaterialNames(void) const
Return the names of the materials.
Definition: MaterialHandler.cc:1011
std::string getSectionGeometryName(const SectionGeometry *) const
Returns the name that corresponds to the section geometry argument.
Definition: MaterialHandler.cc:870
@ingroup MATSCCDiagInt
Definition: InteractionDiagram2d.h:45
InteractionDiagram2d * calcInteractionDiagramNMy(const std::string &, const InteractionDiagramData &diag_data)
New 2D interaction diagram (N-My)
Definition: MaterialHandler.cc:687
Cross section geometry.
Definition: SectionGeometry.h:65
SectionGeometry * newSectionGeometry(const std::string &)
Defines a new material.
Definition: MaterialHandler.cc:591
const_iterator end(void) const
Returns an iterator apuntando después of the final de la lista.
Definition: MaterialHandler.cc:786
Definition: __init__.py:1