interpolate - function or expression interpolation (rheolef-7.2)
Contents
Copyright
Copyright (C) 2000-2018 Pierre Saramito <Pierre.Saramito@imag.fr> GPLv3+: GNU GPL version 3 or
later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and
redistribute it. There is NO WARRANTY, to the extent permitted by law.
rheolef Version 7.2 interpolate(3rheolef)
Description
The interpolation function implements the usual Lagrange interpolation of a function or a class-function
on a finite element space(2).
Expressions
It is possible to interpolate an expression involving a combination of functions, class-functions and
fields:
field vh = interpolate (Xh, sqrt(uh) + 2*max(0.,uh));
Implementation
This documentation has been generated from file main/lib/interpolate.h
The implementation of expressions bases on the expression template and SFINAE C++ idioms.
Name
interpolate - function or expression interpolation (rheolef-7.2)
Reinterpolation
The reinterpolation of a field on another mesh or on another finite element space is also possible:
geo omega2 ('square2');
space X2h (omega2, 'P1');
field uh2 = interpolate (X2h, pi_h_u);
Such a reinterpolation is very frequent in mesh adaptive loops.
Synopsis
template <class Expression>
field interpolate (const space& Xh, const Expression& expr);
Example The following code compute the Lagrange interpolation pi_h_u the function u(x):
Float u(const point& x) { return exp(x[0]*x[1]); }
...
geo omega('square');
space Xh (omega, 'P1');
field pi_h_u = interpolate (Xh, u);
