Panzer  Version of the Day
Panzer_ResponseEvaluatorFactory_IPCoordinates_impl.hpp
Go to the documentation of this file.
1 #ifndef __Panzer_ResponseEvaluatorFactory_IPCoordinates_impl_hpp__
2 #define __Panzer_ResponseEvaluatorFactory_IPCoordinates_impl_hpp__
3 
4 #include <string>
5 #include <sstream>
6 
7 #include "PanzerDiscFE_config.hpp"
8 
10 #include "Panzer_PhysicsBlock.hpp"
11 #include "Panzer_Integrator_Scalar.hpp"
14 
15 namespace panzer {
16 
17 template <typename EvalT>
19 buildResponseObject(const std::string & responseName,const std::vector<WorksetDescriptor> & wkstDesc) const
20 {
21  // check that the input worksets constains only element blocks
22  bool failure = false;
23  std::stringstream failureStrm;
24  for(std::size_t i=0;i<wkstDesc.size();i++) {
25  failure |= wkstDesc[i].useSideset();
26  failureStrm << wkstDesc[i] << std::endl;
27  }
28  TEUCHOS_TEST_FOR_EXCEPTION(failure,std::runtime_error,
29  "REF_IPCoordinates::buildResponseObject: could not build using side set descriptors:\n"
30  << failureStrm.str());
31 
32  return Teuchos::rcp(new Response_IPCoordinates<EvalT>(responseName));
33 }
34 
35 template <typename EvalT>
37 buildAndRegisterEvaluators(const std::string & responseName,
39  const panzer::PhysicsBlock & physicsBlock,
40  const Teuchos::ParameterList & user_data) const
41 {
42  using Teuchos::RCP;
43  using Teuchos::rcp;
44 
45  // build scatter evaluator
46  {
47  // build useful evaluator
50 
51  this->template registerEvaluator<EvalT>(fm, eval);
52 
53  // require last field
54  fm.template requireField<EvalT>(*eval->evaluatedFields()[0]);
55  }
56 }
57 
58 template <typename EvalT>
61 {
62  return false;
63 }
64 
65 template < >
68 {
69  return true;
70 }
71 
72 }
73 
74 #endif
Object that contains information on the physics and discretization of a block of elements with the SA...
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
virtual Teuchos::RCP< ResponseBase > buildResponseObject(const std::string &responseName, const std::vector< WorksetDescriptor > &eBlocks) const
virtual void buildAndRegisterEvaluators(const std::string &responseName, PHX::FieldManager< panzer::Traits > &fm, const panzer::PhysicsBlock &physicsBlock, const Teuchos::ParameterList &user_data) const