pymor.domaindescriptions package

Submodules

basic module


class pymor.domaindescriptions.basic.CircleDomain(domain=(0, 1))[source]

Bases: pymor.domaindescriptions.interfaces.DomainDescriptionInterface

Describes a domain with the topology of a circle, i.e. a line with identified end points.

Parameters

domain
List [x_l, x_r] providing the left and right endpoint.
domain
__repr__() <==> repr(x)[source]

class pymor.domaindescriptions.basic.CylindricalDomain(domain=([0, 0], [1, 1]), top=BoundaryType('dirichlet'), bottom=BoundaryType('dirichlet'))[source]

Bases: pymor.domaindescriptions.interfaces.DomainDescriptionInterface

Describes a cylindrical domain.

BoundaryTypes can be associated edgewise.

Parameters

domain
List of two points defining the lower-left and upper-right corner of the domain. The left and right edge are identified.
top
The BoundaryType of the top edge.
bottom
The BoundaryType of the bottom edge.

Attributes

CylindricalDomain bottom, diameter, dim, domain, height, lower_left, top, upper_right, volume, width
DomainDescriptionInterface boundary_types, has_dirichlet, has_neumann, has_robin
ImmutableInterface add_with_arguments, sid, sid_ignore, with_arguments
BasicInterface locked, logger, logging_disabled, name, uid
domain
top
bottom
__repr__() <==> repr(x)[source]

class pymor.domaindescriptions.basic.LineDomain(domain=(0, 1), left=BoundaryType('dirichlet'), right=BoundaryType('dirichlet'))[source]

Bases: pymor.domaindescriptions.interfaces.DomainDescriptionInterface

Describes an interval domain.

BoundaryTypes can be associated edgewise.

Parameters

domain
List [x_l, x_r] providing the left and right endpoint.
left
The BoundaryType of the left endpoint.
right
The BoundaryType of the right endpoint.
domain
left
right
__repr__() <==> repr(x)[source]

class pymor.domaindescriptions.basic.RectDomain(domain=([0, 0], [1, 1]), left=BoundaryType('dirichlet'), right=BoundaryType('dirichlet'), top=BoundaryType('dirichlet'), bottom=BoundaryType('dirichlet'))[source]

Bases: pymor.domaindescriptions.interfaces.DomainDescriptionInterface

Describes a rectangular domain.

BoundaryTypes can be associated edgewise.

Parameters

domain
List of two points defining the lower-left and upper-right corner of the domain.
left
The BoundaryType of the left edge.
right
The BoundaryType of the right edge.
top
The BoundaryType of the top edge.
bottom
The BoundaryType of the bottom edge.

Attributes

RectDomain bottom, diameter, dim, domain, height, left, lower_left, right, top, upper_right, volume, width
DomainDescriptionInterface boundary_types, has_dirichlet, has_neumann, has_robin
ImmutableInterface add_with_arguments, sid, sid_ignore, with_arguments
BasicInterface locked, logger, logging_disabled, name, uid
domain
left
right
top
bottom
__repr__() <==> repr(x)[source]

class pymor.domaindescriptions.basic.TorusDomain(domain=([0, 0], [1, 1]))[source]

Bases: pymor.domaindescriptions.interfaces.DomainDescriptionInterface

Describes a domain with the topology of a torus.

Parameters

domain
List of two points defining the lower-left and upper-right corner of the domain. The left and right edge are identified, as well as the bottom and top edge

Attributes

TorusDomain diameter, dim, domain, height, lower_left, upper_right, volume, width
DomainDescriptionInterface boundary_types, has_dirichlet, has_neumann, has_robin
ImmutableInterface add_with_arguments, sid, sid_ignore, with_arguments
BasicInterface locked, logger, logging_disabled, name, uid
domain
__repr__() <==> repr(x)[source]

boundarytypes module


class pymor.domaindescriptions.boundarytypes.BoundaryType(type_)[source]

Bases: pymor.core.interfaces.ImmutableInterface

Represents a boundary type, i.e. Dirichlet, Neumann, etc.

By defining a global registry of possible boundary types, we prevent hard to track down errors due to typos. Only boundary types that have been registered before using register_type can be instantiated.

The boundary types which are registered by default are ‘dirichlet’, ‘neumann’ and ‘robin’.

Parameters

type_
Name of the boundary type as a string.
types

Set of the names of registered boundary types.

__eq__(other)[source]

x.__eq__(y) <==> x==y

__hash__() <==> hash(x)[source]
__ne__(other)[source]

x.__ne__(y) <==> x!=y

__repr__() <==> repr(x)[source]
__str__() <==> str(x)[source]
classmethod register_type(name)[source]

Register a new BoundaryType with name name.

interfaces module


class pymor.domaindescriptions.interfaces.DomainDescriptionInterface[source]

Bases: pymor.core.interfaces.ImmutableInterface

Describes a geometric domain along with its boundary.

dim

The dimension of the domain

boundary_types

Set of BoundaryTypes the domain has.

polygonal module


class pymor.domaindescriptions.polygonal.CircularSectorDomain(angle, radius, arc=BoundaryType('dirichlet'), radii=BoundaryType('dirichlet'), num_points=100)[source]

Bases: pymor.domaindescriptions.polygonal.PolygonalDomain

Describes a circular sector domain of variable radius.

Parameters

angle
The angle between 0 and 2*pi of the circular sector.
radius
The radius of the circular sector.
arc
The BoundaryType of the arc.
radii
The BoundaryType of the two radii.
num_points
The number of points of the polygonal chain approximating the circular boundary.
angle
radius
arc
radii
num_points
__repr__() <==> repr(x)[source]

class pymor.domaindescriptions.polygonal.DiscDomain(radius, boundary=BoundaryType('dirichlet'), num_points=100)[source]

Bases: pymor.domaindescriptions.polygonal.PolygonalDomain

Describes a disc domain of variable radius.

Parameters

radius
The radius of the disc.
boundary
The BoundaryType of the boundary.
num_points
The number of points of the polygonal chain approximating the boundary.
radius
boundary
num_points
__repr__() <==> repr(x)[source]

class pymor.domaindescriptions.polygonal.PolygonalDomain(points, boundary_types, holes=[])[source]

Bases: pymor.domaindescriptions.interfaces.DomainDescriptionInterface

Describes a domain with a polygonal boundary and polygonal holes inside the domain.

Parameters

points
List of points [x_0, x_1] that describe the polygonal chain that bounds the domain.
boundary_types
Either a dictionary {boundary_type: [i_0, ...], boundary_type: [j_0, ...], ...} with i_0, ... being the ids of boundary segments for a given BoundaryType (0 is the line connecting point 0 to 1, 1 is the line connecting point 1 to 2 etc.), or a function that returns the BoundaryType for a given coordinate.
holes
List of lists of points that describe the polygonal chains that bound the holes inside the domain.
points
boundary_types
holes
__repr__() <==> repr(x)[source]