00001 #ifndef SPLAS1D_H
00002 #define SPLAS1D_H
00003
00004
00005 #include "iotools.h"
00006 #include "strretalg.h"
00007 #include "hardsoft.h"
00008 struct matrix;
00009 struct vector;
00010 struct atsel;
00011
00012
00013
00014
00015
00016
00017
00018
00019 class splas1d
00020 {
00021 public:
00022 splas1d (void);
00023 ~splas1d (void);
00024
00025 void read (XFILE *in);
00026
00027 double yieldfunction (matrix &sig,vector &q);
00028
00029 void dfdsigma (matrix &sig,matrix &dfds);
00030 void dfdsigmadsigma(matrix &dfdsdst);
00031 void dfdqpar (vector &dq);
00032 void dfdsigmadq (matrix &dfdsdq);
00033 void dhdgamma (long ipp,vector &epsp,matrix &sig,vector &dhdc);
00034
00035
00036
00037
00038 void plasmod (matrix &h);
00039 double plasmodscalar (matrix &sig,vector &epsp,vector &qtr,double gamma);
00040 void updateq(long ipp,double dgamma, vector &epsp, vector &q);
00041 void nlstresses (long ipp, long im,long ido);
00042 void nonloc_nlstresses (long ipp, long im,long ido);
00043 void matstiff (matrix &d,long ipp,long ido);
00044 void updateval (long ipp, long ido);
00045 void giveirrstrains (long ipp, long ido, vector &epsp);
00046 void changeparam (atsel &atm,vector &val);
00047 double give_consparam (long ipp,long ido);
00048 long give_num_interparam ();
00049 void give_interparam (long ipp,long ido,vector &q);
00050
00051
00052 double fs;
00053
00054 strretalg sra;
00055
00056 hardsoft hs;
00057
00058 };
00059
00060 #endif