xc
TzSimple1.h
1 // -*-c++-*-
2 //----------------------------------------------------------------------------
3 // XC program; finite element analysis code
4 // for structural analysis and design.
5 //
6 // Copyright (C) Luis C. Pérez Tato
7 //
8 // This program derives from OpenSees <http://opensees.berkeley.edu>
9 // developed by the «Pacific earthquake engineering research center».
10 //
11 // Except for the restrictions that may arise from the copyright
12 // of the original program (see copyright_opensees.txt)
13 // XC is free software: you can redistribute it and/or modify
14 // it under the terms of the GNU General Public License as published by
15 // the Free Software Foundation, either version 3 of the License, or
16 // (at your option) any later version.
17 //
18 // This software is distributed in the hope that it will be useful, but
19 // WITHOUT ANY WARRANTY; without even the implied warranty of
20 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 // GNU General Public License for more details.
22 //
23 //
24 // You should have received a copy of the GNU General Public License
25 // along with this program.
26 // If not, see <http://www.gnu.org/licenses/>.
27 //----------------------------------------------------------------------------
28 /* *********************************************************************
29 ** Module: TzSimple1.h
30 **
31 ** Purpose: Provide a simple t-z spring for OpenSees
32 **
33 ** Developed by Ross W. Boulanger
34 ** (C) Copyright 2002, All Rights Reserved.
35 **
36 ** ****************************************************************** */
37 
38 // $Revision: 1.0
39 // $Date: 2002/1/19
40 // $Source: /OpenSees/SRC/material/uniaxial/TzSimple1.h
41 
42 #ifndef TZSIMPLE1_H
43 #define TZSIMPLE1_H
44 
45 // Written: RWB
46 // Created: Jan 2002
47 // tested and checked: Boris Jeremic (jeremic@ucdavis.edu) Spring 2002
48 //
49 // Description: This file contains the class definition for TzSimple1.
50 //
51 
52 #include "PYBase.h"
53 
54 
55 namespace XC {
57 //
59 class TzSimple1: public PYBase
60  {
61  private:
62  InternalParamsIn CNF;
63  InternalParamsIn TNF;
64 
65  // Functions to get t & z for elastic & plastic components
66  void getNearField(double zlast, double dz, double dz_old);
67  protected:
68  int sendData(Communicator &);
69  int recvData(const Communicator &);
70 
71 
72  public:
73  TzSimple1(int tag, int classtag, int tzType, double tult, double z50, double dashpot);
74  TzSimple1(int tag, int classtag= MAT_TAG_TzSimple1);
75  TzSimple1(void);
76 
77  int setTrialStrain(double y, double yRate);
78  double getStress(void) const;
79  double getDampTangent(void) const;
80 
81  int commitState(void);
82  int revertToLastCommit(void);
83  int revertToStart(void);
84 
85  UniaxialMaterial *getCopy(void) const;
86 
87  int sendSelf(Communicator &);
88  int recvSelf(const Communicator &);
89 
90  void Print(std::ostream &s, int flag =0) const;
91 
92 
93  };
94 } // end of XC namespace
95 
96 
97 #endif
void Print(std::ostream &s, int flag=0) const
Print stuff.
Definition: TzSimple1.cpp:443
Communication parameters between processes.
Definition: Communicator.h:66
Internal parameters for a p-y material.
Definition: InternalParamsIn.h:39
Base class for uniaxial materials.
Definition: UniaxialMaterial.h:93
Simple uniaxial t-z material for use with a zeroLength element.
Definition: TzSimple1.h:59
UniaxialMaterial * getCopy(void) const
Virtual constructor.
Definition: TzSimple1.cpp:388
PYMat
Definition: PYBase.h:46
double getDampTangent(void) const
default operation for damping tangent is zero
Definition: TzSimple1.cpp:270
double dashpot
dashpot on the far-field (elastic) component
Definition: PYBase.h:62
int setTrialStrain(double y, double yRate)
Sets the value of the trial strain.
Definition: TzSimple1.cpp:171
int sendData(Communicator &)
Send object members through the communicator argument.
Definition: TzSimple1.cpp:392
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
int recvSelf(const Communicator &)
Receives object through the communicator argument.
Definition: TzSimple1.cpp:424
int recvData(const Communicator &)
Receives object members through the communicator argument.
Definition: TzSimple1.cpp:401
double getStress(void) const
Return the current value of stress.
Definition: TzSimple1.cpp:247
int sendSelf(Communicator &)
Sends object through the communicator argument.
Definition: TzSimple1.cpp:410