@@ -180,7 +180,7 @@ family such as ``"Raviart-Thomas"``. Secondly, you may use the
180180family, which gives a vector-valued space where each component is
181181identical to the appropriate scalar-valued
182182:py:class: `~.FunctionSpace `. Thirdly, you can create a
183- :py:class: `~ufl.classes .VectorElement ` directly (which is itself
183+ :py:class: `~finat. ufl.mixedelement .VectorElement ` directly (which is itself
184184*vector-valued * and pass that to the :py:func: `~.FunctionSpace `
185185constructor).
186186
@@ -275,7 +275,7 @@ Firedrake supports the use of the following finite elements.
275275 :file: element_list.csv
276276
277277In addition, the
278- :py:class: `~ufl.finiteelement .tensorproductelement.TensorProductElement `
278+ :py:class: `~finat.ufl .tensorproductelement.TensorProductElement `
279279operator can be used to create product elements on extruded meshes.
280280
281281Element variants
@@ -289,16 +289,17 @@ continuous elements these are the Gauss-Lobatto-Legendre points.
289289For CG and DG spaces on simplices, Firedrake offers both equispaced points and
290290the better conditioned recursive Legendre points from :cite: `Isaac2020 ` via the
291291`recursivenodes `_ module. These are selected by passing ``variant="equispaced" ``
292- or ``variant="spectral" `` to the :py:class: `~ufl.classes .FiniteElement ` or
292+ or ``variant="spectral" `` to the :py:class: `~finat. ufl.finiteelement .FiniteElement ` or
293293:py:func: `~.FunctionSpace ` constructors. For example:
294294
295295.. code-block :: python3
296296
297297 fe = FiniteElement("RTCE", quadrilateral, 2, variant="equispaced")
298298
299- For CG and DG spaces, and most tensor-product elements, the default is the spectral variant.
299+ For CG and DG spaces, and most tensor-product elements, the default is `` variant="spectral" `` .
300300
301- Integral-type degrees of freedom are also available through ``variant="integral" ``. For instance,
301+ Integral-type degrees of freedom are also available through ``variant="integral" ``. These
302+ enable orthogonal bases for DG on any cell type:
302303
303304.. code-block :: python3
304305
@@ -310,7 +311,7 @@ can be increased also through the variant option. For instance, ``variant="integ
310311will use a quadrature that exactly evaluates the degrees of freedom on polynomials of
3113124 degrees higher than that of the space.
312313
313- The key role of integral -type degrees of freedom is to nearly preserve curl-free or
314+ Integral -type degrees of freedom are useful to nearly preserve curl-free or
314315divergence-free functions when interpolating into the finite element space.
315316H(curl) and H(div) elements, such as Nédélec, Brezzi-Douglas-Marini, and Raviart-Thomas,
316317have ``variant="integral" `` as default. These elements also support ``variant="point" ``,
@@ -710,50 +711,6 @@ we can write:
710711 c.assign(t)
711712
712713
713- Specifying the quadrature rule
714- ------------------------------
715-
716- To numerically compute the integrals in the variational formulation,
717- a quadrature rule is required.
718- By default, Firedrake obtains a quadrature rule by estimating the polynomial
719- degree of the integrands within a :py:class: `ufl.Form `. Sometimes
720- this estimate might be quite large, and a warning like this one will be raised:
721-
722- .. code-block ::
723-
724- tsfc:WARNING Estimated quadrature degree 13 more than tenfold greater than any argument/coefficient degree (max 1)
725-
726- This might increase memory and computational requirements. To manually override the default, the
727- quadrature degree can be prescribed on each integral,
728-
729- .. code-block ::
730-
731- inner(sin(u)**4, v) * dx(degree=4)
732-
733- This, of course, will introduce a variational crime.
734-
735-
736- Another way to specify the quadrature rule is through the ``scheme `` keyword. This could be
737- either a :py:class: `~finat.quadrature.QuadratureRule `, or a string. Supported string values
738- are ``"default" ``, ``"canonical" ``, and ``"lump" ``. For more details see
739- :py:func: `~FIAT.quadrature_schemes.create_quadrature `. Spectral elements, such as
740- Gauss-Legendre-Lobatto and KMV, may be used with lumped quadrature schemes to
741- produce a diagonal mass matrix.
742-
743- .. code-block ::
744-
745- degree = 3
746- V = FunctionSpace(mesh, "KMV", degree)
747- u = TrialFunction(V)
748- v = TestFunction(V)
749-
750- inner(u, v) * dx(scheme="lump", degree=degree)
751-
752- .. Note ::
753-
754- For ``scheme="lump" `` the ``degree `` argument is interpreted as the degree of :py:func: `~.FunctionSpace `.
755-
756-
757714 .. _more_complicated_forms :
758715
759716More complicated forms
0 commit comments