Go to the documentation of this file.00001
00002
00003
00004
00005
00006 #ifndef FACE_FRACTURE_CRITERIA_HPP
00007 #define FACE_FRACTURE_CRITERIA_HPP
00008
00009 #include "Phalanx_ConfigDefs.hpp"
00010 #include "Phalanx_Evaluator_WithBaseImpl.hpp"
00011 #include "Phalanx_Evaluator_Derived.hpp"
00012 #include "Phalanx_MDField.hpp"
00013
00014 #include "Intrepid_CellTools.hpp"
00015 #include "Intrepid_Cubature.hpp"
00016
00017 namespace LCM {
00022 template<typename EvalT, typename Traits>
00023 class FaceFractureCriteria : public PHX::EvaluatorWithBaseImpl<Traits>,
00024 public PHX::EvaluatorDerived<EvalT, Traits> {
00025
00026
00027 private:
00028 typedef typename EvalT::ScalarT ScalarT;
00029 typedef typename EvalT::MeshScalarT MeshScalarT;
00030
00031 public:
00032
00033 FaceFractureCriteria(const Teuchos::ParameterList& p);
00034
00035 void postRegistrationSetup(typename Traits::SetupData d,
00036 PHX::FieldManager<Traits>& vm);
00037
00038 void evaluateFields(typename Traits::EvalData d);
00039
00043 void testFracture();
00044
00048 void tractionCriterion();
00049
00050 private:
00051 unsigned int numDims;
00052 unsigned int numFaces;
00053 unsigned int numComp;
00054 unsigned int worksetSize;
00055
00056 std::string criterion;
00057
00058
00059 PHX::MDField<ScalarT,Cell,Vertex,Dim> coord;
00060 PHX::MDField<ScalarT,Cell,Face,VecDim> faceAve;
00061 RealType yieldStrength;
00062 RealType fractureLimit;
00063
00064 Teuchos::RCP<shards::CellTopology> cellType;
00065
00066
00067
00068 PHX::MDField<ScalarT,Cell,Face> criteriaMet;
00069
00070
00071 PHX::MDField<ScalarT,Cell> temp;
00072
00073
00074 const struct CellTopologyData_Subcell * sides;
00075
00076
00077 };
00078
00079 }
00080
00081 #endif