00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00032
00033 #ifndef DM04_PF_H
00034 #define DM04_PF_H
00035
00036 #include "PlasticFlow.h"
00037 #include <math.h>
00038
00039 class DM04_PF : public PlasticFlow
00040 {
00041 public:
00042 DM04_PF(int e0_which, int index_e0,
00043 int e_r_which_in, int index_e_r_in,
00044 int lambda_c_which_in, int index_lambda_c_in,
00045 int xi_which_in, int index_xi_in,
00046 int Pat_which_in, int index_Pat_in,
00047 int m_which_in, int index_m_in,
00048 int M_cal_which_in, int index_M_cal_in,
00049 int cc_which_in, int index_cc_in,
00050 int A0_which_in, int index_A0_in,
00051 int nd_which_in, int index_nd_in,
00052 int alpha_which_in, int index_alpha_in,
00053 int z_which_in, int index_z_in);
00054 ~DM04_PF();
00055 PlasticFlow* newObj();
00056
00057 const straintensor& PlasticFlowTensor(const stresstensor &Stre,
00058 const straintensor &Stra,
00059 const MaterialParameter &MaterialParameter_in) const;
00060
00061 private:
00062
00063 double gete0(const MaterialParameter &MaterialParameter_in) const;
00064 double gete_r(const MaterialParameter &MaterialParameter_in) const;
00065 double getlambda_c(const MaterialParameter &MaterialParameter_in) const;
00066 double getxi(const MaterialParameter &MaterialParameter_in) const;
00067 double getPat(const MaterialParameter &MaterialParameter_in) const;
00068 double getm(const MaterialParameter &MaterialParameter_in) const;
00069 double getM_cal(const MaterialParameter &MaterialParameter_in) const;
00070 double getcc(const MaterialParameter &MaterialParameter_in) const;
00071 double getA0(const MaterialParameter &MaterialParameter_in) const;
00072 double getnd(const MaterialParameter &MaterialParameter_in) const;
00073
00074 const stresstensor& getalpha(const MaterialParameter &MaterialParameter_in) const;
00075 const stresstensor& getz(const MaterialParameter &MaterialParameter_in) const;
00076
00077 inline double getParameters(const MaterialParameter &MaterialParameter_in, int parIndex_in, int which_in) const;
00078 inline double getec(double e_r, double lambda_c, double xi, double Pat, double p_c) const;
00079 inline double getg(double c, double cos3theta) const;
00080
00081 private:
00082
00083 int e0_which; int index_e0;
00084 int e_r_which; int index_e_r;
00085 int lambda_c_which; int index_lambda_c;
00086 int xi_which; int index_xi;
00087 int Pat_which; int index_Pat;
00088 int m_which; int index_m;
00089 int M_cal_which; int index_M_cal;
00090 int cc_which; int index_cc;
00091 int A0_which; int index_A0;
00092 int nd_which; int index_nd;
00093
00094 int alpha_which; int index_alpha;
00095 int z_which; int index_z;
00096
00097 static straintensor DM04m;
00098 static stresstensor DM04temp;
00099 };
00100
00101
00102 #endif
00103