00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef CMATERIAL_H
00014 #define CMATERIAL_H
00015
00016
00017 namespace fragment {
00018 class CMaterial;
00019
00020 enum MatType {LIN=0, RSF=1, LS=2, BLS=3, EXP=4};
00021 enum ReverseFlag {REVERSIBLE=0, IRREVERSIBLE=1};
00022 }
00023
00024
00025 class fragment::CMaterial {
00026 public:
00027 CMaterial(const MatType& type,
00028 const ReverseFlag& reversible,
00029 const double& maxCohesiveStress,
00030 const double& Gc,
00031 const double& betaSqr,
00032 const double& compStiff,
00033 int internalSize=4):
00034 _type(type),
00035 _reversible(reversible),
00036 _maxCohesiveStress(maxCohesiveStress),
00037 _Gc(Gc),
00038 _betaSqr(betaSqr),
00039 _compStiff(compStiff),
00040 _internalSize(internalSize) {}
00041
00042 ~CMaterial(){}
00043
00044 MatType type() const {return _type;}
00045 ReverseFlag reversibility() const {return _reversible;}
00046
00047 double maxCohesiveStress() const {return _maxCohesiveStress;}
00048 double gc() const {return _Gc;}
00049 double betaSqr() const {return _betaSqr;}
00050 double compStiff() const {return _compStiff;}
00051
00052 int numInternal() const {return _internalSize;}
00053
00054 private:
00055 const MatType _type;
00056 const ReverseFlag _reversible;
00057
00058 const double _maxCohesiveStress;
00059 const double _Gc;
00060 const double _betaSqr;
00061 const double _compStiff;
00062
00063 const int _internalSize;
00064 };
00065
00066 #endif