xc
FlatSliderSimple3d.h
1 /* ****************************************************************** **
2 ** OpenSees - Open System for Earthquake Engineering Simulation **
3 ** Pacific Earthquake Engineering Research Center **
4 ** **
5 ** **
6 ** (C) Copyright 1999, The Regents of the University of California **
7 ** All Rights Reserved. **
8 ** **
9 ** Commercial use of this program without express permission of the **
10 ** University of California, Berkeley, is strictly prohibited. See **
11 ** file 'COPYRIGHT' in main directory for information on usage and **
12 ** redistribution, and for a DISCLAIMER OF ALL WARRANTIES. **
13 ** **
14 ** Developed by: **
15 ** Frank McKenna (fmckenna@ce.berkeley.edu) **
16 ** Gregory L. Fenves (fenves@ce.berkeley.edu) **
17 ** Filip C. Filippou (filippou@ce.berkeley.edu) **
18 ** **
19 ** ****************************************************************** */
20 
21 // $Revision: 1.2 $
22 // $Date: 2009/11/03 23:12:33 $
23 // $Source: /usr/local/cvs/OpenSees/SRC/element/special/frictionBearing/FlatSliderSimple3d.h,v $
24 
25 #ifndef FlatSliderSimple3d_h
26 #define FlatSliderSimple3d_h
27 
28 // Written: Andreas Schellenberg (andreas.schellenberg@gmx.net)
29 // Created: 02/06
30 // Revision: A
31 //
32 // Description: This file contains the class definition for FlatSliderSimple3d.
33 // FlatSliderSimple3d is a friction slider element defined by two nodes. This
34 // simplified version uses small angle approximations and accounts for
35 // rotations of the sliding surface by shifting the shear forces.
36 
37 #include "FrictionElementBase.h"
38 #include "utility/matrix/Vector.h"
39 #include "utility/matrix/Matrix.h"
40 
41 namespace XC {
42 class Channel;
43 class FrictionModel;
44 class UniaxialMaterial;
45 class Response;
46 
48  {
49  private:
50 
51  // state variables
52  Vector ubPlastic; // plastic displacements in basic system
53 
54  // committed history variables
55  Vector ubPlasticC; // plastic displacements in basic system
56 
57  static Matrix theMatrix;
58  static Vector theVector;
59 
60  // private methods
61  void setUp();
62  double sgn(double x);
63  int sendData(CommParameters &);
64  int recvData(const CommParameters &);
65 
66  public:
67  // constructor
68  FlatSliderSimple3d(int tag, int Nd1, int Nd2,const FrictionModel &theFrnMdl, double uy,const std::vector<UniaxialMaterial *> &theMaterials, const Vector &y= Vector(), const Vector &x= Vector(),const double &mass= 0.0,const int &maxIter = 20,const double &tol= 1E-8);
69  FlatSliderSimple3d(void);
70 
71  // public methods to obtain information about dof & connectivity
72  int getNumDOF();
73  void setDomain(Domain *theDomain);
74 
75  // public methods to set the state of the element
76  int commitState();
77  int revertToLastCommit();
78  int revertToStart();
79  int update();
80 
81  // public methods to obtain stiffness, mass, damping and residual information
82  const Matrix &getTangentStiff();
83  const Matrix &getInitialStiff();
84  const Matrix &getMass();
85 
86  int addLoad(ElementalLoad *theLoad, double loadFactor);
87  int addInertiaLoadToUnbalance(const Vector &accel);
88 
89  const Vector &getResistingForce();
91 
92  // public methods for element output
93  int sendSelf(CommParameters &);
94  int recvSelf(const CommParameters &);
95  void Print(std::ostream &s, int flag = 0);
96 
97  Response *setResponse(const std::vector<std::string> &argv, Information &eleInformation);
98  int getResponse(int responseID, Information &eleInformation);
99  };
100 } // end of XC namespace
101 
102 #endif
int commitState()
Commit the current element state.
Definition: FlatSliderSimple3d.cpp:106
Float vector abstraction.
Definition: Vector.h:93
void Print(std::ostream &s, int flag=0)
Print stuff.
Definition: FlatSliderSimple3d.cpp:478
void setDomain(Domain *theDomain)
Set the domain for the element.
Definition: FlatSliderSimple3d.cpp:79
int update()
Updates the element state.
Definition: FlatSliderSimple3d.cpp:152
Information about an element.
Definition: Information.h:80
Definition: Response.h:71
const Vector & getResistingForce()
Returns the resisting force vector for the element.
Definition: FlatSliderSimple3d.cpp:378
FrictionModel * theFrnMdl
pointer to friction model
Definition: FrictionElementBase.h:45
const Matrix & getTangentStiff()
Return the tangent stiffness matrix.
Definition: FlatSliderSimple3d.cpp:273
int revertToStart()
Reverts the element to its initial state.
Definition: FlatSliderSimple3d.cpp:130
int sendSelf(CommParameters &)
Send the object.
Definition: FlatSliderSimple3d.cpp:450
int recvSelf(const CommParameters &)
Receive the object.
Definition: FlatSliderSimple3d.cpp:464
int getNumDOF()
Return the number of degrees of freedom.
Definition: FlatSliderSimple3d.cpp:75
Response * setResponse(const std::vector< std::string > &argv, Information &eleInformation)
setResponse() is a method invoked to determine if the element will respond to a request for a certain...
Definition: FlatSliderSimple3d.cpp:500
int revertToLastCommit()
Revert to the last commited state.
Definition: FlatSliderSimple3d.cpp:119
const Matrix & getMass()
Returns the mass matrix.
Definition: FlatSliderSimple3d.cpp:319
Definition: FrictionModel.h:71
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:34
Communication parameters between processes.
Definition: CommParameters.h:65
Matrix of floats.
Definition: Matrix.h:108
Definition: FlatSliderSimple3d.h:47
Base class for loads over elements.
Definition: ElementalLoad.h:77
FlatSliderSimple3d(void)
Default constructor.
Definition: FlatSliderSimple3d.cpp:69
Domain (mesh and boundary conditions) of the finite element model.
Definition: Domain.h:116
const Vector & getResistingForceIncInertia()
Returns the resisting force vector including inertia forces.
Definition: FlatSliderSimple3d.cpp:409
int getResponse(int responseID, Information &eleInformation)
Obtain information from an analysis.
Definition: FlatSliderSimple3d.cpp:614
Definition: FrictionElementBase.h:42