XC Open source finite element analysis program
TritrizPtrPnt.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 //TritrizPtrPnt.h
28 //Vector de matrices de puntos
29 
30 #ifndef TRITRIZPTRPNT_H
31 #define TRITRIZPTRPNT_H
32 
33 #include "xc_utils/src/nucleo/EntCmd.h"
34 #include "MatrizPtrPnt.h"
35 #include "TritrizPtrBase.h"
36 #include "utility/matrix/Vector.h"
37 
38 #include "xc_basic/src/matrices/TritrizIndices.h"
39 
40 class ExprAlgebra;
41 class Intervalo1D;
42 class Lista;
43 class RangoIndice;
44 class RangoTritriz;
45 
46 namespace XC{
47 
51 class TritrizPtrPnt: public TritrizPtrBase<MatrizPtrPnt>
52  {
53  protected:
54 
55 
56  friend class MapEsquemas3d;
57  TritrizPtrPnt(const size_t capas= 0);
58  TritrizPtrPnt(const size_t ,const size_t ,const size_t );
59  public:
60  inline virtual ~TritrizPtrPnt(void) {}
61  Pnt *buscaPunto(const int &tag);
62  const Pnt *buscaPunto(const int &tag) const;
63  Pnt *getNearestPnt(const Pos3d &p);
64  const Pnt *getNearestPnt(const Pos3d &p) const;
65 
66  const Cad *getCad(void) const;
67  Cad *getCad(void);
68 
69  std::deque<size_t> CopiaPuntos(const RangoTritriz &,const std::vector<size_t> &,const Vector3d &);
70  TritrizPtrPnt getRangoPuntos(const RangoTritriz &);
71  Pnt *getPunto(const VIndices &i);
72  TritrizPtrPnt getPuntos(const TritrizIndices &);
73  MatrizPtrPnt getPuntos(const MatrizIndices &);
74  TritrizPtrPnt getCeldaPuntos(const size_t &,const size_t &,const size_t &,const TritrizIndices &);
75  MatrizPtrPnt getCeldaPuntos(const size_t &,const size_t &,const MatrizIndices &);
76 
77  Pos3d getCentroide(void) const;
78 
79  void setPnt(const size_t &,const size_t &,const size_t &,const int &);
80  Pnt *getPnt(const size_t &,const size_t &,const size_t &);
81 
82 
83  void Print(std::ostream &os) const;
84  };
85 
86 
87 std::ostream &operator<<(std::ostream &os,const TritrizPtrPnt &);
88 
89 std::vector<size_t> getIdPuntosQuad(const TritrizPtrPnt::const_ref_capa_i_cte &,const size_t &j,const size_t &k);
90 
91 } //end of XC namespace.
92 
93 #endif
std::deque< size_t > CopiaPuntos(const RangoTritriz &, const std::vector< size_t > &, const Vector3d &)
Copy the points from the range being passed as parameter, and places the at the positions of the matr...
Definition: TritrizPtrPnt.cc:193
"Tritriz" of elment pointers.
Definition: TritrizPtrPnt.h:51
TritrizPtrPnt getCeldaPuntos(const size_t &, const size_t &, const size_t &, const TritrizIndices &)
Return the cell builded by the points obtained from the positions of the tritrix that result for addi...
Definition: TritrizPtrPnt.cc:298
Three dimensional scheme container.
Definition: MapEsquemas3d.h:42
Pnt * getNearestPnt(const Pos3d &p)
Returns the point closest to the one being passed as parameter.
Definition: TritrizPtrPnt.cc:150
Punto (KPoint).
Definition: Pnt.h:49
Model geometry manager. Management of geometry entities: points, lines, surfaces, bodies...
Definition: Cad.h:69
TritrizPtrPnt getRangoPuntos(const RangoTritriz &)
Returns the points del rango being passed as parameter.
Definition: TritrizPtrPnt.cc:216
TritrizPtrPnt getPuntos(const TritrizIndices &)
Returns the points which indices are being passed as parameter.
Definition: TritrizPtrPnt.cc:253
Pnt * getPunto(const VIndices &i)
Returns the points which indices are being passed as parameter.
Definition: TritrizPtrPnt.cc:237
Matriz de pointers to puntos.
Definition: MatrizPtrPnt.h:49
TritrizPtrPnt(const size_t capas=0)
Default constructor.
Definition: TritrizPtrPnt.cc:50
const Cad * getCad(void) const
Returns a pointer to objeto Cad.
Definition: TritrizPtrPnt.cc:117
================================================================================
Definition: ContinuaReprComponent.h:34
std::vector< size_t > getIdPuntosQuad(const TritrizPtrPnt::const_ref_capa_i_cte &, const size_t &j, const size_t &k)
Returns the indexes of the points (j,k),(j+1,k),(j+1,k+1),(j,k+1).
Definition: TritrizPtrPnt.cc:375
Pnt * buscaPunto(const int &tag)
Returns (if it exists) a pointer to the point identified by the tag being passed as parameter...
Definition: TritrizPtrPnt.cc:103
"Tritriz" de pointers to objetos.
Definition: TritrizPtrBase.h:55
Pos3d getCentroide(void) const
Returns the centroide del esquema.
Definition: TritrizPtrPnt.cc:82