Homepage > Man Pages > Category > Kernel Interface
Homepage > Man Pages > Name > C

# characteristic

## man page of characteristic

### characteristic: discrete mesh advection by a field: gh(x)=fh(x

```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;
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;
protected:
field          _fh;
characteristic _X;
point advect (const point& x0) const;
};

CHARACTERISTIC(9)
```