Intro

Substrate

The substrate is defined as a periodic function, either a monochromatic superposition of plane waves or a potential well of a given shape repeated on a Bravais lattice. The relevant module is flake.substrate.

For a plane-wave (sinusoidal) substrate, the wave vectors are generated by flake.substrate.get_ks; the number of vectors controls the symmetry and the length sets the spacing [1].

For a lattice of wells, the substrate is defined by the well shape parameters (Gaussian, tanh, or flat) and the lattice vectors [2–5]. The lattice can be decorated with a multi-site basis.

Parameters are specified in a YAML file and loaded via flake.substrate.substrate_from_params. See examples/0-Substrate_types.ipynb for details.

Cluster

The cluster is a collection of points (optionally decorated with a basis) belonging to a 2D Bravais lattice, cut to a given shape. Available shapes: circle, hexagon, rectangle, triangle, parallelogram, ellipse, or arbitrary polygon via the Shapely package. The relevant module is flake.cluster.

See examples/1-Cluster_creation.ipynb for details.

Static maps

See examples/2-Cluster_on_substrate.ipynb for details on the following functions in flake.maps.

Translations

flake.maps.translational_map explores \(E(x_\mathrm{cm}, y_\mathrm{cm})\) at fixed orientation.

Rotations

flake.maps.rotational_map explores \(E(\theta)\) at fixed CM.

Roto-translations

flake.maps.rototrasl_map searches for the global minimum in \((x_\mathrm{cm}, y_\mathrm{cm}, \theta)\) space.

Barrier finding

flake.string_method.find_mep finds the minimum energy path (MEP) between two configurations using the string algorithm [6], similar to NEB methods. The idea: place a string between two points in configuration space and let it relax. The string slides downhill until the gradient perpendicular to the string vanishes, tracing the lowest-energy route between the two minima (the mountain pass).

See examples/3-Barrier_from_string.ipynb for details.

Molecular dynamics

flake.dynamics.run_md integrates the overdamped Langevin equation for the center of mass and orientation (no inertial term). flake.sweep.sweep_md parallelises trajectories over a grid of external drives.

See examples/4-Dynamics.ipynb for depinning sweeps.

Equations of motion

In the overdamped limit:

\[ \begin{align}\begin{aligned}\gamma_{t} \frac{d\mathbf{r}}{dt} = \mathbf{F}_\mathrm{ext} - \nabla U + \text{noise}\\\gamma_{r} \frac{d\theta}{dt} = \tau_\mathrm{ext} - \frac{dU}{d\theta} + \text{noise}\end{aligned}\end{align} \]

The drag coefficients for a cluster of \(N\) particles are: \(\gamma_t = N \gamma\) and \(\gamma_r = \gamma \sum_i r_i^2\), where \(r_i\) is the distance of the \(i\)-th particle from the CM.

The dissipation constant \(\gamma\) sets the time scale. Lowering \(\gamma\) speeds up the simulation relative to the substrate potential time scale.

Units

No internal units conversion is performed; the user chooses a coherent set.

Colloids

A coherent set for colloidal experiments [2, 3]:

  • energy: zJ = 10 -21 J

  • length: \(\mu\mathrm{m}\)

  • mass: fg = 10 -15 g

From which follows:

  • force: fN

  • torque: fN \(\cdot \mu \mathrm{m}\)

  • time: ms

  • damping: fg/ms

Nanoscale

A coherent set for nanoscale / AFM experiments:

  • energy: eV = 1.602176634 × 10 -19 J

  • length: Å = 10 -10 m

From which follows:

  • force: eV/Å ≈ 1.602176634 nN

  • time: \(100 \sqrt{10/1.602176634}\) ns

References

  1. Vanossi, Manini, Tosatti. Proc. Natl. Acad. Sci. 109, 16429 (2012). https://doi.org/10.1073/pnas.1213930109

  2. Panizon, Silva et al. Nanoscale 15, 1299 (2023). https://doi.org/10.1039/D2NR04532J

  3. Cao, Silva et al. Phys. Rev. X 12, 021059 (2022). https://doi.org/10.1103/PhysRevX.12.021059

  4. Cao et al. Nature Physics 15, 776 (2019). https://doi.org/10.1038/s41567-019-0515-7

  5. Cao et al. Phys. Rev. E 103, 012606 (2021). https://doi.org/10.1103/PhysRevE.103.012606

  6. E, Ren, Vanden-Eijnden. J. Chem. Phys. 126, 164103 (2007). https://doi.org/10.1063/1.2720838