00001 #ifndef MICROFIBER_H
00002 #define MICROFIBER_H
00003
00004 #include "iotools.h"
00005 #include "matrix.h"
00006 #include "vector.h"
00007
00008
00009
00010 class microfiber
00011 {
00012 public:
00013 microfiber (void);
00014 ~microfiber (void);
00015 void read (XFILE *in);
00016 void matstiff (matrix &d,long ipp,long ido);
00017 void nlstresses (long ipp,long ido);
00018 void updateval(long ipp,long im, long ido);
00019
00020
00021 long numberOfMicroplanes;
00022 double e,nu;
00023
00024 protected:
00025 vector microplaneWeights;
00026 matrix projN,projM,projL;
00027 vector kronecker;
00028 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;
00029 double k10,k11,k12,k13;
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 FFiber(double epsnN);
00039 inline double maxim (double a,double b);
00040 inline double minim (double a,double b);
00041 };
00042
00043 #endif