00001 #ifndef HISSPLAS_H
00002 #define HISSPLAS_H
00003
00004 #include "iotools.h"
00005 #include "strretalg.h"
00006 struct matrix;
00007 struct vector;
00008 struct atsel;
00009
00010
00011 class hissplas
00012 {
00013 public:
00014 hissplas(void);
00015 ~hissplas(void);
00016 void read(XFILE *in);
00017
00018 double yieldfunction (double i1, double j2, double cos3t, vector &q);
00019
00020 double yieldfunction (matrix sigt, vector &q);
00021
00022 double g1function(double depsvp, double depsdp, double i1, double j2, double alpha, double gamma);
00023
00024 void deryieldfsigma (long ipp, vector &dfds);
00025
00026 double dfdepsvp (long ipp, double i1, double alpha, double gamma, double ksi, matrix &depsp);
00027
00028 double dfdepspd (long ipp, double i1, double j2, matrix &dev, double ksi, matrix &depsp);
00029
00030 double dg1depsvp (long ipp, double i1, double j2, double alpha, double gamma, matrix &dev, double depspd,
00031 double ksi, matrix &depsp);
00032
00033 double dg1depsdp (long ipp, double i1, double j2, double alpha, double gamma, matrix &dev, double depsvp,
00034 double depsdp, double ksi, matrix &depsp);
00035
00036 void derplaspotsigma (long ipp, vector &dgds);
00037
00038 void matstiff (matrix &d,long ipp,long ido);
00039
00040 void nonloc_nlstresses (long ipp,long ido);
00041
00042 void nlstresses (long ipp,long ido);
00043
00044 void updateq (long ipp, matrix &depspt, matrix &sigt, matrix &depst, vector &q);
00045
00046 void updateval (long ipp, long ido);
00047
00048 void giveirrstrains (long ipp, long ido, vector &epsp);
00049
00050 double give_consparam (long ipp,long ido);
00051
00052 void changeparam (atsel &atm,vector &val);
00053
00054
00055 double beta;
00056
00057 double n;
00058
00059 double r;
00060
00061 double pa;
00062
00063 double alpha1;
00064
00065 double eta1;
00066
00067 double ksi_lim;
00068
00069 double gamma_max;
00070
00071 double k;
00072
00073 strretalg sra;
00074 };
00075
00076
00077 #endif