4 #ifndef DUNE_PDELAB_COMMON_VTKEXPORT_HH
5 #define DUNE_PDELAB_COMMON_VTKEXPORT_HH
11 #include <dune/common/shared_ptr.hh>
13 #include<dune/grid/io/file/vtk/vtkwriter.hh>
23 :
public Dune::VTKFunction<typename T::Traits::GridViewType>
25 typedef typename T::Traits::GridViewType::Grid::ctype DF;
26 enum {n=T::Traits::GridViewType::dimension};
27 typedef typename T::Traits::GridViewType::Grid::template Codim<0>::Entity Entity;
48 const std::vector<std::size_t> &remap_ =
50 : t(stackobject_to_shared_ptr(t_)), s(s_), remap(remap_)
68 const std::vector<std::size_t> &remap_ =
70 : t(t_), s(s_), remap(remap_)
78 virtual double evaluate (
int comp,
const Entity&
e,
const Dune::FieldVector<DF,n>& xi)
const override
80 typename T::Traits::DomainType x;
81 typename T::Traits::RangeType y;
83 for (
int i=0; i<n; i++)
86 return y[remap[comp]];
89 virtual std::string
name ()
const override
95 std::shared_ptr<const T> t;
97 std::vector<std::size_t> remap;
119 (
const std::shared_ptr<GF> &gf,
const std::string &name,
120 const std::vector<std::size_t> &remap =
122 {
return std::make_shared<VTKGridFunctionAdapter<GF> >(gf, name, remap); }
143 (
const GF &gf,
const std::string &name,
144 const std::vector<std::size_t> &remap =
146 {
return std::make_shared<VTKGridFunctionAdapter<GF> >(stackobject_to_shared_ptr(gf), name, remap); }
165 (
const std::shared_ptr<const GF> &gf,
const std::string &name,
166 const std::vector<std::size_t> &remap =
168 {
return std::make_shared<VTKGridFunctionAdapter<GF> >(gf, name, remap); }
174 template<
typename G,
typename FEM>
176 :
public Dune::VTKFunction<G>
178 typedef typename G::ctype DF;
179 enum {n=G::dimension};
180 typedef typename G::template Codim<0>::Entity Entity;
192 virtual double evaluate (
int comp,
const Entity&
e,
const Dune::FieldVector<DF,n>& xi)
const override
194 return fem.getOrder(
e);
197 virtual std::string
name ()
const override
210 #endif // DUNE_PDELAB_COMMON_VTKEXPORT_HH