Lagrange interpolation of a function
The function interpolation implements the Lagrange interpolation of a function or a class-function.
template <class Function> field interpolate (const space& Xh, const Function& f);
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);
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);
// 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)