43 #ifndef PANZER_GATHER_BASIS_COORDINATES_IMPL_HPP 44 #define PANZER_GATHER_BASIS_COORDINATES_IMPL_HPP 46 #include "Teuchos_Assert.hpp" 47 #include "Phalanx_DataLayout.hpp" 53 #include "Teuchos_FancyOStream.hpp" 55 template<
typename EvalT,
typename TRAITS>
61 ss <<
"Basis_" << basisName <<
" BasisCoordinates";
65 template<
typename EvalT,
typename TRAITS>
69 basisName_ =
basis.name();
71 basisCoordinates_ = PHX::MDField<ScalarT,Cell,BASIS,Dim>(fieldName(basisName_),
basis.coordinates);
73 this->addEvaluatedField(basisCoordinates_);
75 this->setName(
"Gather "+fieldName(basisName_));
79 template<
typename EvalT,
typename TRAITS>
84 this->utils.setFieldData(basisCoordinates_,fm);
90 template<
typename EvalT,
typename TRAITS>
95 const Teuchos::RCP<const BasisValues2<double> > bv = this->wda(workset).bases[basisIndex_];
98 for(
int i=0;i<bv->basis_coordinates.extent_int(0);i++)
99 for(
int j=0;j<bv->basis_coordinates.extent_int(1);j++)
100 for(
int k=0;k<bv->basis_coordinates.extent_int(2);k++)
101 basisCoordinates_(i,j,k)= bv->basis_coordinates(i,j,k);
void evaluateFields(typename TRAITS::EvalData d)
void postRegistrationSetup(typename TRAITS::SetupData d, PHX::FieldManager< TRAITS > &vm)
std::vector< std::string >::size_type getPureBasisIndex(std::string basis_name, panzer::Workset &workset, WorksetDetailsAccessor &wda)
Returns the index in the workset bases for a particular PureBasis name.
Teuchos::RCP< const panzer::PureBasis > basis
Interpolates basis DOF values to IP DOF values.
Description and data layouts associated with a particular basis.
static std::string fieldName(const std::string &basisName)