6 #ifndef DUNE_GRID_IO_FILE_VTK_FUNCTION_HH 7 #define DUNE_GRID_IO_FILE_VTK_FUNCTION_HH 11 #include <dune/common/exceptions.hh> 12 #include <dune/common/fvector.hh> 14 #include <dune/geometry/type.hh> 15 #include <dune/geometry/referenceelements.hh> 16 #include <dune/geometry/multilineargeometry.hh> 40 template<
class Gr
idView >
50 virtual int ncomps ()
const = 0;
61 const Dune::FieldVector<ctype,dim>& xi)
const = 0;
64 virtual std::string
name ()
const = 0;
94 template<
typename GV,
typename V>
130 const Dune::FieldVector<ctype,dim>&)
const override 132 return v[mapper.
index(e)*ncomps_+mycomp_];
136 std::string
name ()
const override 174 if (v.size()!=(
unsigned int)(mapper.
size()*ncomps_))
175 DUNE_THROW(IOError,
"P0VTKFunction: size mismatch");
202 template<
typename GV,
typename V>
238 const Dune::FieldVector<ctype,dim>& xi)
const override 241 const unsigned int nVertices = e.subEntities(
dim);
243 std::vector<FieldVector<ctype,1> > cornerValues(nVertices);
244 for (
unsigned i=0; i<nVertices; ++i)
245 cornerValues[i] = v[mapper.
subIndex(e,i,myDim)*ncomps_+mycomp_];
248 const MultiLinearGeometry<ctype,dim,1> interpolation(e.type(), cornerValues);
249 return interpolation.global(xi);
253 std::string
name ()
const override 291 if (v.size()!=(
unsigned int)(mapper.
size()*ncomps_))
292 DUNE_THROW(IOError,
"P1VTKFunction: size mismatch");
303 #endif // DUNE_GRID_IO_FILE_VTK_FUNCTION_HH virtual int ncomps() const =0
std::string name() const override
get name
Definition: function.hh:136
concept Entity
Model of a grid entity.
Definition: concepts/entity.hh:119
P1VTKFunction(const GV &gv, const V &v_, const std::string &s_, int ncomps=1, int mycomp=0, VTK::Precision prec=VTK::Precision::float32)
construct from a vector and a name
Definition: function.hh:282
Mapper for multiple codim and multiple geometry types.
virtual ~VTKFunction()
virtual destructor
Definition: function.hh:71
static constexpr int mydimension
Dimensionality of the reference element of the entity.
Definition: common/entity.hh:112
double evaluate([[maybe_unused]] int comp, const Entity &e, const Dune::FieldVector< ctype, dim > &xi) const override
evaluate
Definition: function.hh:237
size_type size() const
Return total number of entities in the entity set managed by the mapper.
Definition: mcmgmapper.hh:204
Grid::ctype ctype
type used for coordinates in grid
Definition: common/gridview.hh:131
int ncomps() const override
return number of components
Definition: function.hh:231
virtual ~P0VTKFunction()
destructor
Definition: function.hh:179
Base::Entity Entity
Definition: function.hh:118
P0VTKFunction(const GV &gv, const V &v_, const std::string &s_, int ncomps=1, int mycomp=0, VTK::Precision prec=VTK::Precision::float32)
construct from a vector and a name
Definition: function.hh:165
GridView::template Codim< 0 >::Entity Entity
Definition: function.hh:46
A base class for grid functions with any return type and dimension.
Definition: function.hh:41
Base::ctype ctype
Definition: function.hh:119
virtual ~P1VTKFunction()
destructor
Definition: function.hh:296
VTK::Precision precision() const override
get output precision for the field
Definition: function.hh:259
MCMGLayout mcmgElementLayout()
layout for elements (codim-0 entities)
Definition: mcmgmapper.hh:97
GridView::ctype ctype
Definition: function.hh:44
virtual VTK::Precision precision() const
get output precision for the field
Definition: function.hh:67
Include standard header files.
Definition: agrid.hh:59
Base::Entity Entity
Definition: function.hh:226
static constexpr int dim
Definition: function.hh:45
Index index(const EntityType &e) const
Map entity to starting index in array for dof block.
Definition: mcmgmapper.hh:171
Implementation class for a multiple codim and multiple geometry type mapper.
Definition: mcmgmapper.hh:127
Take a vector and interpret it as point data for the VTKWriter.
Definition: function.hh:203
static constexpr int dimension
The dimension of the grid.
Definition: common/gridview.hh:134
Base::ctype ctype
Definition: function.hh:227
std::string name() const override
get name
Definition: function.hh:253
double evaluate(int, const Entity &e, const Dune::FieldVector< ctype, dim > &) const override
evaluate
Definition: function.hh:129
MCMGLayout mcmgVertexLayout()
layout for vertices (dim-0 entities)
Definition: mcmgmapper.hh:107
virtual double evaluate(int comp, const Entity &e, const Dune::FieldVector< ctype, dim > &xi) const =0
evaluate single component comp in the entity e at local coordinates xi
Take a vector and interpret it as cell data for the VTKWriter.
Definition: function.hh:95
Common stuff for the VTKWriter.
Precision
which precision to use when writing out data to vtk files
Definition: common.hh:271
Index subIndex(const typename GV::template Codim< 0 >::Entity &e, int i, unsigned int codim) const
Map subentity of codim 0 entity to starting index in array for dof block.
Definition: mcmgmapper.hh:185
VTK::Precision precision() const override
get output precision for the field
Definition: function.hh:142
virtual std::string name() const =0
get name
int ncomps() const override
return number of components
Definition: function.hh:123