XC Open source finite element analysis program
ElemFriccionBase.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 //ElemFriccionBase.h,v $
28 
29 #ifndef ElemFriccionBase_h
30 #define ElemFriccionBase_h
31 
32 #include "domain/mesh/element/Element0D.h"
33 #include "domain/mesh/element/utils/physical_properties/UniaxialMatPhysicalProperties.h"
34 #include "utility/matrix/Vector.h"
35 #include "utility/matrix/Matrix.h"
36 
37 namespace XC {
38 class FrictionModel;
39 class UniaxialMaterial;
40 class Response;
41 
43  {
44  protected:
47 
48  // parameters
49  double uy; // yield displacement
50  Vector x; // local x direction
51  Vector y; // local y direction
52  double mass; // mass of element
53  int maxIter; // maximum number of iterations
54  double tol; // tolerance for convergence criterion
55  double L; // element length
56 
57  // state variables
58  Vector ub; // displacements in basic system
59  Vector qb; // forces in basic system
60  Matrix kb; // stiffness matrix in basic system
61  Vector ul; // displacements in local system
62  Matrix Tgl; // transformation matrix from global to local system
63  Matrix Tlb; // transformation matrix from local to basic system
64 
65  // committed history variables
66 
67  // initial stiffness matrix in basic system
68  Matrix kbInit;
69 
70  void libera_friction_model(void);
71  void alloc_friction_model(const FrictionModel &);
72  int sendData(CommParameters &);
73  int recvData(const CommParameters &);
74  public:
75  // constructors
76  ElemFriccionBase(int tag, int classTag, int Nd1, int Nd2,const size_t &dim,const FrictionModel &theFrnMdl, const UniaxialMatPhysicalProperties &, const double &uy= 0.0, const Vector &y= Vector(), const Vector &x= Vector(),const double &mass = 0.0,const int &maxIter= 20,const double &tol= 1E-8);
77  ElemFriccionBase(int classTag,const size_t &);
79  ElemFriccionBase &operator=(const ElemFriccionBase &);
80 
81  // destructor
82  ~ElemFriccionBase(void);
83 
84  // public methods to obtain information about dof & connectivity
85  int getNumDOF();
86 
87  };
88 } // end of XC namespace
89 
90 #endif
Physical properties for shells.
Definition: UniaxialMatPhysicalProperties.h:40
int sendData(CommParameters &)
Send members through the channel being passed as parameter.
Definition: ElemFriccionBase.cc:113
Definition: Vector.h:82
int recvData(const CommParameters &)
Receives members through the channel being passed as parameter.
Definition: ElemFriccionBase.cc:131
Element of dimension 0 (both nodes have the same position).
Definition: Element0D.h:45
UniaxialMatPhysicalProperties physicalProperties
array of uniaxial materials
Definition: ElemFriccionBase.h:46
Definition: Matrix.h:82
Definition: FrictionModel.h:71
FrictionModel * theFrnMdl
pointer to friction model
Definition: ElemFriccionBase.h:45
Communication parameters between processes.
Definition: CommParameters.h:65
================================================================================
Definition: ContinuaReprComponent.h:34
Definition: ElemFriccionBase.h:42