XC Open source finite element analysis program
SetBase.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 //SetBase.h
28 
29 #ifndef SETBASE_H
30 #define SETBASE_H
31 
35 
36 #include "preprocessor/EntMdlrBase.h"
37 #include "preprocessor/MeshingParams.h"
38 
39 class Lista;
40 
41 namespace XC {
42 class SFreedom_Constraint;
43 class Face;
44 class Body;
45 class UniformGrid;
46 
50 class SetBase: public EntMdlrBase
51  {
52  public:
53  SetBase(const std::string &nmb="",Preprocessor *preprocessor= nullptr);
54  inline virtual ~SetBase(void)
55  {}
56  virtual void genMesh(meshing_dir dm);
57  virtual void fix(const SFreedom_Constraint &);
58 
59  virtual std::set<int> getNodeTags(void) const= 0;
60  virtual std::set<int> getElementTags(void) const= 0;
61  const ID &getIdNodeTags(void) const;
62  const ID &getIdElementTags(void) const;
63 
64 
65  virtual bool In(const Node *) const= 0;
66  virtual bool In(const Element *) const= 0;
67  virtual bool In(const Pnt *) const;
68  virtual bool In(const Edge *) const;
69  virtual bool In(const Face *) const;
70  virtual bool In(const Body *) const;
71  virtual bool In(const UniformGrid *) const;
72 
73  void resetTributarias(void) const;
74  void calculaLongsTributarias(bool initialGeometry= true) const;
75  void calculaAreasTributarias(bool initialGeometry= true) const;
76  void calculaVolsTributarios(bool initialGeometry= true) const;
77 
78  virtual size_t getNumberOfNodes(void) const= 0;
79  virtual size_t getNumberOfElements(void) const= 0;
80  };
81 
82 } //end of XC namespace
83 #endif
Base class for one-dimensional geometry objects.
Definition: Edge.h:46
virtual void genMesh(meshing_dir dm)
Generates a finite element mesh from the set components.
Definition: SetBase.cc:46
Surface.
Definition: Face.h:41
virtual void fix(const SFreedom_Constraint &)
Impone desplazamiento nulo en los nodos de this set.
Definition: SetBase.cc:52
Six-faced solid.
Definition: Body.h:64
void calculaLongsTributarias(bool initialGeometry=true) const
Calcula las longitudes tributarias correspondientes a cada nodo of the elements of the set...
Definition: SetBase.cc:135
Mesh node.
Definition: Node.h:99
void calculaAreasTributarias(bool initialGeometry=true) const
Calcula las áreas tributarias correspondientes a cada nodo of the elements of the set...
Definition: SetBase.cc:159
const ID & getIdNodeTags(void) const
Returns the tags of the nodes en un vector de enteros.
Definition: SetBase.cc:58
const ID & getIdElementTags(void) const
Returns the tags of the elements en un vector de enteros.
Definition: SetBase.cc:74
void calculaVolsTributarios(bool initialGeometry=true) const
Calcula los volúmenes tributarios correspondientes a cada nodo of the elements of the set...
Definition: SetBase.cc:183
Base calass for the finite elements.
Definition: Element.h:104
Finite element model generation tools.
Definition: Preprocessor.h:58
Definition: ID.h:77
Punto (KPoint).
Definition: Pnt.h:49
Base class of the preprocessor objects.
Definition: EntMdlrBase.h:45
SetBase(const std::string &nmb="", Preprocessor *preprocessor=nullptr)
Constructor.
Definition: SetBase.cc:42
Single freedom constraint.
Definition: SFreedom_Constraint.h:79
Uniform mesh. Uniform node distributionn on x, y and z.
Definition: UniformGrid.h:40
================================================================================
Definition: ContinuaReprComponent.h:34
void resetTributarias(void) const
Reset tributary areas (or lengths, or volumes) for the nodes that are connected to the set elements...
Definition: SetBase.cc:111
Base de las clases Set y SetEstruct.
Definition: SetBase.h:50