|
FEBio
1.5.0
|
00001 #pragma once 00002 #include "FEElasticMaterial.h" 00003 00004 class FE2DFiberNeoHookean : public FEElasticMaterial 00005 { 00006 enum { NSTEPS = 12 }; // nr of integration steps 00007 00008 public: 00009 FE2DFiberNeoHookean(); 00010 00011 public: 00012 double m_E; 00013 double m_v; 00014 00015 //--- active contraction stuff --- 00016 double m_a[2]; 00017 double m_ac; 00018 // ------------------------------- 00019 00020 public: 00022 virtual mat3ds Stress(FEMaterialPoint& pt); 00023 00025 virtual tens4ds Tangent(FEMaterialPoint& pt); 00026 00028 void Init(); 00029 00031 double BulkModulus() { return m_E/(3.0*(1.0 - 2.0*m_v));} 00032 00033 // declare as registered 00034 DECLARE_REGISTERED(FE2DFiberNeoHookean); 00035 00036 // declare the parameter list 00037 DECLARE_PARAMETER_LIST(); 00038 00039 00040 protected: 00041 static double m_cth[NSTEPS]; 00042 static double m_sth[NSTEPS]; 00043 };
1.7.5.1