1 #ifndef VERTEXCFD_CLOSURE_CONSTANTVECTORFIELD_IMPL_HPP
2 #define VERTEXCFD_CLOSURE_CONSTANTVECTORFIELD_IMPL_HPP
4 #include "utils/VertexCFD_Utils_VectorField.hpp"
6 #include <Panzer_HierarchicParallelism.hpp>
12 namespace ClosureModel
15 template<
class EvalType,
class Traits,
int NumSpaceDim>
16 ConstantVectorField<EvalType, Traits, NumSpaceDim>::ConstantVectorField(
17 const panzer::IntegrationRule& ir,
18 const Teuchos::ParameterList& closure_params)
19 : _ir_degree(ir.cubature_degree)
20 , _vec_field_name(closure_params.get<std::string>(
"Vector Field Name"))
24 = closure_params.get<Teuchos::Array<double>>(
"Vector Field Value");
25 for (
int dim = 0; dim < num_space_dim; ++dim)
27 _vector[dim] = vector[dim];
31 Utils::addEvaluatedVectorField(
32 *
this, ir.dl_scalar, _vector_field, _vec_field_name +
"_");
34 this->setName(
"Constant Vector Field \"" + _vec_field_name +
"_" +
"\"");
37 template<
class EvalType,
class Traits,
int NumSpaceDim>
38 void ConstantVectorField<EvalType, Traits, NumSpaceDim>::evaluateFields(
39 typename Traits::EvalData )
41 for (
int dim = 0; dim < num_space_dim; ++dim)
42 Kokkos::deep_copy(_vector_field[dim].get_view(), _vector[dim]);
50 #endif // end VERTEXCFD_CLOSURE_CONSTANTVECTORFIELD_IMPL_HPP