H-Si Lattice Orientations

A collection of the supported H-Si surface lattice orientations for SiDB creation. We currently support H-Si(100)-2x1 and H-Si(111)-1x1.

Header: fiction/technology/sidb_lattice_orientations.hpp

struct sidb_100_lattice

H-Si(100)-2x1 surface.

Public Static Attributes

static constexpr double LAT_A = 3.84

The lattice vector length in x-direction (unit: Å).

static constexpr double LAT_B = 7.68

The lattice vector length in y-direction (unit: Å).

static constexpr std::pair<double, double> LAT_C = {0, 2.25}

The base vector (unit: Å).

struct sidb_111_lattice

H-Si(111)-1x1 surface.

Public Static Attributes

static constexpr double LAT_A = 6.65

The lattice vector length in x-direction (unit: Å).

static constexpr double LAT_B = 3.84

The lattice vector length in y-direction (unit: Å).

static constexpr std::pair<double, double> LAT_C = {3.3255, 1.92}

The base vector (unit: Å).

SiDB Lattice Layout

The SiDB lattice layout can be layered on top of an SiDB cell-level layout. It is used to store and access the H-Si lattice orientation. We currently support H-Si(100)-2x1 and H-Si(111)-1x1.

Header: fiction/technology/sidb_lattice.hpp

template<typename LatticeOrientation, typename Lyt, bool has_sidb_lattice_interface = is_sidb_lattice_v<Lyt>>
class sidb_lattice : public Lyt

A layout type to layer on top of an SiDB cell-level layout. It implements an interface for different lattice orientations of the H-Si crystal.

Template Parameters:
  • LatticeOrientation – Type of the lattice orientation.

  • Lyt – SiDB cell-level layout type.

  • has_sidb_lattice_interface – Automatically determines whether an SiDB lattice interface is already present.