MultiaxialCyclicPlasticityPlaneStrain.h

Go to the documentation of this file.
00001 /* ****************************************************************** **
00002 **    OpenSees - Open System for Earthquake Engineering Simulation    **
00003 **          Pacific Earthquake Engineering Research Center            **
00004 **                                                                    **
00005 **                                                                    **
00006 ** (C) Copyright 1999, The Regents of the University of California    **
00007 ** All Rights Reserved.                                               **
00008 **                                                                    **
00009 ** Commercial use of this program without express permission of the   **
00010 ** University of California, Berkeley, is strictly prohibited.  See   **
00011 ** file 'COPYRIGHT'  in main directory for information on usage and   **
00012 ** redistribution,  and for a DISCLAIMER OF ALL WARRANTIES.           **
00013 **                                                                    **
00014 ** ****************************************************************** */
00015                                                                         
00016 /*----+----+----+----+----+----+----+----+----+----+----+----+----+----+----*
00017  |                                                                          | 
00018  |              MultiaxialCyclicPlasticity  NDMaterial                      |
00019  +                                                                          +
00020  |--------------------------------------------------------------------------|
00021  |                                                                          |
00022  +             Authors: Gang Wang  AND  Professor Nicholas Sitar            +
00023  |                                                                          |
00024  |                         Department of Civil and Environmental Engineering            |
00025  +                         Univeristy of California, Berkeley, CA 94720, USA            +
00026  |                                                                          |
00027  |             Email: wang@ce.berkeley.edu (G.W.)                           |
00028  |                                                                          | 
00029  +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----*/
00030 #ifndef MultiaxialCyclicPlasticityPlaneStrain_h
00031 #define MultiaxialCyclicPlasticityPlaneStrain_h
00032 
00033 #include <stdio.h> 
00034 #include <stdlib.h> 
00035 #include <math.h> 
00036 
00037 #include <Vector.h>
00038 #include <Matrix.h>
00039 
00040 #include <MultiaxialCyclicPlasticity.h>
00041 
00042 
00043 class MultiaxialCyclicPlasticityPlaneStrain : public MultiaxialCyclicPlasticity {
00044 
00045 
00046 //-------------------Declarations-------------------------------
00047 
00048   public : 
00049 
00050   //null constructor
00051   MultiaxialCyclicPlasticityPlaneStrain( ) ;
00052 
00053   //full constructor
00054   MultiaxialCyclicPlasticityPlaneStrain(       int    tag, 
00055                                  double rho,
00056                  double K,
00057                  double G,
00058                                  double Su,
00059                              double Ho_kin,
00060                  double Parameter_h,
00061                  double Parameter_m,
00062                  double Parameter_beta,
00063                  double Kcoeff,
00064                  double viscosity=0 ) ;
00065 
00066   //elastic constructor // add density by Gang Wang
00067   MultiaxialCyclicPlasticityPlaneStrain( int tag, double rho, double K, double G ) ;
00068 
00069   //destructor
00070   ~MultiaxialCyclicPlasticityPlaneStrain( ) ;
00071 
00072   const char *getClassType(void) const {return "MultiaxialCyclicPlasticityPlaneStrain";};
00073 
00074   //make a clone of this material
00075   NDMaterial* getCopy( ) ;
00076 
00077   //send back type of material
00078   const char* getType( ) const ;
00079 
00080   //send back order of strain in vector form
00081   int getOrder( ) const ;
00082 
00083 
00084   //get the strain and integrate plasticity equations
00085   int setTrialStrain( const Vector &strain_from_element) ;
00086 
00087   //unused trial strain functions
00088   int setTrialStrain( const Vector &v, const Vector &r ) ;
00089   int setTrialStrainIncr( const Vector &v ) ;
00090   int setTrialStrainIncr( const Vector &v, const Vector &r ) ;
00091 
00092   //send back the strain
00093   const Vector& getStrain( ) ;
00094 
00095   //send back the stress 
00096   const Vector& getStress( ) ;
00097 
00098   //send back the tangent 
00099   const Matrix& getTangent( ) ;
00100   const Matrix& getInitialTangent( ) ;
00101 
00102   //this is mike's problem
00103   int setTrialStrain(const Tensor &v) ;
00104   int setTrialStrain(const Tensor &v, const Tensor &r) ;    
00105   int setTrialStrainIncr(const Tensor &v) ;
00106   int setTrialStrainIncr(const Tensor &v, const Tensor &r) ;
00107   const Tensor& getTangentTensor( ) ;
00108   
00109   //swap history variables
00110   //int commitState( ) ; 
00111   //int revertToLastCommit( ) ;
00112   //int revertToStart( ) ;
00113 
00114   //sending and receiving
00115   //int sendSelf(int commitTag, Channel &theChannel) ;  
00116   //int recvSelf(int commitTag, Channel &theChannel, 
00117   //             FEM_ObjectBroker &theBroker ) ;
00118   
00119   
00120   private :
00121     
00122   //static vectors and matrices
00123   static Vector strain_vec ;     //strain in vector notation
00124   static Vector stress_vec ;     //stress in vector notation
00125   static Matrix tangent_matrix ; //material tangent in matrix notation
00126 } ; 
00127 
00128 //end of MultiaxialCyclicPlasticityPlaneStrain declarations
00129 
00130 #endif

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