integrate_option(3rheolef) | rheolef | integrate_option(3rheolef) |
integrate_option - expression integration options (rheolef-7.2)
This class sends options to the integrate(3) function, when building a form(2) or a field(2).
Its allows one to choose the quadrature formula used during the numerical integration (Gauss, Gauss-Lobatto, etc) and the polynomial degree that is exactly integrated. This exactly integrated polynomial degree is called here the order of the quadrature formula. See also quadrature(1) for examples of quadrature formula.
In addition to the customization of the quadrature formula, the present class provides some booleaan flags, e.g. computation of the inverse matrix.
gauss
gauss_lobatto
gauss_radau
middle_edge
superconvergent
equispaced
invert
ignore_sys_coord
lump
a(i,i) += sum(j!=i) a(i,j)
This documentation has been generated from file fem/geo_element/integrate_option.h
class integrate_option { public: // typedefs:
typedef size_t size_type;
typedef enum {
gauss = 0,
gauss_lobatto = 1,
gauss_radau = 2,
middle_edge = 3,
superconvergent = 4,
equispaced = 5,
max_family = 6
} family_type; // update also family_name[] in quatrature.cc
static const size_type unset_order = std::numeric_limits<size_type>::max();
static const size_type default_order = unset_order;
static const family_type default_family = gauss; // allocators:
integrate_option(
family_type ft = default_family,
size_type k = default_order);
integrate_option (const std::string& name);
integrate_option (const integrate_option& iopt);
integrate_option& operator= (const integrate_option& iopt); // accessors & modifiers:
std::string name() const;
size_t get_order() const;
family_type get_family() const;
std::string get_family_name() const;
void reset (const std::string& name);
void set_order (size_t r);
void set_family (family_type type);
void set_family (std::string name); // data:
bool invert, ignore_sys_coord, lump;
};
Pierre Saramito <Pierre.Saramito@imag.fr>
Copyright (C) 2000-2018 Pierre Saramito <Pierre.Saramito@imag.fr> GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.
Mon Sep 19 2022 | Version 7.2 |