00001 #ifndef CAMCLAY_H
00002 #define CAMCLAY_H
00003
00004 #include "iotools.h"
00005 #include "alias.h"
00006 #include "strretalg.h"
00007 struct matrix;
00008 struct vector;
00009 struct atsel;
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
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 class camclay
00049 {
00050 public:
00051 camclay (void);
00052 ~camclay (void);
00053 void read (XFILE *in);
00054 void initval(long ipp, long ido);
00055 double cohesion(vector &qtr);
00056 double yieldfunction (matrix &sig, vector &q);
00057 void deryieldfsigma (matrix &sig, vector &q, matrix &dfds);
00058 void dderyieldfsigma (matrix &ddfds);
00059 void derpotsigma (matrix &sig, vector &q, matrix &dgds);
00060 void deryieldfq(matrix &sig, vector &dq);
00061 void deryieldfdqdq(matrix &dfq);
00062 void deryieldfdsdq(matrix &dfdsdqt);
00063 void dqdsigma(matrix &sigt, vector &qt, matrix &dqds);
00064 void dhardfdq(long ipp, long ido, double dgamma, vector &qt, matrix &dqdq);
00065 void der_q_gamma(long ipp, long ido, matrix &sig, vector &qtr, vector &dqdg);
00066 double plasmodscalar(long ipp, long ido, matrix &sig, vector &qtr);
00067 void updateq(long ipp, long ido, vector &eps, vector &epsp, matrix &sig, vector &q);
00068
00069 double give_actual_ym(long ipp, long im, long ido);
00070 double give_actual_nu(long ipp, long im, long ido);
00071 void matstiff (matrix &d, long im, long ipp, long ido);
00072 void nlstresses (long ipp, long im, long ido);
00073 void updateval (long ipp, long ido);
00074 void giveirrstrains (long ipp, long ido, vector &epsp);
00075 double give_consparam (long ipp, long ido);
00076 double give_preconspress(long ipp, long ido);
00077 double give_virgporosity(long ipp, long ido);
00078 double give_iniporosity(long ipp, long ido);
00079 void changeparam (atsel &atm, vector &val);
00080
00081
00082
00083 double m;
00084
00085
00086 double lambda;
00087
00088
00089 double kappa;
00090
00091
00092 strretalg sra;
00093 };
00094
00095 #endif