MultiaxialCyclicPlasticity3D.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  |                                                                          | 
00019  |              MultiaxialCyclicPlasticity  NDMaterial                      |
00020  +                                                                          +
00021  |--------------------------------------------------------------------------|
00022  |                                                                          |
00023  +             Authors: Gang Wang  AND  Professor Nicholas Sitar            +
00024  |                                                                          |
00025  |                         Department of Civil and Environmental Engineering            |
00026  +                         Univeristy of California, Berkeley, CA 94720, USA            +
00027  |                                                                          |
00028  |             Email: wang@ce.berkeley.edu (G.W.)                           |
00029  |                                                                          | 
00030  +----+----+----+----+----+----+----+----+----+----+----+----+----+----+----*/
00031 
00032 
00033 #ifndef MultiaxialCyclicPlasticity3D_h
00034 #define MultiaxialCyclicPlasticity3D_h
00035 
00036 #include <stdio.h> 
00037 #include <stdlib.h> 
00038 #include <math.h> 
00039 
00040 #include <Vector.h>
00041 #include <Matrix.h>
00042 
00043 #include <MultiaxialCyclicPlasticity.h>
00044 
00045 class MultiaxialCyclicPlasticity3D : public MultiaxialCyclicPlasticity {
00046 
00047 //-------------------Declarations-------------------------------
00048 
00049   public : 
00050 
00051   //null constructor
00052   MultiaxialCyclicPlasticity3D( ) ;
00053 
00054   //full constructor
00055   MultiaxialCyclicPlasticity3D(   int    tag,
00056                                   double rho,
00057                                   double K,
00058                                   double G,
00059                                   double Su,
00060                                   double Ho_kin,
00061                                   double Parameter_h,
00062                                   double Parameter_m,
00063                                   double Parameter_beta,
00064                                   double Kcoeff,
00065                                   double viscosity = 0
00066                                   ) ;
00067   
00068 
00069   //elastic constructor
00070   MultiaxialCyclicPlasticity3D( int tag, double rho, double K, double G ) ;
00071 
00072   //destructor
00073   ~MultiaxialCyclicPlasticity3D( ) ;
00074 
00075   const char *getClassType(void) const {return "MultiaxialCyclicPlasticity3D";};
00076 
00077   //make a clone of this material
00078   NDMaterial* getCopy( ) ;
00079 
00080   //send back type of material
00081   const char* getType( ) const ;
00082 
00083   //send back order of strain in vector form
00084   int getOrder( ) const ;
00085 
00086   //get the strain and integrate plasticity equations
00087   int setTrialStrain( const Vector &strain_from_element) ;
00088 
00089   //unused trial strain functions
00090   int setTrialStrain( const Vector &v, const Vector &r ) ;
00091   int setTrialStrainIncr( const Vector &v ) ;
00092   int setTrialStrainIncr( const Vector &v, const Vector &r ) ;
00093 
00094   //send back the strain
00095   const Vector& getStrain( ) ;
00096 
00097   //send back the stress 
00098   const Vector& getStress( ) ;
00099 
00100   //send back the tangent 
00101   const Matrix& getTangent( ) ;
00102   const Matrix& getInitialTangent( ) ;
00103 
00104   //this is mike's problem
00105   int setTrialStrain(const Tensor &v) ;
00106   int setTrialStrain(const Tensor &v, const Tensor &r) ;    
00107   int setTrialStrainIncr(const Tensor &v) ;
00108   int setTrialStrainIncr(const Tensor &v, const Tensor &r) ;
00109   const Tensor& getTangentTensor( ) ;
00110  
00111   private :
00112 
00113   //static vectors and matrices
00114   static Vector strain_vec ;     //strain in vector notation
00115   static Vector stress_vec ;     //stress in vector notation
00116   static Matrix tangent_matrix ; //material tangent in matrix notation
00117 
00118 } ; //end of MultiaxialCyclicPlasticity3D declarations
00119 
00120 #endif

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