dune-pdelab 2.7-git
Loading...
Searching...
No Matches
Integrating grid functions

First, we define some example grid function to integrate.

auto analyticFunction = Dune::PDELab::makeGridFunctionFromCallable (grid.leafGridView(), [&](const auto& i, const auto& x){
return exp(-(x*x));
});
WrapperConformingToGridFunctionInterface makeGridFunctionFromCallable(const GV &gv, const F &f)
Create a GridFunction adapter from a callable.
Definition callableadapter.hh:113

Computing the integral of a grid function is just a single call:

auto integral = Dune::PDELab::integrateGridFunction(analyticFunction,10);
GF::Traits::RangeType integrateGridFunction(const GF &gf, unsigned qorder=1)
Integrate a GridFunction.
Definition functionutilities.hh:51

When run in parallel, this integrates over the local interior domain. So, in that case, we still need to sum over all processes for the full integral.

integral = grid.leafGridView().comm().sum(integral);

Full example code: recipe-integrating-grid-functions.cc