00001 #ifndef ORTODAM_H 00002 #define ORTODAM_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 This class defines scalar isotropic damage material model. 00013 The different type of norms for the computing parameters of 00014 the damage function can be used. 00015 The order of internal variables is following : 00016 0 - actual value of param At 00017 1 - actual value of param Ac 00018 2..4 - reached values of principal damage parameters for tension 00019 5..7 - reached values of principal damage parameters for compression 00020 8..13 - damage tensor for tension 00021 14..17 - cracks openings computed from tensile damage tensor 00022 */ 00023 class ortodam 00024 { 00025 public: 00026 ortodam (void); 00027 ~ortodam (void); 00028 void read (XFILE *in); 00029 double dam_eq_strain(double nu, long i,vector &peps); 00030 void loadfunc(long ipp, double nu, vector &peps, vector &damt, vector &damc, double aat, double aac, vector &lft, vector &lfc); 00031 double brittle_damage(long ipp, double y, double e, double f, double uf, double omegao); 00032 double qbezier_damage(long ipp, double y, double e, double f, double uf, double ul, double omegao,long pq); 00033 void princ_dam(long ipp, vector &peps, double aat, double aac, vector &pdamt, vector &pdamc); 00034 void give_actual_param_a(long ipp, long ido, double &aat, double &aac); 00035 double give_actual_ft(long ipp); 00036 double give_actual_fc(long ipp); 00037 void initvalues(long ipp, long ido); 00038 void matstiff (matrix &d,long ipp,long ido); 00039 void pelmatstiff (long ipp, matrix &d,double e, double nu); 00040 void elmatstiff (matrix &d,long ipp); 00041 void nlstresses (long ipp, long im, long ido); 00042 void updateval (long ipp,long im,long ido); 00043 00044 00045 /// type of damage evolution function 00046 dam_evolfunc damevf; 00047 /// type of equivalent strain norm 00048 paramf_type dameqstr; 00049 /// tensile strength 00050 double ft; 00051 /// initial crack opening u_ft or eps_ft - controls initial slope of softening branch for tension 00052 double uft; 00053 /// limit crack opening u_lt or eps_lt - limit value for zero stresses in tension 00054 double ult; 00055 /// compressive strength 00056 double fc; 00057 /// limit crack opening u_lc or eps_lc - limit value for zero stresses in compression 00058 double ulc; 00059 /// initial crack opening u_fc or eps_fc - controls initial slope of softening branch for compression 00060 double ufc; 00061 /// parameters for Newton tangent method for damage parameter computation for brittle evolution fucntion and correction of dissipated energy 00062 strretalg sra; 00063 /// correction of disipated energy switch 00064 corr_disip_en cde; 00065 /// material parameter At for tension 00066 double at; 00067 /// material parameter Bt for tension 00068 double bt; 00069 /// initial treshold for dimensionless damage driving force Y0 for tension 00070 double y0t; 00071 /// material parameter Ac for compression 00072 double ac; 00073 /// material parameter Bc for compression 00074 double bc; 00075 /// initial treshold for dimensionless damage driving force Y0 for compression 00076 double y0c; 00077 /// fracture energy of damage for tension 00078 double gft; 00079 /// fracture energy of damage for compression 00080 double gfc; 00081 /// indicator for singularity in quadratic Bezier evolution function for tension (pure quadratic function will be used instead Bezier one) 00082 long pqt; 00083 /// indicator for singularity in quadratic Bezier evolution function for compression (pure quadratic function will be used instead Bezier one) 00084 long pqc; 00085 /// flag for counting with fatigue 00086 fatigue_flag fat; 00087 /// coefficient of inelastic strains computed from damage parameter for tension 00088 double betat; 00089 /// coefficient of inelastic strains computed from damage parameter for compression 00090 double betac; 00091 }; 00092 00093 #endif