integrate(3rheolef) | rheolef | integrate(3rheolef) |
integrate - expression integration (rheolef-7.1)
template <typename Expression>
Value integrate (geo domain, Expression, integrate_option iopt);
This overloaded function is able to return either a scalar constant, a field(2) or a bilinear form(2), depending upon its arguments.
The general call involves three arguments:
Here is the overloaded synopsis:
Float integrate (geo domain, Expression, integrate_option iopt);
field integrate (geo domain, Expression, integrate_option iopt);
form integrate (geo domain, Expression, integrate_option iopt);
Some argument could be omitted when the expression involves a test(2) function:
The reduced synopsis is:
field integrate (Expression, integrate_option iopt);
form integrate (Expression, integrate_option iopt);
The reduced synopsis is:
field integrate (geo domain, Expression);
form integrate (geo domain, Expression);
Both arguments could be omitted an the synopsis becomes:
field integrate (Expression);
form integrate (Expression);
Let omega be a finite element mesh of a geometric domain, as described by the geo(2) class. A subdomain is defined by indexation, e.g. omega['left'] and, when a test(2) function is involved, the omega could be omitted, and only the string 'left' has to be present e.g.
test v (Xh);
field lh = integrate ("left", 2*v);
is equivalent to
field lh = integrate (omega["left"], 2*v);
Finally, when only the domain argument is provided, the integrate function returns its measure:
Float integrate (geo domain);
The computation of the measure of a domain:
Float meas_omega = integrate (omega);
Float meas_left = integrate (omega["left"]);
The integral of a function:
Float f (const point& x) { return exp(x[0]+x[1]); }
...
integrate_option iopt;
iopt.set_order (3);
Float int_f = integrate (omega, f, iopt);
The function can be replaced by any expression combining functions,
class-functions and field(2).
The right-hand-side involved by the variational formulation
space Xh (omega, "P1");
test v (Xh);
field lh = integrate (f*v);
For a bilinear form:
trial u (Xh);
form m = integrate (u*v);
form a = integrate (dot(grad(u),grad(v)));
The expression can also combine functions, class-functions and
field(2).
This documentation has been generated from file main/lib/integrate.h
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.
Sat Mar 13 2021 | Version 7.1 |