Shape

class sisl.shape.Shape(center)[source]

Baseclass for shapes

This class should always be sub-classed.

There are a few routines that are always necessary to implement in a inherited class:

center
return the geometric center of the shape
origo
return the lowest left point in the shape
volume
return the volume of the shape.
displacement
return a vector that is the largest displacement vector such that a grid of the Shape will fully contian all space
within
Enables to check if coordinates, or other things are contained in this shape
iwithin
Returns only the indices of elements that are within
enlarge
Creates a new shape with a only the indices of elements that are within

A Shape allows interaction with outside elements to check if geometric points are within the shapes. For instance to assert that a given point x, y, z is within a sphere of radius r with center cx, cy, cz on may do:

This makes it very efficient to enable arbitrary shapes to be passed and used as determinations of regions of space.

Attributes

center The geometric center of the shape
displacement Return a displacement vector for full containment
origo The geometric origo of the shape
volume

Methods

__init__(center) Initialize the Shape with a center
enlarge(length) Return a new Shape with an increased size length
iwithin(other) Returns indices of the elements of other that are within the shape
within(other) Returns True if other is fully within self
center

The geometric center of the shape

displacement

Return a displacement vector for full containment

enlarge(length)[source]

Return a new Shape with an increased size length

iwithin(other)[source]

Returns indices of the elements of other that are within the shape

origo

The geometric origo of the shape

An origo should always be the lowest left coordinate of the shape.

Notes

Not all shapes have an origo. For instance a sphere only have a center, but an origo cannot be defined.

volume
within(other)[source]

Returns True if other is fully within self