00001 #ifndef CAMCLAYCOUP_H
00002 #define CAMCLAYCOUP_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
00049
00050
00051
00052
00053
00054 class camclaycoup
00055 {
00056 public:
00057 camclaycoup (void);
00058 ~camclaycoup (void);
00059 void read (XFILE *in);
00060 void initval(long ipp, long ido);
00061 double cohesion(vector &qtr);
00062 double yieldfunction (matrix &sig, vector &q);
00063 void deryieldfsigma (matrix &sig, vector &q, matrix &dfds);
00064 void dderyieldfsigma (matrix &ddfds);
00065 void derpotsigma (matrix &sig, vector &q, matrix &dgds);
00066 void deryieldfq(matrix &sig, vector &q, vector &dq);
00067 void deryieldfdqdq(matrix &dfq);
00068 void deryieldfdsdq(matrix &dfdsdqt);
00069 void dqdsigma(matrix &sigt, vector &qt, matrix &dqds);
00070 void dhardfdq(long ipp, long ido, double dgamma, vector &qt, matrix &dqdq);
00071 void der_q_gamma(long ipp, long ido, matrix &sig, vector &qtr, vector &dqdg);
00072 double plasmodscalar(long ipp, long ido, matrix &sig, vector &qtr);
00073 void updateq(long ipp, long ido, vector &eps, vector &epsp, matrix &sig, vector &q);
00074
00075 void matstiff (matrix &d, long ipp,long ido);
00076 void nlstresses (long ipp,long im,long ido);
00077 void updateval (long ipp,long ido);
00078 void giveirrstrains (long ipp, long ido, vector &epsp);
00079 double give_consparam (long ipp, long ido);
00080 double give_preconspress(long ipp, long ido);
00081 double give_virgporosity(long ipp, long ido);
00082 double give_iniporosity(long ipp, long ido);
00083 void give_reqnmq(long *anmq);
00084 void changeparam (atsel &atm,vector &val);
00085
00086
00087 double m;
00088
00089
00090 double lambda;
00091
00092
00093 double kappa;
00094
00095
00096 double c1_tilde;
00097
00098
00099 double c2;
00100
00101
00102 double ks;
00103
00104
00105 strretalg sra;
00106 };
00107
00108 #endif