00001 #ifndef DOUBDP_H
00002 #define DOUBDP_H
00003
00004 #include "alias.h"
00005 #include "iotools.h"
00006 #include "strretalg.h"
00007 struct matrix;
00008 struct vector;
00009 struct atsel;
00010
00011
00012
00013
00014
00015
00016
00017
00018 class doubdp
00019 {
00020 public:
00021 doubdp (void);
00022 ~doubdp (void);
00023 void read (XFILE *in);
00024
00025 void params (long ipp, vector &q);
00026 double yieldfunction (matrix &sig, vector &q);
00027 void deryieldfsigma (matrix &sig, matrix &dfds, vector &q);
00028 void matstiff (matrix &d, long ipp,long ido);
00029 void tangentstiff (matrix &d,matrix &td,long ipp,long ido);
00030 void nlstresses (long ipp, long im, long ido);
00031 void updateval (long ipp, long im, long ido);
00032 double plasmodscalar (matrix &sig, vector &q);
00033 void updateq (long ipp, double dgamma, vector &q);
00034
00035
00036 double fc;
00037
00038 double ft;
00039
00040 double fb;
00041
00042 double alphat;
00043
00044 double alphac;
00045
00046 double taut;
00047
00048 double tauc;
00049
00050 double icr;
00051
00052 double jcr;
00053
00054 double ivrch;
00055
00056 double jvrch;
00057
00058 long v;
00059
00060 double gtf;
00061
00062 double gamult;
00063
00064
00065 strretalg sra;
00066
00067
00068
00069 };
00070
00071 #endif