viperleed.calc.classes.layer.Layer

class viperleed.calc.classes.layer.Layer(slab, num, is_bulk=False)[source]

A container of atoms residing close to one another along z.

This is intended to be used with Slab objects. Has origin, atoms (a subset of the ones in slab), and a number.

atlist

The atoms that belong to this layer.

Type:

list of Atom

cartori

The Cartesian origin of this layer. It is the position where a plane passing through the topmost atom in this layer intersects the c vector of the slab’s unit cell. Notice that cartori is in the same Cartesian frame as the atoms (i.e., z increases going from vacuum into the solid). A call to update_position() updates this attribute.

Type:

numpy.ndarray

cartbotz

Z (i.e., out-of-plane) position of the bottom-most atom in the layer. A call to update_position() updates this attribute.

Type:

float

is_bulk

Whether this layer has bulk character.

Type:

bool

num

A progressive index (zero-based) identifying this layer within its slab. Normally, layer.num == 0 for the layer closest to the solid/vacuum interface.

Type:

int

slab

The slab to which this layer belongs.

Type:

Slab

__init__(slab, num, is_bulk=False)[source]

Initialize instance.

Methods

__init__(slab, num[, is_bulk])

Initialize instance.

update_position()

Update the Cartesian position of this layer from its atoms.

Attributes

n_atoms

Return the number of atoms in this layer.

thickness

Return the z thickness of this layer.