43 #ifndef PANZER_NEUMANN_RESIDUAL_IMPL_HPP 44 #define PANZER_NEUMANN_RESIDUAL_IMPL_HPP 51 #include "Intrepid2_FunctionSpaceTools.hpp" 59 std::string residual_name = p.get<std::string>(
"Residual Name");
60 std::string flux_name = p.get<std::string>(
"Flux Name");
61 std::string normal_name = p.get<std::string>(
"Normal Name");
62 std::string normal_dot_flux_name = normal_name +
" dot " + flux_name;
72 normal_dot_flux = PHX::MDField<ScalarT>(normal_dot_flux_name, ir->dl_scalar);
73 flux = PHX::MDField<ScalarT>(flux_name, ir->dl_vector);
74 normal = PHX::MDField<ScalarT>(normal_name, ir->dl_vector);
78 this->addDependentField(
normal);
79 this->addDependentField(
flux);
83 std::string n =
"Neumann Residual Evaluator";
90 this->utils.setFieldData(
residual,fm);
92 this->utils.setFieldData(
flux,fm);
93 this->utils.setFieldData(
normal,fm);
109 for (index_t cell = 0; cell < workset.num_cells; ++cell) {
110 for (std::size_t ip = 0; ip <
num_ip; ++ip) {
112 for (std::size_t dim = 0; dim <
num_dim; ++dim) {
120 for (index_t cell = 0; cell < workset.num_cells; ++cell) {
122 for (std::size_t qp = 0; qp <
num_ip; ++qp) {
128 if(workset.num_cells>0)
129 Intrepid2::FunctionSpaceTools::
131 (this->wda(workset).bases[
basis_index])->weighted_basis_scalar,
132 Intrepid2::COMP_CPP);
PHX::MDField< ScalarT > residual
Evaluates a Dirichlet BC residual corresponding to a field value.
std::vector< std::string >::size_type getBasisIndex(std::string basis_name, panzer::Workset &workset, WorksetDetailsAccessor &wda)
Returns the index in the workset bases for a particular BasisIRLayout name.
PHX::MDField< ScalarT > flux
PHX::MDField< ScalarT > normal
Teuchos::RCP< panzer::BasisIRLayout > basisIRLayout(std::string basis_type, const int basis_order, const PointRule &pt_rule)
Nonmember constructor.
PHX_EVALUATOR_CTOR(BasisValues_Evaluator, p)
PHX::MDField< ScalarT > normal_dot_flux
PHX_EVALUATE_FIELDS(BasisValues_Evaluator, workset)
Teuchos::RCP< const panzer::PureBasis > basis
Interpolates basis DOF values to IP DOF values.
#define TEUCHOS_ASSERT(assertion_test)
Teuchos::RCP< PHX::DataLayout > functional
<Cell,Basis> or <Cell,Basis>
PHX_POST_REGISTRATION_SETUP(BasisValues_Evaluator, sd, fm)