xc
QzSimple1.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: QzSimple1.h
30 **
31 ** Purpose: Provide a simple Q-z material for OpenSees
32 **
33 **
34 ** Developed by Ross W. Boulanger
35 ** (C) Copyright 2002, All Rights Reserved.
36 **
37 ** ****************************************************************** */
38 
39 // $Revision: 1.0
40 // $Date: 2002/1/22
41 // $Source: /OpenSees/SRC/material/uniaxial/QzSimple1.h
42 
43 #ifndef QZSIMPLE1_H
44 #define QZSIMPLE1_H
45 
46 // Written: RWB
47 // Created: Jan 2002
48 // tested and checked: Boris Jeremic (jeremic@ucdavis.edu) Spring 2002
49 //
50 // Description: This file contains the class definition for QzSimple1.
51 //
52 
53 #include "PQyzBase.h"
54 
55 
56 namespace XC {
58 //
61 class QzSimple1: public PQyzBase
62  {
63  private:
64  // Material parameters
65  double suction;
66  double maxElast;
67 
68  InternalParamsIn CSuction;
69  InternalParamsIn TSuction;
70 
71  InternalParamsA CClose;
72  InternalParamsA TClose;
73 
74  // Functions to get Q & z for each component individually
75  void getGap(double zlast, double dz, double dz_old);
76  void getClosure(double zlast, double dz);
77  void getSuction(double zlast, double zy);
78  void getNearField(double zlast, double dz, double dz_old);
79  protected:
80  int sendData(Communicator &);
81  int recvData(const Communicator &);
82 
83  public:
84  QzSimple1(int tag, int qzType, double Qult, double z50, double suction,double dashpot);
85  QzSimple1(int tag, int classtag= MAT_TAG_QzSimple1);
86  QzSimple1(void);
87 
88  void set_suction(const double &);
89  double get_suction(void) const;
90 
91  int setTrialStrain(double z, double zRate);
92  double getStress(void) const;
93  double getDampTangent(void) const;
94 
95  int commitState(void);
96  int revertToLastCommit(void);
97  int revertToStart(void);
98 
99  UniaxialMaterial *getCopy(void) const;
100 
101  int sendSelf(Communicator &);
102  int recvSelf(const Communicator &);
103 
104  void Print(std::ostream &s, int flag =0) const;
105 
106 
107 
108 
109  };
110 } // end of XC namespace
111 
112 #endif
Communication parameters between processes.
Definition: Communicator.h:66
int sendData(Communicator &)
Send object members through the communicator argument.
Definition: QzSimple1.cpp:616
Internal parameters for a p-y material.
Definition: InternalParamsIn.h:39
QzSimple1(void)
Default constructor.
Definition: QzSimple1.cpp:87
Base class for uniaxial materials.
Definition: UniaxialMaterial.h:93
Simple uniaxial q-z material for use with a zeroLength element.
Definition: QzSimple1.h:61
double getDampTangent(void) const
default operation for damping tangent is zero
Definition: QzSimple1.cpp:466
double getStress(void) const
Return the current value of stress.
Definition: QzSimple1.cpp:443
void Print(std::ostream &s, int flag=0) const
Print stuff.
Definition: QzSimple1.cpp:672
Base class for PySimple1 y QzSimple1.
Definition: PQyzBase.h:39
UniaxialMaterial * getCopy(void) const
Virtual constructor.
Definition: QzSimple1.cpp:612
double dashpot
dashpot on the far-field (elastic) component
Definition: PYBase.h:62
int recvData(const Communicator &)
Receives object members through the communicator argument.
Definition: QzSimple1.cpp:628
int setTrialStrain(double z, double zRate)
Sets the value of the trial strain.
Definition: QzSimple1.cpp:333
int sendSelf(Communicator &)
Send the object.
Definition: QzSimple1.cpp:640
Open source finite element program for structural analysis.
Definition: ContinuaReprComponent.h:35
int recvSelf(const Communicator &)
Receive the object.
Definition: QzSimple1.cpp:654
Internal parameters for the Gap (Drag + Closure).
Definition: InternalParamsA.h:39
void set_suction(const double &)
Set the suction parameter (Uplift resistance is equal to suction*qult).
Definition: QzSimple1.cpp:492
double get_suction(void) const
Return the suction parameter (Uplift resistance is equal to suction*qult)
Definition: QzSimple1.cpp:503