00001 #ifndef J2FLOW2_H
00002 #define J2FLOW2_H
00003
00004 #include "iotools.h"
00005 #include "strretalg.h"
00006 struct matrix;
00007 struct vector;
00008 struct atsel;
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 class j2flow2
00020 {
00021 public:
00022 j2flow2 (void);
00023 ~j2flow2 (void);
00024 void read (XFILE *in);
00025 void matstiff (matrix &d,long ipp,long ido);
00026 void tangentstiff (matrix &d, matrix &td, long ipp,long ido);
00027 double yieldfunction (matrix &sig,vector &q);
00028 void deryieldfsigma (matrix &sig,matrix &dfds);
00029 void deryielddsigmadsigma (matrix &sig,matrix &dfdsds);
00030 void deryieldfq (vector &dq);
00031 void deryieldfdqdq (matrix &dfdqdq);
00032 void deryieldfdsigmadq (matrix &dfdsdq);
00033 void plasmod (matrix &h);
00034 double plasmodscalar (vector &qtr);
00035 void updateq(double dgamma, vector &q);
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 void changeparam (atsel &atm,vector &val);
00041 double give_consparam (long ipp, long ido);
00042 long give_num_interparam ();
00043 void give_interparam (long ipp,long ido,vector &q);
00044
00045
00046 double fs;
00047
00048 double k;
00049
00050 strretalg sra;
00051 };
00052
00053 #endif