Rheolef  7.2
an efficient C++ finite element environment
 
Loading...
Searching...
No Matches
<tt>interpolate</tt>

function or expression interpolation

Description

The interpolation function implements the usual Lagrange interpolation of a function or a class-function on a finite element space.

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);

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));

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.

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.