00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef _DAMAGE_H
00015 #define _DAMAGE_H
00016
00017 #include "cmodel.h"
00018
00019
00020
00021
00022 class cDamage : public cConstModel
00023 {
00024 protected:
00025 int _iNumStressCmp;
00026 double _IncE[3];
00027 double _IteE[3];
00028 double *_IteStress;
00029 double *_IteStrain;
00030 sPrincStr _PrincStrain;
00031 sPrincStrVec _PrincStrainVec;
00032 double _StrainAngle;
00033 double **_IncDMatrix;
00034 double **_IteDMatrix;
00035
00036 public:
00037 cDamage ( cIntPt *, cMaterial * );
00038 ~cDamage ( void );
00039 void Init ( void );
00040 void Update ( void );
00041 int Stress ( double *, double * );
00042 void ModifyCMatrix ( double ** );
00043
00044 virtual double TensileDamage ( double ) = 0;
00045 virtual double CompressiveDamage( double ) = 0;
00046
00047 private:
00048 void CalculateDamage ( void );
00049 double GetE0 ( void );
00050 };
00051
00052 #endif