XC Open source finite element analysis program
InteractionDiagram.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 //InteractionDiagram.h
28 
29 #ifndef INTERACTION_DIAGRAM_H
30 #define INTERACTION_DIAGRAM_H
31 
32 #include "xc_utils/src/geom/d2/Triedro3d.h"
33 #include <set>
34 #include <deque>
35 #include "ClosedTriangleMesh.h"
36 
37 class Triang3dMesh;
38 
39 namespace XC {
40 
41 class Vector;
42 class FiberSectionBase;
43 class InteractionDiagramData;
44 
46 //
49  {
50  protected:
51  typedef std::set<const Triedro3d *> set_ptr_triedros;
52 
53 
54  set_ptr_triedros triedros_cuadrante[8];
55 
56  void clasifica_triedro(const Triedro3d &tdro);
57  void clasifica_triedros(void);
58  void setMatrizPosiciones(const Matrix &);
59  GeomObj::list_Pos3d get_interseccion(const Pos3d &p) const;
60  public:
61  InteractionDiagram(void);
62  InteractionDiagram(const Pos3d &org,const Triang3dMesh &mll);
65  virtual InteractionDiagram *clon(void) const;
66 
67  const Triedro3d *BuscaPtrTriedro(const Pos3d &p) const;
68  Pos3d getIntersection(const Pos3d &) const;
69  double FactorCapacidad(const Pos3d &) const;
70  Vector FactorCapacidad(const GeomObj::list_Pos3d &) const;
71 
72  void Print(std::ostream &os) const;
73  };
74 
75 InteractionDiagram calc_interaction_diagram(const FiberSectionBase &,const InteractionDiagramData &);
76 
77 } // end of XC namespace
78 
79 #endif
double FactorCapacidad(const Pos3d &) const
Returns the capacity factor for the internal forces triplet being passed as parameters.
Definition: InteractionDiagram.cc:251
Definition: Vector.h:82
Pos3d getIntersection(const Pos3d &) const
Returns the intersection of the ray O->esf_d with the interaction diagram.
Definition: InteractionDiagram.cc:237
@ingroup MATSCCDiagInt
Definition: ClosedTriangleMesh.h:48
const Triedro3d * BuscaPtrTriedro(const Pos3d &p) const
Busca el triedro que contiene al punto being passed as parameter.
Definition: InteractionDiagram.cc:87
Definition: Matrix.h:82
InteractionDiagram & operator=(const InteractionDiagram &otro)
Assignment operator.
Definition: InteractionDiagram.cc:75
GeomObj::list_Pos3d get_interseccion(const Pos3d &p) const
Return the intersection of the half-line thats links the origin (0,0,0) and p and the interaction dia...
Definition: InteractionDiagram.cc:176
Base class for fiber sections.
Definition: FiberSectionBase.h:57
void setMatrizPosiciones(const Matrix &)
Crea los triedros que definen el diagrama a partir de una matriz con las coordenadas de los puntos qu...
Definition: InteractionDiagram.cc:300
InteractionDiagram(void)
Default constructor.
Definition: InteractionDiagram.cc:58
================================================================================
Definition: ContinuaReprComponent.h:34
@ingroup MATSCCDiagInt
Definition: InteractionDiagramData.h:41
@ingroup MATSCCDiagInt
Definition: InteractionDiagram.h:48
virtual InteractionDiagram * clon(void) const
Virtual constructor.
Definition: InteractionDiagram.cc:83