.\" .de Id .. .de Sp .if n .sp .if t .sp 0.4 .. .TH characteristic 2rheolef "rheolef-6.7" "rheolef-6.7" "rheolef-6.7" .\" label: /*Class:characteristic .SH NAME \fBcharacteristic\fP - the Lagrange-Galerkin method implemented .\" skip: @cindex Lagrange-Galerkin method .\" skip: @cindex method of characteristic .\" skip: @cindex quadrature formulae .\" skip: @findex riesz .\" skip: @clindex space .\" skip: @clindex geo .PP .SH SYNOPSYS The class characteristic implements the Lagrange-Galerkin method: It is the extension of the method of characteristic from the finite difference to the finite element context. .SH EXAMPLE Consider the bilinear form \fBlh\fP defined by .\" begin_example .Sp .nf / | lh(x) = | uh(x+dh(x)) v(x) dx | / Omega .Sp .fi .\" end_example where \fBdh\fP is a deformation vector field. The characteristic is defined by \fBX(x)=x+dh(x)\fP and the previous integral writes equivalently: .\" begin_example .Sp .nf / | lh(x) = | uh(X(x)) v(x) dx | / Omega .Sp .fi .\" end_example .PP For instance, in Lagrange-Galerkin methods, the deformation field \fBdh(x)=-dt*uh(x)\fP where \fBuh\fP is the advection field and \fBdt\fP a time step. The following code implements the computation of lh: .\" begin_example .Sp .nf field dh = ...; field uh = ...; characteristic X (dh); test v (Xh); field lh = integrate (compose(uh, X)*v, qopt); .Sp .fi .\" end_example The Gauss-Lobatto quadrature formule is recommended for Lagrange-Galerkin methods. The order equal to the polynomial order of Xh (order 1: trapeze, order 2: simpson, etc). Recall that this choice of quadrature formulae guaranties inconditional stability at any polynomial order. Alternative quadrature formulae or order can be used by using the additional quadrature option argument to the \fBintegrate\fP function see integrate(4). .\" END .SH IMPLEMENTATION .\" begin_example .Sp .nf template class characteristic_basic : public smart_pointer > { public: typedef characteristic_rep rep; typedef smart_pointer base; // allocator: characteristic_basic(const field_basic& dh); // accesors: const field_basic& get_displacement() const; const characteristic_on_quadrature& get_pre_computed ( const space_basic& Xh, const field_basic& dh, const quadrature_option_type& qopt) const; }; typedef characteristic_basic characteristic; .Sp .fi .\" end_example .\" LENGTH = 1 .SH SEE ALSO integrate(4)