rheolef  7.0
Public Types | Public Member Functions | List of all members
rheolef::characteristic_basic< T, M > Class Template Reference

characteristic - the Lagrange-Galerkin method implemented More...

#include <characteristic.h>

Inheritance diagram for rheolef::characteristic_basic< T, M >:
Inheritance graph
[legend]
Collaboration diagram for rheolef::characteristic_basic< T, M >:
Collaboration graph
[legend]

Public Types

typedef characteristic_rep< T, Mrep
 
typedef smart_pointer< repbase
 
- Public Types inherited from rheolef::smart_pointer< characteristic_rep< T, M > >
typedef base::internal internal
 

Public Member Functions

 characteristic_basic (const field_basic< T, M > &dh)
 
const field_basic< T, M > & get_displacement () const
 
const characteristic_on_quadrature< T, M > & get_pre_computed (const space_basic< T, M > &Xh, const field_basic< T, M > &dh, const quadrature_option &qopt) const
 
- Public Member Functions inherited from rheolef::smart_pointer< characteristic_rep< T, M > >
 smart_pointer (characteristic_rep< T, M > *p=0)
 
 smart_pointer (void *count, internal i)
 
 smart_pointer (const smart_pointer< characteristic_rep< T, M > > &x)
 
smart_pointer< characteristic_rep< T, M > > & operator= (const smart_pointer< characteristic_rep< T, M > > &x)
 
 ~smart_pointer ()
 
- Public Member Functions inherited from rheolef::smart_pointer_base< characteristic_rep< T, M >, details::constructor_copy< characteristic_rep< T, M > > >
 smart_pointer_base (characteristic_rep< T, M > *p=0)
 
 smart_pointer_base (const smart_pointer_base< characteristic_rep< T, M >, details::constructor_copy< characteristic_rep< T, M > > > &)
 
 smart_pointer_base (void *count, internal)
 
smart_pointer_base< characteristic_rep< T, M >, details::constructor_copy< characteristic_rep< T, M > > > & operator= (const smart_pointer_base< characteristic_rep< T, M >, details::constructor_copy< characteristic_rep< T, M > > > &)
 
 ~smart_pointer_base ()
 
const characteristic_rep< T, M > * pointer () const
 
characteristic_rep< T, M > * pointer ()
 
const characteristic_rep< T, M > & data () const
 
characteristic_rep< T, M > & data ()
 
const characteristic_rep< T, M > * operator-> () const
 
characteristic_rep< T, M > * operator-> ()
 
const characteristic_rep< T, M > & operator* () const
 
characteristic_rep< T, M > & operator* ()
 
int reference_counter () const
 
counter * get_count () const
 

Detailed Description

template<class T, class M = rheo_default_memory_model>
class rheolef::characteristic_basic< T, M >

characteristic - the Lagrange-Galerkin method implemented

SYNOPSIS

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.

EXAMPLE

Consider the bilinear form lh defined by

/
|
lh(x) = | uh(x+dh(x)) v(x) dx
|
/ Omega

where dh is a deformation vector field. The characteristic is defined by X(x)=x+dh(x) and the previous integral writes equivalently:

/
|
lh(x) = | uh(X(x)) v(x) dx
|
/ Omega

For instance, in Lagrange-Galerkin methods, the deformation field dh(x)=-dt*uh(x) where uh is the advection field and dt a time step. The following code implements the computation of lh:

field dh = ...;
field uh = ...;
test v (Xh);
field lh = integrate (compose(uh, X)*v, qopt);

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 integrate function see integrate algorithm.

Definition at line 124 of file characteristic.h.

Member Typedef Documentation

◆ rep

template<class T, class M = rheo_default_memory_model>
typedef characteristic_rep<T,M> rheolef::characteristic_basic< T, M >::rep

Definition at line 126 of file characteristic.h.

◆ base

template<class T, class M = rheo_default_memory_model>
typedef smart_pointer<rep> rheolef::characteristic_basic< T, M >::base

Definition at line 127 of file characteristic.h.

Constructor & Destructor Documentation

◆ characteristic_basic()

template<class T , class M >
endcode rheolef::characteristic_basic< T, M >::characteristic_basic ( const field_basic< T, M > &  dh)
inline

Definition at line 147 of file characteristic.h.

Member Function Documentation

◆ get_displacement()

template<class T , class M >
const field_basic< T, M > & rheolef::characteristic_basic< T, M >::get_displacement ( ) const
inline

Definition at line 154 of file characteristic.h.

◆ get_pre_computed()

template<class T , class M >
const characteristic_on_quadrature< T, M > & rheolef::characteristic_basic< T, M >::get_pre_computed ( const space_basic< T, M > &  Xh,
const field_basic< T, M > &  dh,
const quadrature_option qopt 
) const
inline

Definition at line 161 of file characteristic.h.


The documentation for this class was generated from the following file: