00001 #ifndef DRPRAG_H
00002 #define DRPRAG_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 class drprag
00021 {
00022 public:
00023 drprag (void);
00024 ~drprag (void);
00025 void read (XFILE *in);
00026 double cohesion(vector &qtr);
00027 double yieldfunction (matrix &sig, vector &q);
00028 void deryieldfsigma (matrix &sig, matrix &dfds, vector &q);
00029 void derpotsigma (matrix &sig, matrix &dgds, vector &q);
00030 void deryieldfq(vector &qtr, vector &dfq);
00031 void der_q_gamma(vector &dqdg);
00032 double plasmodscalar (vector &qtr);
00033 void updateq(long ipp, vector &epsp, vector &q);
00034 void matstiff (matrix &d, long ipp, long ido);
00035 void tangentstiff (matrix &d,matrix &td,long ipp,long ido);
00036 void nlstresses (long ipp,long im,long ido);
00037 void nonloc_nlstresses (long ipp, long im, long ido);
00038 void updateval (long ipp, long im,long ido);
00039 void giveirrstrains (long ipp, long ido, vector &epsp);
00040 double give_consparam (long ipp, long ido);
00041 void changeparam (atsel &atm,vector &val);
00042
00043
00044
00045 double phi;
00046
00047 double c;
00048
00049 double psi;
00050
00051 double theta;
00052
00053 double clim;
00054
00055
00056 double alpha;
00057 double alpha1;
00058 double beta;
00059
00060
00061 strretalg sra;
00062 };
00063
00064 #endif