24 const Teuchos::ParameterList& p)
26 std::string residual_name = p.get<std::string>(
"Residual Name");
27 std::string dof_name = p.get<std::string>(
"DOF Name");
28 std::string value_name = p.get<std::string>(
"Value Name");
30 Teuchos::RCP<PHX::DataLayout> data_layout =
31 p.get< Teuchos::RCP<PHX::DataLayout> >(
"Data Layout");
33 residual = PHX::MDField<ScalarT>(residual_name, data_layout);
34 dof = PHX::MDField<const ScalarT>(dof_name, data_layout);
35 value = PHX::MDField<const ScalarT>(value_name, data_layout);
37 this->addEvaluatedField(residual);
38 this->addDependentField(dof);
39 this->addDependentField(value);
41 std::string n =
"Dirichlet Residual Evaluator";
63 auto residual_v = residual.get_static_view();
64 auto dof_v = dof.get_static_view();
65 auto value_v = value.get_static_view();
66 auto local_cell_data_size = cell_data_size;
67 Kokkos::parallel_for (workset.
num_cells, KOKKOS_LAMBDA (index_t i) {
68 for (std::size_t j = 0; j < local_cell_data_size; ++j)
69 residual_v(i,j)=dof_v(i,j)-value_v(i,j);