pymor.discretizers.builtin.grids.interfaces
¶
Module Contents¶
- class pymor.discretizers.builtin.grids.interfaces.BoundaryInfo[source]¶
Bases:
pymor.core.cache.CacheableObject
Provides boundary types for the boundaries of a given
Grid
.For every boundary type and codimension a mask is provided, marking grid entities of the respective type and codimension by their global index.
Methods
Return mask.
Return no boundary type mask.
Return unique boundary type mask.
- mask(boundary_type, codim)[source]¶
Return mask.
retval[i] is
True
if the codim-codim
entity of global indexi
is associated to the boundary typeboundary_type
.
- class pymor.discretizers.builtin.grids.interfaces.Grid[source]¶
Bases:
pymor.core.cache.CacheableObject
Affine grid.
Topological grid with geometry where each codim-0 entity is affinely mapped to the same
ReferenceElement
.The grid is completely determined via the subentity relation given by
subentities
and the embeddings given byembeddings
. In addition, onlysize
andreference_element
have to be implemented.Methods
Returns the global indices of all codim-
codim
boundary entities.Return boundary mask.
Returns a
(2, dim)
-shaped array containing lower/upper bounding box coordinates.retval[e]
is the barycenter of the codim-codim
entity with global indexe
.retval[e]
is the diameter of the codim-codim
entity with global indexe
.Return embeddings.
retval[e]
is given assqrt(det(A^T*A))
, whereA = embeddings(codim)[0][e]
.Return the inverse of transposed Jacobian.
Maps entity index and local neighbor index to global neighbor index.
Returns the quadrature points.
The
ReferenceElement
of the codim-codim
entities.The number of entities of codimension
codim
.Return subentities.
Return superentities.
Return indices of superentities.
Return unit outer normals.
Return volumes.
retval[e] = 1 / volumes(codim)[e]
.- boundaries(codim)[source]¶
Returns the global indices of all codim-
codim
boundary entities.By definition, a codim-1 entity is a boundary entity if it has only one codim-0 superentity. For
codim != 1
, a codim-codim
entity is a boundary entity if it has a codim-1 sub/super-entity.
- boundary_mask(codim)[source]¶
Return boundary mask.
retval[e]
is true iff the codim-codim
entity with global indexe
is a boundary entity.By definition, a codim-1 entity is a boundary entity if it has only one codim-0 superentity. For
codim != 1
, a codim-codim
entity is a boundary entity if it has a codim-1 sub/super-entity.
- bounding_box()[source]¶
Returns a
(2, dim)
-shaped array containing lower/upper bounding box coordinates.
- abstract embeddings(codim)[source]¶
Return embeddings.
Returns tuple
(A, B)
whereA[e]
andB[e]
are the linear part and the translation part of the map from the reference element ofe
toe
.For
codim > 0
, we provide a default implementation by taking the embedding of the codim-1 parent entitye_0
ofe
with lowest global index and composing it with the subentity_embedding ofe
intoe_0
determined by the reference element.
- integration_elements(codim)[source]¶
retval[e]
is given assqrt(det(A^T*A))
, whereA = embeddings(codim)[0][e]
.
- jacobian_inverse_transposed(codim)[source]¶
Return the inverse of transposed Jacobian.
retval[e]
is the transposed (pseudo-)inverse of the Jacobian ofembeddings(codim)[e]
.
- neighbors(codim, neighbor_codim, intersection_codim=None)[source]¶
Maps entity index and local neighbor index to global neighbor index.
retval[e,n]
is the global index of then
-th codim-neighbor_codim
entity of the codim-codim
entitye
that shares withe
a subentity of codimensionintersection_codim
.If
intersection_codim == None
, it is set tocodim + 1
ifcodim == neighbor_codim
and tomin(codim, neighbor_codim)
otherwise.The default implementation is to compute the result from
subentities(codim, intersection_codim)
andsuperentities(intersection_codim, neighbor_codim)
.
- quadrature_points(codim, order=None, npoints=None, quadrature_type='default')[source]¶
Returns the quadrature points.
retval[e]
is an array of quadrature points in global coordinates for the codim-codim
entity with global indexe
.The quadrature is of order
order
or hasnpoints
integration points. To integrate a functionf
overe
one has to formnp.dot(f(quadrature_points(codim, order)[e]), reference_element(codim).quadrature(order)[1]) * integration_elements(codim)[e]. # NOQA
- abstract reference_element(codim)[source]¶
The
ReferenceElement
of the codim-codim
entities.
- abstract subentities(codim, subentity_codim)[source]¶
Return subentities.
retval[e,s]
is the global index of thes
-th codim-subentity_codim
subentity of the codim-codim
entity with global indexe
.The ordering of
subentities(0, subentity_codim)[e]
has to correspond, w.r.t. the embedding ofe
, to the local ordering inside the reference element.For
codim > 0
, we provide a default implementation by calculating the subentities ofe
as follows:Find the
codim-1
parent entitye_0
ofe
with minimal global indexLookup the local indices of the subentities of
e
insidee_0
using the reference element.Map these local indices to global indices using
subentities(codim - 1, subentity_codim)
.
This procedures assures that
subentities(codim, subentity_codim)[e]
has the right ordering w.r.t. the embedding determined bye_0
, which agrees with what is returned byembeddings(codim)
- superentities(codim, superentity_codim)[source]¶
Return superentities.
retval[e,s]
is the global index of thes
-th codim-superentity_codim
superentity of the codim-codim
entity with global indexe
.retval[e]
is sorted by global index.The default implementation is to compute the result from
subentities(superentity_codim, codim)
.
- superentity_indices(codim, superentity_codim)[source]¶
Return indices of superentities.
retval[e,s]
is the local index of the codim-codim
entitye
in the codim-superentity_codim
superentitysuperentities(codim, superentity_codim)[e,s].
- unit_outer_normals()[source]¶
Return unit outer normals.
retval[e,i]
is the unit outer normal to the i-th codim-1 subentity of the codim-0 entity with global indexe
.
- class pymor.discretizers.builtin.grids.interfaces.GridWithOrthogonalCenters[source]¶
Bases:
Grid
Grid
with an additionalorthogonal_centers
method.Methods
Return orthogonal centers.
- abstract orthogonal_centers()[source]¶
Return orthogonal centers.
retval[e]
is a point inside the codim-0 entity with global indexe
such that the line segment fromretval[e]
toretval[e2]
is always orthogonal to the codim-1 entity shared by the codim-0 entities with global indexe
ande2
.(This is mainly useful for gradient approximation in finite volume schemes.)
- class pymor.discretizers.builtin.grids.interfaces.ReferenceElement[source]¶
Bases:
pymor.core.cache.CacheableObject
Defines a reference element.
All reference elements have the property that all subentities of a given codimension are of the same type. I.e. a three-dimensional reference element cannot have triangles and rectangles as faces at the same time.
Methods
Coordinates of the barycenter.
Return the diameter after transformation.
Return quadrature points and weights.
Return quadrature information.
Number of subentities of codimension
codim
.Returns the reference element of the codim-
codim
subentities.Return subentities.
Return subentity embedding.
retval[e]
is the unit outer-normal vector to the codim-1 subentity with indexe
.- abstract mapped_diameter(A)[source]¶
Return the diameter after transformation.
The diameter of the reference element after transforming it with the matrix
A
(vectorized).
- abstract quadrature(order=None, npoints=None, quadrature_type='default')[source]¶
Return quadrature points and weights.
Returns tuple
(P, W)
whereP
is an array of quadrature points with corresponding weightsW
.The quadrature is of order
order
or hasnpoints
integration points.
- abstract quadrature_info()[source]¶
Return quadrature information.
Returns a tuple of dicts
(O, N)
whereO[quadrature_type]
is a list of orders which are implemented forquadrature_type
andN[quadrature_type]
is a list of the corresponding numbers of integration points.
- abstract sub_reference_element(codim)[source]¶
Returns the reference element of the codim-
codim
subentities.
- abstract subentities(codim, subentity_codim)[source]¶
Return subentities.
subentities(c,sc)[i,j]
is, with respect to the indexing inside the reference element, the index of thej
-th codim-subentity_codim
subentity of thei
-th codim-codim
subentity of the reference element.
- abstract subentity_embedding(subentity_codim)[source]¶
Return subentity embedding.
Returns a tuple
(A, B)
which defines the embedding of the codim-subentity_codim
subentities into the reference element.For
subentity_codim > 1', the embedding is by default given recursively via `subentity_embedding(subentity_codim - 1)
andsub_reference_element(subentity_codim - 1).subentity_embedding(1)
choosing always the superentity with smallest index.