MultiaxialCyclicPlasticityAxiSymm.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 MultiaxialCyclicPlasticityAxiSymm_h
00034 #define MultiaxialCyclicPlasticityAxiSymm_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 
00046 
00047 
00048 class MultiaxialCyclicPlasticityAxiSymm : public MultiaxialCyclicPlasticity {
00049 
00050 //-------------------Declarations-------------------------------
00051 
00052   public : 
00053 
00054   //null constructor
00055   MultiaxialCyclicPlasticityAxiSymm( ) ;
00056 
00057   //full constructor
00058 
00059  MultiaxialCyclicPlasticityAxiSymm(       int    tag, 
00060                                  double rho,
00061                  double K,
00062                  double G,
00063                                  double Su,
00064                              double Ho_kin,
00065                  double Parameter_h,
00066                  double Parameter_m,
00067                  double Parameter_beta,
00068                  double Kcoeff,
00069                  double viscosity=0 ) ;
00070 
00071   //elastic constructor // add density by Gang Wang
00072   MultiaxialCyclicPlasticityAxiSymm( int tag, double rho, double K, double G ) ;
00073 
00074   //destructor
00075   ~MultiaxialCyclicPlasticityAxiSymm( ) ;
00076 
00077   const char *getClassType(void) const {return "MultiaxialCyclicPlasticityAxiSymm";};
00078 
00079   //make a clone of this material
00080   NDMaterial* getCopy( ) ;
00081 
00082   //send back type of material
00083   const char* getType( ) const ;
00084 
00085   //send back order of strain in vector form
00086   int getOrder( ) const ;
00087 
00088   //get the strain and integrate plasticity equations
00089   int setTrialStrain( const Vector &strain_from_element) ;
00090 
00091   //unused trial strain functions
00092   int setTrialStrain( const Vector &v, const Vector &r ) ;
00093   int setTrialStrainIncr( const Vector &v ) ;
00094   int setTrialStrainIncr( const Vector &v, const Vector &r ) ;
00095 
00096   //send back the strain
00097   const Vector& getStrain( ) ;
00098 
00099   //send back the stress 
00100   const Vector& getStress( ) ;
00101 
00102   //send back the tangent 
00103   const Matrix& getTangent( ) ;
00104   const Matrix& getInitialTangent( ) ;
00105 
00106   //this is mike's problem
00107   int setTrialStrain(const Tensor &v) ;
00108   int setTrialStrain(const Tensor &v, const Tensor &r) ;    
00109   int setTrialStrainIncr(const Tensor &v) ;
00110   int setTrialStrainIncr(const Tensor &v, const Tensor &r) ;
00111   const Tensor& getTangentTensor( ) ;
00112  
00113   //swap history variables
00114   //int commitState( ) ; 
00115   //int revertToLastCommit( ) ;
00116   //int revertToStart( ) ;
00117 
00118   //sending and receiving
00119   //int sendSelf(int commitTag, Channel &theChannel) ;  
00120   //int recvSelf(int commitTag, Channel &theChannel, 
00121   //             FEM_ObjectBroker &theBroker ) ;
00122 
00123   
00124   private :
00125 
00126   //static vectors and matrices
00127   static Vector strain_vec ;     //strain in vector notation
00128   static Vector stress_vec ;     //stress in vector notation
00129   static Matrix tangent_matrix ; //material tangent in matrix notation
00130 
00131                                      
00132 } ; //end of MultiaxialCyclicPlasticityAxiSymm declarations
00133 
00134 
00135 #endif

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