Skip to content
Snippets Groups Projects
Commit 98537fc8 authored by Elias Pipping's avatar Elias Pipping Committed by Elias Pipping
Browse files

Remove obsolete copy of vtkgridfunction.hh

parent 9aaf8b39
No related branches found
No related tags found
No related merge requests found
// -*- c-basic-offset:4 tab-width:4 -*-
#ifndef VTK_BASIS_GRID_FUNCTION_HH
#define VTK_BASIS_GRID_FUNCTION_HH
#include <dune/grid/io/file/vtk/function.hh>
/** \brief A VTK basis grid function.
*
* This function "evaluates" by evaluating the global basis and
*interpolating the function values.
* \tparam Basis The global basis.
* \tparam CoefficientType The vector type for the coefficients.
*/
template <class Basis, class CoefficientType>
class VTKBasisGridFunction : public VTKFunction<typename Basis::GridView> {
typedef VTKFunction<typename Basis::GridView> Base;
typedef typename Basis::LocalFiniteElement::Traits::LocalBasisType::Traits::
RangeType RangeType;
public:
typedef typename Base::Entity Entity;
typedef typename Base::ctype ctype;
using Base::dim;
/** \brief Construct from given global basis, coefficient vector and name.
*
* \param basis The global basis.
* \param v A corresponding vector of coefficients.
* \param s A name of the function.
*/
VTKBasisGridFunction(const Basis &basis, const CoefficientType &v,
const std::string &s)
: basis_(basis), coeffs_(v), s_(s) {
if (v.size() != basis_.size())
DUNE_THROW(
IOError,
"VTKGridFunction: Coefficient vector is not matching the basis");
}
/** \brief Get the number of components the function has. */
virtual int ncomps() const { return CoefficientType::block_type::dimension; }
/** \brief Locally evaluate a component of the function.
*
* \param comp The component to evaluate.
* \param e The element the local coordinates are taken from.
* \param xi The local coordinates where to evaluate the function.
*/
virtual double evaluate(int comp, const Entity &e,
const Dune::FieldVector<ctype, dim> &xi) const {
// evaluate the local shapefunctions
const typename Basis::LocalFiniteElement &localFE =
basis_.getLocalFiniteElement(e);
std::vector<RangeType> values(localFE.localBasis().size());
localFE.localBasis().evaluateFunction(xi, values);
// get the comp'th component
double rt = 0;
for (int i = 0; i < localFE.localBasis().size(); i++)
rt += values[i] * coeffs_[basis_.index(e, i)][comp];
return rt;
}
/** \brief Stupid function to return the name. */
virtual std::string name() const { return s_; }
/** \brief Destructor. */
virtual ~VTKBasisGridFunction() {}
private:
const Basis &basis_;
const CoefficientType &coeffs_;
std::string s_;
};
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment