00001 //*****************************************************************// 00002 // Albany 2.0: Copyright 2012 Sandia Corporation // 00003 // This Software is released under the BSD license detailed // 00004 // in the file "license.txt" in the top-level Albany directory // 00005 //*****************************************************************// 00006 00007 #if ! defined(AAdapt_StressFracture_hpp) 00008 #define AAdapt_StressFracture_hpp 00009 00010 #include "Fracture.h" 00011 #include "Albany_STKDiscretization.hpp" 00012 00013 namespace AAdapt { 00014 00022 class StressFracture: public LCM::AbstractFractureCriterion { 00023 00024 public: 00025 00029 StressFracture(int numDim_, stk::mesh::EntityRank& elementRank, 00030 const std::vector<std::vector<double> >& stresses, 00031 double crit_stress, Albany::STKDiscretization& stk); 00032 00033 00048 virtual 00049 bool 00050 computeFractureCriterion(stk::mesh::Entity& entity, double p); 00051 00052 private: 00053 00054 StressFracture(); 00055 StressFracture(const StressFracture&); 00056 StressFracture& operator=(const StressFracture&); 00057 00058 const std::vector<std::vector<double> >& avg_stresses_; 00059 Albany::STKDiscretization& stk_; 00060 00061 double critical_stress_; 00062 00063 }; // class StressFracture 00064 00065 00066 } // namespace LCM 00067 00068 #endif // LCM_StressFracture_hpp