Go to the documentation of this file.
3 #ifndef DUNE_PDELAB_LOCALOPERATOR_L2VOLUMEFUNCTIONAL_HH
4 #define DUNE_PDELAB_LOCALOPERATOR_L2VOLUMEFUNCTIONAL_HH
8 #include <dune/common/exceptions.hh>
9 #include <dune/common/fvector.hh>
11 #include <dune/geometry/type.hh>
12 #include <dune/geometry/quadraturerules.hh>
14 #include <dune/localfunctions/common/interfaceswitch.hh>
54 template<
typename EG,
typename LFSV,
typename R>
58 using FESwitch = FiniteElementInterfaceSwitch<typename LFSV::Traits::FiniteElementType>;
59 using BasisSwitch = BasisInterfaceSwitch<typename FESwitch::Basis>;
60 using Range =
typename BasisSwitch::Range;
63 const auto& cell = eg.entity();
66 auto geo = eg.geometry();
69 std::vector<Range> phi(lfsv.size());
70 typename F::Traits::RangeType y(0.0);
76 FESwitch::basis(lfsv.finiteElement()).
77 evaluateFunction(ip.position(),phi);
80 f_.evaluate(cell,ip.position(),y);
83 auto factor = r.weight() * ip.weight() * geo.integrationElement(ip.position());
84 for (
size_t i=0; i<lfsv.size(); i++)
85 r.rawAccumulate(lfsv,i,y*phi[i]*factor);
100 #endif // DUNE_PDELAB_LOCALOPERATOR_L2VOLUMEFUNCTIONAL_HH
A local operator that tests a function against a test function space defined on the entire grid.
Definition: l2volumefunctional.hh:37
void lambda_volume(const EG &eg, const LFSV &lfsv, R &r) const
Definition: l2volumefunctional.hh:55
Default flags for all local operators.
Definition: flags.hh:18
unsigned int quadOrder_
Definition: l2volumefunctional.hh:93
For backward compatibility – Do not use this!
Definition: adaptivity.hh:28
L2VolumeFunctional(const F &f, unsigned int quadOrder)
Constructor.
Definition: l2volumefunctional.hh:49
@ doLambdaVolume
Definition: l2volumefunctional.hh:42
QuadratureRuleWrapper< QuadratureRule< typename Geometry::ctype, Geometry::mydimension > > quadratureRule(const Geometry &geo, std::size_t order, QuadratureType::Enum quadrature_type=QuadratureType::GaussLegendre)
Returns a quadrature rule for the given geometry.
Definition: quadraturerules.hh:117
const F & f_
Definition: l2volumefunctional.hh:90