00001 #ifndef MICROM4_H
00002 #define MICROM4_H
00003
00004 #include "iotools.h"
00005 #include "matrix.h"
00006 #include "vector.h"
00007
00008
00009 class microM4
00010 {
00011 public:
00012 microM4 (void);
00013 ~microM4 (void);
00014 void read (XFILE *in);
00015 void matstiff (matrix &d,long ipp,long ido);
00016 void nlstresses (long ipp,long ido);
00017 void nonloc_nlstresses (long ipp,long ido);
00018 void updateval(long ipp,long im,long ido);
00019 void changeparam (atsel &atm,vector &val);
00020
00021
00022 long numberOfMicroplanes;
00023 double e,nu;
00024
00025 protected:
00026 vector microplaneWeights;
00027 matrix projN,projM,projL;
00028 vector kronecker;
00029 double k1,k2,k3,k4,c3,c20,c1,c2,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16,c17,c18,c19,mu,ev,ed,et;
00030 void initializeData (long numberOfMicroplanes );
00031 inline double macbra(double x);
00032 inline double FVplus(double epsV);
00033 inline double FVminus (double epsV);
00034 inline double FDminus(double epsD);
00035 inline double FDplus(double epsD);
00036 inline double FN(double epsN,double sigmaV);
00037 inline double FT (double sigmaN,double epsV);
00038 inline double maxim (double a,double b);
00039 inline double minim (double a,double b);
00040 };
00041
00042 #endif