00001 #ifndef CHEN_H
00002 #define CHEN_H
00003
00004 #include "iotools.h"
00005 #include "strretalg.h"
00006 #include "hardsoft.h"
00007 struct matrix;
00008 struct vector;
00009 struct atsel;
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 class chen
00021 {
00022 public:
00023 chen (void);
00024 ~chen (void);
00025 void read (XFILE *in);
00026 void matstiff (matrix &d,long ipp,long ido);
00027 void tangentstiff (matrix &d,matrix &td,long ipp,long ido);
00028
00029 double yieldfunction (matrix &sig,vector &q);
00030 void deryieldfdsigma (matrix &sig,vector &q,matrix &dfds);
00031 void deryieldfdsigmadsigma (matrix &sig,matrix &dfdsds);
00032 void deryieldfdq (matrix &sig,vector &q,vector &dfdq);
00033 void deryieldfdsigmadq (matrix &sig,vector &q,matrix &dfdsdq);
00034 void dhdsigma (matrix &sigt,vector &q,matrix &dhds);
00035 void dhdqpar (matrix &sigt,vector &q,matrix &dhdq);
00036 void dhdgamma (vector &dhdg);
00037 void hvalues (matrix &sigt,vector &q,vector &h);
00038
00039
00040 void nlstresses (long ipp, long im, long ido);
00041 void nonloc_nlstresses (long ipp, long im, long ido);
00042 void updateval (long ipp, long im, long ido);
00043 void changeparam (atsel &atm,vector &val);
00044 double give_consparam (long ipp, long ido);
00045 long give_num_interparam ();
00046 void give_interparam (long ipp,long ido,vector &q);
00047
00048 void hardsoftfunction (long ipp,vector &epsp,vector &q);
00049
00050
00051 double fyc;
00052
00053 double fyt;
00054
00055 double fybc;
00056
00057 double fc;
00058
00059 double ft;
00060
00061 double fbc;
00062
00063
00064 double ay;
00065
00066 double au;
00067
00068 double ky;
00069
00070 double ku;
00071
00072
00073 strretalg sra;
00074
00075 hardsoft hs;
00076
00077
00078 long state;
00079
00080
00081 double epslim;
00082 };
00083
00084 #endif