Degree of freedom (DOF) descriptions#

Volume tags#

grudge.dof_desc.VolumeTag#

alias of Hashable

class grudge.dof_desc.VTAG_ALL[source]#

grudge-specific boundary tags#

Domain tags#

A domain tag identifies a geometric part (or whole) of the domain described by a grudge.DiscretizationCollection. This can be a volume or a boundary.

grudge.dof_desc.DTAG_SCALAR#

alias of ScalarDomainTag()

grudge.dof_desc.DTAG_VOLUME_ALL#

alias of VolumeDomainTag(tag=<class ‘grudge.dof_desc.VTAG_ALL’>)

class grudge.dof_desc.VolumeDomainTag(tag: Hashable)[source]#

A domain tag referring to a volume identified by the volume tag tag.

tag#
__init__(tag: Hashable) None#
class grudge.dof_desc.BoundaryDomainTag(tag: ~typing.Hashable, volume_tag: ~typing.Hashable = <class 'grudge.dof_desc.VTAG_ALL'>)[source]#

A domain tag referring to a boundary identified by the boundary tag tag.

tag#
volume_tag[source]#
__init__(tag: ~typing.Hashable, volume_tag: ~typing.Hashable = <class 'grudge.dof_desc.VTAG_ALL'>) None#

Discretization tags#

A discretization tag serves as a symbolic identifier of the manner in which meaning is assigned to degrees of freedom.

class grudge.dof_desc.DISCR_TAG_BASE[source]#

A discretization tag indicating the use of a nodal and unisolvent discretization. This tag is used to distinguish the base discretization from quadrature (e.g. overintegration) or modal (DISCR_TAG_MODAL) discretizations.

class grudge.dof_desc.DISCR_TAG_QUAD[source]#

A discretization tag indicating the use of a quadrature discretization grid, which typically affords higher quadrature accuracy (e.g. for nonlinear terms) at the expense of unisolvency. This tag is used to distinguish the quadrature discretization (e.g. overintegration) from modal (DISCR_TAG_MODAL) or base (DISCR_TAG_BASE) discretizations.

For working with multiple quadrature grids, it is recommended to create appropriate subclasses of DISCR_TAG_QUAD and define appropriate DOFDesc objects corresponding to each subclass. For example:

class CustomQuadTag(DISCR_TAG_QUAD):
    "A custom quadrature discretization tag."

dd = DOFDesc(DTAG_VOLUME_ALL, CustomQuadTag)
class grudge.dof_desc.DISCR_TAG_MODAL[source]#

A discretization tag indicating the use of unisolvent modal degrees of freedom. This tag is used to distinguish the modal discretization from the base (nodal) discretization (e.g. DISCR_TAG_BASE) or discretizations on quadrature grids (DISCR_TAG_QUAD).

DOF Descriptor#

class grudge.dof_desc.DOFDesc(domain_tag: Any, discretization_tag: type[Type[_DiscretizationTag]] | None = None)[source]#

Describes the meaning of degrees of freedom.

domain_tag#
discretization_tag#
__init__(domain_tag: Any, discretization_tag: type[Type[_DiscretizationTag]] | None = None)[source]#
is_scalar() bool[source]#
is_discretized() bool[source]#
is_volume() bool[source]#
is_boundary_or_partition_interface() bool[source]#
is_trace() bool[source]#
uses_quadrature() bool[source]#
with_domain_tag(dtag) DOFDesc[source]#
with_discr_tag(discr_tag) DOFDesc[source]#
trace(btag: Hashable) DOFDesc[source]#

Return a DOFDesc for the restriction of the volume descriptor self to the boundary named by btag.

An error is raised if this method is called on a non-volume instance of DOFDesc.

untrace() DOFDesc[source]#

Return a DOFDesc for the volume associated with the boundary descriptor self.

An error is raised if this method is called on a non-boundary instance of DOFDesc.

with_boundary_tag(btag: Hashable) DOFDesc[source]#

Return a DOFDesc representing a boundary named by btag on the same volume as self.

An error is raised if this method is called on a non-boundary instance of DOFDesc.

__eq__(other)#

Return self==value.

__ne__(value, /)#

Return self!=value.

__hash__()#

Return hash(self).

as_identifier() str[source]#

Returns a descriptive string for this DOFDesc that is usable in Python identifiers.

grudge.dof_desc.as_dofdesc(domain: Any, discretization_tag: Type[_DiscretizationTag] | None = None, *, _contextual_volume_tag: Hashable | None = None) DOFDesc[source]#
Parameters:

Shortcuts#

grudge.dof_desc.DD_SCALAR#
grudge.dof_desc.DD_VOLUME_ALL#
grudge.dof_desc.DD_VOLUME_ALL_MODAL#

Internal things that are visble due to type annotations#

class grudge.dof_desc._DiscretizationTag[source]#
class grudge.dof_desc.ConvertibleToDOFDesc[source]#

Anything that is convertible to a DOFDesc via as_dofdesc().