Provided by:

librheolef-dev_5.93-2_i386 **NAME**

**characteristic** - discrete mesh advection by a field: gh(x)=fh(x-
dt*uh(x))

**SYNOPSYS**

The class characteristic is a class implementing the
Lagrange-Galerkin method. It is the extension of the method
of characteristic in the finite element context.
This is an expreimental implementation: please use the "geomap"
one for practical usage.

**EXAMPLE**

The following code compute the Riesz representant, denoted
by "mgh" of gh(x)=fh(x-dt*uh(x)).
geo omega_h;
field uh = ...;
field fh = ...;
characteristic X (omega_h, -dt*uh);
field mgh = riesz_representer(Vh, compose(fh, X));
The Riesz representer is the "mgh" vector of values:
mgh(i) = integrate fh(x-dt*uh(x)) phi_i(x) dx
where phi_i is the i-th basis function in Vh
and the integral is evaluated by using a quadrature formulae.
By default the quadrature formule is Gauss-Lobatto with
the order equal to the polynomial order of Vh.
This quadrature formulae guaranties inconditional stability
at any polynomial order (order 1: trapeze, order 2: simpson).
Extension will accept in the future alternative quadrature
formulae.

**IMPLEMENTATION**

class characteristic {
public:
characteristic(const geo& bg_omega, const field& ah);
const geo& get_background_geo() const;
const field& get_advection() const;
protected:
geo _bg_omega;
field _ah;
};
class field_o_characteristic {
public:
field_o_characteristic(const field& fh, const characteristic& X);
friend field_o_characteristic compose(
const field& fh, const characteristic& X);
Float operator() (const point& x) const;
point vector_evaluate (const point& x) const;
tensor tensor_evaluate (const point& x) const;
const field& get_field() const;
const geo& get_background_geo() const;
const field& get_advection() const;
protected:
field _fh;
characteristic _X;
point advect (const point& x0) const;
};