level_set(4rheolef) rheolef-6.1 level_set(4rheolef)NAME
level_set - compute a level set from a function
SYNOPSYS
geo level_set (const field& fh);
DESCRIPTION
Given a function fh defined in a domain Lambda, compute the level set defined by {x in Lambda, fh(x) = 0}. This level set is represented
by the geo class.
OPTIONS
The option class leve_set_option_type controls the slit of quadrilaterals into triangles for tridimensional intersected surface and also
the zero machine precision, epsilon.
IMPLEMENTATION
struct level_set_option_type {
bool split_to_triangle;
Float epsilon;
level_set_option_type()
: split_to_triangle(true),
epsilon(100*std::numeric_limits<Float>::epsilon())
{}
};
template <class T, class M>
geo_basic<T,M> level_set (
const field_basic<T,M>& fh,
const level_set_option_type& opt = level_set_option_type());
rheolef-6.1 rheolef-6.1 level_set(4rheolef)
Check Out this Related Man Page
characteristic(2rheolef) rheolef-6.1 characteristic(2rheolef)NAME
characteristic - the Lagrange-Galerkin method implemented
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.
EXAMPLE
The following code compute the Riesz representer (see riesz(4)),
denoted by lh of u(x)=uh(x+dh(x)) where ah is the
deformation vector field. The deformation field dh=-dt*uh
in Lagrange-Galerkin methods, where ah is the advection field
and dt a time step.
geo omega;
field dh = ...;
field uh = ...;
characteristic X (dh);
field lh = riesz(Xh, compose(uh, X));
The Riesz representer is the lh vector field defined by:
lh(i) = integrate uh(x+dh(x)) phi_i(x) dx
where phi_i is the i-th basis function in the space Xh
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 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 riesz function.
IMPLEMENTATION
template<class T, class M = rheo_default_memory_model>
class characteristic_basic : public smart_pointer<characteristic_rep<T,M> > {
public:
typedef characteristic_rep<T,M> rep;
typedef smart_pointer<rep> base;
// allocator:
characteristic_basic(const field_basic<T,M>& dh);
// accesors:
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_type& qopt) const;
};
typedef characteristic_basic<Float> characteristic;
IMPLEMENTATION
template<class T, class M>
inline
field_o_characteristic<T,M>
compose (const field_basic<T,M>& uh, characteristic_basic<T,M>& X)
IMPLEMENTATION
template <class T, class M>
field_basic<T,M>
riesz (
const space_basic<T,M>& Xh,
const field_o_characteristic<T,M>& f,
quadrature_option_type qopt
= quadrature_option_type(quadrature_option_type::max_family,0));
SEE ALSO riesz(4)rheolef-6.1 rheolef-6.1 characteristic(2rheolef)