XC Open source finite element analysis program
MatPoint3D.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 //=============================================================================
28 //
29 // COPYRIGHT (C): :-))
30 // PROJECT: Object Oriented Finite Element Program
31 // FILE: MatPoint3D.h
32 // CLASS: MatPoint3D
33 // MEMBER FUNCTIONS:
34 //
35 // MEMBER VARIABLES
36 //
37 // PURPOSE: Gauss Point
38 // RETURN:
39 // VERSION:
40 // LANGUAGE: C++.ver >= 3.0 (Borland.C++.ver=3.1||SUN.C++.ver=3.0.1)
41 // TARGET OS: DOS || UNIX || . . .
42 // DESIGNER: Boris Jeremic
43 // PROGRAMMER: Boris Jeremic
44 // DATE: 17 October 1994.
45 // UPDATE HISTORY:
46 //
47 //
48 //# Aug 2000 porting to OpenSees #
49 //=============================================================================
50 //
51 //
52 #ifndef MATPOINT3D_H
53 #define MATPOINT3D_H
54 
55 #include <string>
56 #include "domain/mesh/element/utils/gauss_models/GaussPoint.h"
57 
58 namespace XC {
59  class NDMaterial;
60  class stresstensor;
61  class straintensor;
62 
64 //
66 class MatPoint3D: public GaussPoint
67  {
68  private:
69  short int r_direction_point_number;
70  short int s_direction_point_number;
71  short int t_direction_point_number;
72 
73  public: // dobro ovo su samo ustvari pointeri pa nema ekstra kopiranja !
74 
75  // *gpEPS is used to hold all state parameters and internal vars, instead of the
76  // following stresses, strain, and internal vars __Zhaohui 09-30-2000
77 
78  //Now no EPState needed. Each MatPoint has an NDMaterial
79  //EPState *gpEPS;
80 
81  //stresstensor * p_stress;
82  //stresstensor * p_iterative_stress; // to be used for iterative nodal forces
83  //double q_ast_iterative;
84  //straintensor * p_strain;
85  //tensor * TangentE;
86 
87  //Might be ElasticIsotropic3D or Template3Dep
88  NDMaterial *matmodel;
89 
90  public:
91  //default constructor
92  MatPoint3D( short int INr_direction_point_number = 0,
93  short int INs_direction_point_number = 0,
94  short int INt_direction_point_number = 0,
95  double r_coord = 0,
96  double s_coord = 0,
97  double t_coord = 0,
98  double r_weight = 0,
99  double s_weight = 0,
100  double t_weight = 0,
101  //EPState *eps = 0,
102  NDMaterial * p_mmodel = 0
103  //stresstensor * p_INstress = 0,
104  //stresstensor * p_INiterative_stress = 0,
105  //double IN_q_ast_iterative = 0.0,
106  //straintensor * p_INstrain = 0,
107  //tensor * p_Tangent_E_tensor = 0,
108  );
109 
110  // Constructor 1
111  ~MatPoint3D(void);
112 
113  void Initialize(short int INr_direction_point_number,
114  short int INs_direction_point_number,
115  short int INt_direction_point_number,
116  double r_coord,
117  double s_coord,
118  double t_coord,
119  double r_weight,
120  double s_weight,
121  double t_weight,
122  //stresstensor * p_INstress,
123  //stresstensor * p_INiterative_stress,
124  //double IN_q_ast_iterative,
125  //straintensor * p_INstrain,
126  //tensor * p_Tangent_E_tensor,
127  //EPState * EPS,
128  NDMaterial * p_mmodel
129  );
130  public:
131  short int GP_number_r(void) const;
132  short int GP_number_s(void) const;
133  short int GP_number_t(void) const;
134 
135  MatPoint3D * GP(void);
136 
137  double r_coordinate() const;
138  double s_coordinate() const;
139  double t_coordinate() const;
140 
141  double r_weight() const;
142  double s_weight() const;
143  double t_weight() const;
144 
145  //void setEPS(EPState *eps);
146  //EPState *getEPS() const;
147  NDMaterial* getNDMat() const;
148  const std::string &getType(void) const;
149  int getTag(void) const;
150  double getrho() const;
151  const stresstensor &getStressTensor(void) const;
152  const straintensor &getStrainTensor(void) const;
153  //Added Aug. 13, 2001 Joey
154  const straintensor &getPlasticStrainTensor(void) const;
155  //Added 02-18-03 Joey
156  double getpsi() const; //state parameter
157 
158  int commitState(void) ;
159  int revertToLastCommit(void) ;
160  int revertToStart(void) ;
161 
162  void report(const std::string &msg) const;
163  void reportpqtheta(const std::string &msg) const;
164  void reportTensor(const std::string &msg) const;
165  };
166 } // end of XC namespace
167 
168 #endif
169 //
Base class for 2D and 3D materials.
Definition: NDMaterial.h:91
3D position of Gauss points.
Definition: GaussPoint.h:37
double s_weight() const
Peso s.
Definition: MatPoint3D.cpp:216
~MatPoint3D(void)
Destructor.
Definition: MatPoint3D.cpp:107
double t_weight() const
Peso t.
Definition: MatPoint3D.cpp:220
const stresstensor & getStressTensor(void) const
Returns the stress tensor.
Definition: MatPoint3D.cpp:258
Definition: stresst.h:68
double t_coordinate() const
Coordenada t.
Definition: MatPoint3D.cpp:208
double r_weight() const
Peso r.
Definition: MatPoint3D.cpp:212
double s_coordinate() const
Coordenada s.
Definition: MatPoint3D.cpp:204
Strain tensor.
Definition: straint.h:67
const straintensor & getStrainTensor(void) const
Returns the strain tensor.
Definition: MatPoint3D.cpp:263
Integration point on three-dimensional space.
Definition: MatPoint3D.h:66
double r_coordinate() const
Coordenada r.
Definition: MatPoint3D.cpp:200
================================================================================
Definition: ContinuaReprComponent.h:34