DESCRIPTION

The function interpolation implements the Lagrange interpolation of a function or a class-function.

SYNOPSYS

template <class Function> field interpolate (const space& Xh, const Function& f);

EXAMPLE

The following code compute the Lagrange interpolation pi_h_u of u(x).

  Float u(const point& x);
  ...
  geo omega("square");
  space Xh (omega, "P1");
  field pi_h_u = interpolate (Xh, u);

ADVANCED EXAMPLE

It is possible the replace the function u by a variable of the field type that represents a picewise polynomial function: this invocation allows the reinterpolation of a field on another mesh or with another approximation.

  geo omega2 ("square2");
  space X2h (omega2, "P1");
  field uh2 = interpolate (X2h, pi_h_u);

IMPLEMENTATION

// TODO: un peu general... utiliser des specialisation des classes-fonctions:
//      function<Float(const point&)>
//      function<point(const point&)>
//      function<tensor(const point&)>
template <class T, class M, class Function>
inline
field_basic<T,M>
interpolate (const space_basic<T,M>& Xh, const Function& f)