Class E_grid


Code: embedded/E_domain.mpl

Extends: grid
Field: triangle_quadrature_rule
Field: int_table::table

This is a table indexed by triples $(i,j,k)$; the values are the integrals over $F_{16}$ of $z_1^iz_2^j|n|^k$

Constructor: `new/E_grid`()

Method: create_samples()::void

This invokes the create_samples method for each face.


Method: int_x(f,k_)

The argument $f$ is assumed to be a polynomial in $x_1,\dotsc,x_4$. The method returns an approximation to the integral over $EX(a)$ of $f$, or of $f |n|^k$ if $k$ is given as an additional argument. Here $n$ is the gradient of $g$.


Method: int_z(f,k_)

The argument $f$ is assumed to be an expression in $z_1$ and $z_2$. The method returns an approximation to the integral over F16 of $f$, or of $f |n|^k$ if $k$ is given as an additional argument. Note that this is 1/16 times the integral over $EX(a)$.


Method: set_int_table(i,j,k_)

This sets one value in int_table


Method: int_z_by_table(f,k_)

This assumes that $f$ is a polynomial in $z_1$ and $z_2$. It calculates the integral of $f$ over $F_{16}$ by looking up the integrals of the individual monomials in int_table. If any of the required integrals are missing from int_table, then they will be calculated and saved there.


Method: set_max_deg(d::posint)::void

Calculate and save integrals for all monomials in $z_1$ and $z_2$ of degree at most $d$


Method: total_area()

This returns the total area of $F_{16}$


Method: total_curvature()

This returns the integral of the curvature over $F_{16}$


Method: curvature_error()

If the integration rule is accurate, then the result of this method should be zero, by the Gauss-Bonet Theorem.


Method: stokes_error(ff)

Here ff should be a list $(f_1,f_2)$ of two expressions in $z_1$ and $z_2$. The method returns the approximated integral of the exterior derivative of $f_1\alpha_1+f_2\alpha_2$, where the forms $\alpha_i$ are defined in embedded/roothalf/forms.mpl. If the integration rule is accurate, then the result should be zero, by Stokes's Theorem.