Angle Value Calculator
The Moiré Angle Calculator finds all possible commensurate angles between two stacked lattices by trimming both layers within a given radius and checking for periodic overlaps following the Angle Calculation Process. After calculation, it provides a list of angles with their corresponding ll1
, ll2
, ul1
, ul2
values that define the rotation between the two lattices along with the number of points in each cell of the Moiré lattice. Since most angles are irrational and can't be precisely represented, the rotation is defined using these coordinate pairs instead — they mark the overlapping points between the two lattices. Once you've selected an angle from the list, just copy the ll1
, ll2
, ul1
, and ul2
values into your code — the system will figure out the exact rotation angle from that. This also makes it easy to calculate the moire lattice vectors.
Some Guidelines
A radius must be specified to define the extent of the circular region centred at the origin. This value is used to truncate both the upper and lower lattices. Larger radius Includes more lattice points, potentially giving more precise calculations and revealing smaller angles, but increases computation time. Smaller radius Produces faster results, yet may detect only larger angle values.
Currently supported systems:
- Both layers 60\(^\circ\) (Triangular, Hexagonal and Kagome lattices)
- Both layers 90\(^\circ\) (Square lattice)
-
Custom mode – experimental
Possible problems
- Erroneous or nonsensical output
- Unresponsiveness or infinite loops
- Unexpected program behaviourProceed only if you believe the results yielded by the Angle Calculation Process are correct and meaningful for your custom lattice vectors.
Larger Value of points per cell More points per cell in the lattice means larger hamiltonian matrix, which can lead to longer computation times and higher memory usage. Especially if planning to invert the hamiltonian matrix and find eigenvalues and eigenvectors later.
Number of Points has been calculated assuming only one point per unit cell. If you are using lattices which have multiple points per unit cell like hexagonal (2) or kagome (3), multiply this value by the number of points per unit cell in your lattice to get the actual number of points in the Moiré lattice.
Precision has NO effect on the calculation. It only affects the output format of the results. (In the calculation, we stick to integer values to avoid floating point errors).
Calculator
Note
The last column (number of points per unit cell in the Moiré lattice) has been calculated assuming only one point per unit cell. If you are using lattices which have multiple points per unit cell like hexagonal (2) or kagome (3), multiply this value by the number of points per unit cell in your lattice to get the actual number of points in the Moiré lattice.
angle (deg) | angle (rad) | ll1 | ll2 | ul1 | ul2 | points/cell |
---|