TzLiq1.h

Go to the documentation of this file.
00001 /* *********************************************************************
00002 **    Module:   TzLiq1.h 
00003 **
00004 **    Purpose:  Provide a t-z material that gets pore pressure from a
00005 **                              specified element that contains a PorousFluidSolid.
00006 **              
00007 **
00008 **    Developed by Ross W. Boulanger
00009 **    (C) Copyright 2002, All Rights Reserved.
00010 **
00011 ** ****************************************************************** */
00012 
00013 // $Revision: 1.0
00014 // $Date: 2002/2/5
00015 // $Source: /OpenSees/SRC/material/uniaxial/TzLiq1.h
00016 
00017 #ifndef TZLIQ1_H
00018 #define TZLIQ1_H
00019 
00020 // Written: RWB
00021 // Created: Feb 2002
00022 //
00023 // Description: This file contains the class definition for TzLiq1.
00024 // 
00025 
00026 #include <UniaxialMaterial.h>
00027 #include <Domain.h>
00028 #include <FourNodeQuad.h>
00029 #include <FluidSolidPorousMaterial.h>
00030 #include <TzSimple1.h>
00031 #include <iostream>
00032 
00033 class TzLiq1 : public TzSimple1
00034 {
00035   public:
00036     TzLiq1(int tag, int classtag, int tzType, double tult, double z50,
00037                       double dashpot, int solidElem1, int solidElem2, Domain *theDomain);
00038     TzLiq1();
00039     ~TzLiq1();
00040 
00041     const char *getClassType(void) const {return "TzLiq1";};
00042 
00043     int setTrialStrain(double y, double yRate); 
00044     double getStrain(void);          
00045     double getStress(void);
00046     double getTangent(void);
00047     double getStrainRate(void);
00048     double getDampTangent(void);
00049     double getInitialTangent(void);
00050 
00051     int commitState(void);
00052     int revertToLastCommit(void);    
00053     int revertToStart(void);        
00054 
00055     UniaxialMaterial *getCopy(void);
00056     
00057     int sendSelf(int commitTag, Channel &theChannel);  
00058     int recvSelf(int commitTag, Channel &theChannel, 
00059                  FEM_ObjectBroker &theBroker);
00060 
00061     //  Command for initiating vertConsolStress from TclUpdateMaterialStageCommand
00062         int updateParameter(int snum, Information &eleInformation);
00063     
00064     void Print(OPS_Stream &s, int flag =0);
00065 
00066    
00067   protected:
00068     
00069   private:
00070 
00071         // Committed and trial values for t, z, and ru
00072         double Tz;
00073         double Cz;
00074         double Tt;
00075         double Ct;
00076         double Tangent;
00077         double maxTangent;
00078         double Tru;
00079         double Cru;
00080         double Hru;
00081 
00082         // Solid element from which pore pressures are obtained, domain pointer
00083         // and stage information to get the initial vertical effective stress.
00084         int solidElem1;
00085         int solidElem2;
00086 
00087         double meanConsolStress;
00088         double ru;
00089 
00090     static int loadStage;
00091         int    lastLoadStage;
00092         std::string elemFlag; 
00093         Domain *theDomain;
00094         FourNodeQuad *theQuad1;
00095         FourNodeQuad *theQuad2;
00096 
00097         // Initial tangent
00098         double initialTangent;
00099         
00100         // Function for obtaining effective stresses from adjoining solid soil elements
00101         double getEffectiveStress(void);
00102         static Vector stressV3;
00103         
00104 };
00105 
00106 #endif // TZLIQ1_H

Generated on Mon Oct 23 15:05:21 2006 for OpenSees by doxygen 1.5.0