00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef J2Plasticity_h
00021 #define J2Plasticity_h
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050 #include <iostream.h>
00051 #include <stdio.h>
00052 #include <stdlib.h>
00053 #include <math.h>
00054
00055 #include <Vector.h>
00056 #include <Matrix.h>
00057 #include <NDMaterial.h>
00058
00059
00061 class J2Plasticity : public NDMaterial {
00062
00064
00065 public :
00066
00067
00068 J2Plasticity() ;
00069
00071 J2Plasticity( int tag,
00072 int classTag,
00073 double K,
00074 double G,
00075 double yield0,
00076 double yield_infty,
00077 double d,
00078 double H,
00079 double viscosity = 0 ) ;
00080
00082 J2Plasticity( int tag, int classTag, double K, double G ) ;
00083
00085 virtual ~J2Plasticity( ) ;
00086
00088 virtual NDMaterial* getCopy (const char *type);
00089
00091 int commitState( ) ;
00092
00094 int revertToLastCommit( ) ;
00095
00097 int revertToStart( ) ;
00098
00100 void Print(ostream &s, int flag = 0) ;
00101
00103 virtual NDMaterial *getCopy (void) ;
00105 virtual const char *getType (void) const ;
00107 virtual int getOrder (void) const ;
00108
00110 virtual int sendSelf(int commitTag, Channel &theChannel) ;
00112 virtual int recvSelf(int commitTag, Channel &theChannel,
00113 FEM_ObjectBroker &theBroker) ;
00115 protected :
00116
00117
00118 static Tensor rank2;
00120 static Tensor rank4;
00121
00123 double bulk ;
00124 double shear ;
00125 double sigma_0 ;
00126 double sigma_infty ;
00127 double delta ;
00128 double Hard ;
00129 double eta ;
00130
00132 Matrix epsilon_p_n ;
00133 Matrix epsilon_p_nplus1 ;
00134 double xi_n ;
00135 double xi_nplus1 ;
00136
00138 Matrix stress ;
00139 double tangent[3][3][3][3] ;
00140
00142 Matrix strain ;
00143
00145 static const double one3 ;
00147 static const double two3 ;
00149 static const double four3 ;
00151 static const double root23 ;
00152
00153
00155 void zero( ) ;
00156
00158 void plastic_integrator( ) ;
00159
00161 double q( double xi ) ;
00162
00164 double qprime( double xi ) ;
00165
00167 virtual void index_map( int matrix_index, int &i, int &j ) ;
00168
00169
00170 } ;
00171
00172 #endif
00173 ÿ