# SuSMoST models review¶

SuSMoST can be used for simulation with both abstract and specific models. Abstract models, such as Ising, Langmuir adsorption, hard hexagons, hard disks, k-mers, are usefull for qualitative investigation of properties of wide classes of real-life systems. Specific models are meant be used for investigation of particular systems, for example: adsorption of CO on Pt(111), terephthalic acid on Cu(100), porphyrin on Au(111), 1, 4-cyclohexadiene on Si (001)-2×1, etc. Of course, this stratification is approximate and there are marginal cases that are hard to classify decisively.

SuSMoST is based on a generalized lattice model that is able to describe systems with any crystalline lattice, with arbitrary number of lattice site states and with any pairwise interactions, including long-range and directional ones. SuSMoST uses the following pairwise directional form of the Hamiltonian:

$H = \sum_{i} \mu(\sigma_i) + \sum_{i \neq j} \lambda(\sigma_i, \sigma_j, \vec{\boldsymbol{r}}_{ij})$

Here $$\sigma_i$$ is the state of $$i$$-th lattice site; $$\mu(\sigma)$$ is the adsorption energy of state $$\sigma$$; $$\lambda(\sigma_i, \sigma_j, \vec{\boldsymbol{r}}_{ij})$$ is the lateral interaction energy between $$i$$-th and $$j$$-th lattice sites separated by radius-vector $$\vec{\boldsymbol{r}}_{ij}$$.

Robust mathematical description of the model can be found in paper PhysRevE.93.062804 in Section II - General Model.

In SuSMoST the lattice model description is stored as objects of the class susmost.LatticeTask. These objects can be created with functions susmost.normal_lattice_task() or susmost.load_lattice_task(). The first one is better be used for abstract models, the second one - for specific models, although it is not not required and inverse usages are possible. One should choose the way to create the susmost.LatticeTask object based on convenience of model parameters specification. susmost.load_lattice_task() builds the susmost.LatticeTask object from data provided as a set of files. susmost.normal_lattice_task() builds the susmost.LatticeTask object from other objects created by Python code.

Two ways to create a susmost.LatticeTask object.