XC Open source finite element analysis program
TzLiq1.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 ** Module: TzLiq1.h
29 **
30 ** Purpose: Provide a t-z material that gets pore pressure from a
31 ** specified element that contains a PorousFluidSolid.
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/2/5
41 // $Source: /OpenSees/SRC/material/uniaxial/TzLiq1.h
42 
43 #ifndef TZLIQ1_H
44 #define TZLIQ1_H
45 
46 // Written: RWB
47 // Created: Feb 2002
48 //
49 // Description: This file contains the class definition for TzLiq1.
50 //
51 
52 #include <material/uniaxial/PY/TzSimple1.h>
53 
54 namespace XC {
55 class FourNodeQuad;
56 
58 //
60 class TzLiq1 : public TzSimple1
61  {
62  private:
63  // Committed and trial values for t, z, and ru
64  double Tz;
65  double Cz;
66  double Tt;
67  double Ct;
68  double Tangent;
69  double maxTangent;
70  double Tru;
71  double Cru;
72  double Hru;
73 
74  // Solid element from which pore pressures are obtained, domain pointer
75  // and stage information to get the initial vertical effective stress.
76  int solidElem1;
77  int solidElem2;
78 
79  double meanConsolStress;
80  double ru;
81 
82  static int loadStage;
83  int lastLoadStage;
84  std::string elemFlag;
85  Domain *theDomain;
86  FourNodeQuad *theQuad1;
87  FourNodeQuad *theQuad2;
88 
89  // Initial tangent
90  double initialTangent;
91 
92  // Function for obtaining effective stresses from adjoining solid soil elements
93  double getEffectiveStress(void);
94  static Vector stressV3;
95  protected:
96  int sendData(CommParameters &);
97  int recvData(const CommParameters &);
98  public:
99  TzLiq1(int tag, int classtag, int tzType, double tult, double z50,
100  double dashpot, int solidElem1, int solidElem2, Domain *theDomain);
101  TzLiq1(int tag, int classtag= MAT_TAG_TzLiq1);
102  TzLiq1(void);
103 
104  int setTrialStrain(double y, double yRate);
105  double getStrain(void) const;
106  double getStress(void) const;
107  double getTangent(void) const;
108  double getStrainRate(void) const;
109  double getDampTangent(void) const;
110  double getInitialTangent(void) const;
111 
112  int commitState(void);
113  int revertToLastCommit(void);
114  int revertToStart(void);
115 
116  UniaxialMaterial *getCopy(void) const;
117 
118  int sendSelf(CommParameters &);
119  int recvSelf(const CommParameters &);
120 
121  // Command for initiating vertConsolStress from TclUpdateMaterialStageCommand
122  int updateParameter(int snum, Information &eleInformation);
123 
124  void Print(std::ostream &s, int flag =0);
125  };
126 } // end of XC namespace
127 
128 #endif // TZLIQ1_H
??.
Definition: TzLiq1.h:60
Domain (mesh and boundary conditions) of the finite element model.
Definition: Domain.h:98
void Print(std::ostream &s, int flag=0)
Imprime el objeto.
Definition: TzLiq1.cpp:489
Material que representa una curva t-z.
Definition: TzSimple1.h:58
double getStrainRate(void) const
default operation for strain rate is zero
Definition: TzLiq1.cpp:212
UniaxialMaterial * getCopy(void) const
Virtual constructor.
Definition: TzLiq1.cpp:421
Definition: Vector.h:82
double getDampTangent(void) const
default operation for damping tangent is zero
Definition: TzLiq1.cpp:200
Four node quad.
Definition: FourNodeQuad.h:73
Information about an element.
Definition: Information.h:80
int sendData(CommParameters &)
Send object members through the channel being passed as parameter.
Definition: TzLiq1.cpp:433
int recvData(const CommParameters &)
Receives object members through the channel being passed as parameter.
Definition: TzLiq1.cpp:445
TzLiq1(void)
Default constructor.
Definition: TzLiq1.cpp:87
double dashpot
dashpot on the far-field (elastic) component
Definition: PYBase.h:56
Communication parameters between processes.
Definition: CommParameters.h:65
================================================================================
Definition: ContinuaReprComponent.h:34
Base class for uniaxial materials.
Definition: UniaxialMaterial.h:88