00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
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
00047
00048 public :
00049
00050
00051 MultiaxialCyclicPlasticityPlaneStrain( ) ;
00052
00053
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
00067 MultiaxialCyclicPlasticityPlaneStrain( int tag, double rho, double K, double G ) ;
00068
00069
00070 ~MultiaxialCyclicPlasticityPlaneStrain( ) ;
00071
00072 const char *getClassType(void) const {return "MultiaxialCyclicPlasticityPlaneStrain";};
00073
00074
00075 NDMaterial* getCopy( ) ;
00076
00077
00078 const char* getType( ) const ;
00079
00080
00081 int getOrder( ) const ;
00082
00083
00084
00085 int setTrialStrain( const Vector &strain_from_element) ;
00086
00087
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
00093 const Vector& getStrain( ) ;
00094
00095
00096 const Vector& getStress( ) ;
00097
00098
00099 const Matrix& getTangent( ) ;
00100 const Matrix& getInitialTangent( ) ;
00101
00102
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
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120 private :
00121
00122
00123 static Vector strain_vec ;
00124 static Vector stress_vec ;
00125 static Matrix tangent_matrix ;
00126 } ;
00127
00128
00129
00130 #endif