# What are the main computational frameworks used in materials modeling?

What are the main computational frameworks used in materials modeling? Software packages can include those designed to run on both classical and quantum devices.

• This seems like it could a little too open ended. It may help if you specify that the framework is for a particular property and/or type of system. – Tyberius Apr 28 at 20:34
• For the most part I agree with @Tyberius on this one. I do note that it is possible for questions like these to be very successful though: quantumcomputing.stackexchange.com/questions/74/…. So perhaps this question can be saved with a bit more detail. – Nike Dattani Apr 28 at 21:06
• Here is another example of a great "list" answer: quantumcomputing.stackexchange.com/a/1524/2293 – Nike Dattani Apr 28 at 21:11
• I agree with Nike. I purposely posted two open-ended questions (frameworks and mathematical approaches) so people can get a panoramic view of the materials modeling landscape which I always personally find particularly helpful in any subject area. Kind of like a review article if you will. It's good to separate the forest from the trees sometimes .... – Peter Morgan Apr 28 at 21:36
• Okay, I can see that working. Just as long as we keep them well structured, I can see the use in a few list type questions. I just wanted to make sure in the early stages of the beta that the questions were representative, but this would be a reasonable exception if it's marked as such. – Tyberius Apr 28 at 23:44

# Electronic Structure Theory

Much of the behavior we observe from molecules/materials arises from electronic interactions. These interactions are fundamentally quantum mechanical as are most of the approaches used to model them.

To study electronic properties of a system, we typically solve some approximation of the electronic time in/dependent Schrodinger equation: $$$$E\Psi=H\Psi\tag{1}$$$$ $$$$i\hbar\frac{d\Psi}{dt}=H\Psi\tag{2}$$$$ The wavefunction and energy allow a whole host of other properties to be determined, including charge transfer rates and various polarizabilities (along with their associated spectroscopic signals).

The difficulty of solving the Schrodinger equation exactly has led to the development of a number of approximate schemes. Two commonly encountered types of approximations are wavefunction based methods, which build on top of the simple Hartree-Fock, and Density Functional Theory(DFT), which reframes the problem of solving for the system wavefunction that satisfies the Schrodinger equation to instead solving for the electron density that minimizes a particular energy functional.

These approximations vary in computational complexity, which has led to varied use depending on the field. In molecular sciences, approaches such as MCSCF and Coupled Cluster are widely used due to their accuracy and clear direction for systematic improvement. For larger materials however, these methods are generally precluded by their high cost and so more economical approaches like DFT are far more common.

There are number of software packages that have been developed to perform these calculations, each with a different emphasis (e.g. performance, number of features, ease of use/development, molecules vs materials, free vs proprietary). On the molecular side, Gaussian, Q-Chem, NWChem, GAMESS, and Psi4 are notable examples. For materials, VASP, Quantum ESPRESSO, SIESTA , and CP2K are more commonly used (among many other electronic structure packages).

# Monte Carlo

In this case there is no one answer, and perhaps no individual best suited to write the full list. I can contribute few words about Monte Carlo methods.

## What is Monte Carlo?

Monte Carlo (MC) is a name that refers to a broad range of computational techniques that rely on random numbers. MC is very broadly applicable anywhere you need to do a high-dimensional integral or sum, so it is widely used in fields like finance and even election forecasting (like Nate Silver's fivethiryeight), as well as the physical sciences.

## Classical Monte Carlo

Classical Monte Carlo is capable (in general) of describing any equilibrium statistical mechanical system. It works by stochastically sampling the Boltzmann distribution. Basically, it works by starting with an state, proposing updates to that state, accepting those updates with some probability (which satisfies the detailed balance condition). In practice, it is usually used with simplified models like the Ising model, or hard core spheres, rather than directly simulating atoms and electrons.

## Quantum Monte Carlo

Quantum Monte Carlo (QMC) is done by mapping a quantum problem onto an equivalent classical ensemble in a manner that sometimes looks like a path integral. One you have the corresponding classical ensemble then you can use classical Monte Carlo to study it. Similar to classical MC, QMC is typically used for simplified models, like the Heisenberg model, which can be instructive for how physical materials work.

QMC has one major flaw: the sign problem. When converting from a quantum to a classical ensemble, sometimes you end up with negative probabilities. This means that the sampled states tend to cancel each other out, so in most cases you cannot do anything useful with QMC when there is a sign problem. Systems that usually have sign problems include anything with mobile fermions in $$d>1$$ and systems with frustrated spin interactions (like the triangular Heisenberg antiferromagnet).

• +1. I would say a question like this will work best if people stick to one framework per answer, so just doing Monte Carlo for now is perfect. – Tyberius May 1 at 3:01
• @Tyberius But I miss examples of software packages, which the OP asks about. – stafusa May 19 at 2:01
• @Stafusa I think that was a later edit to the question, but it would be good and fairly short addition. – Tyberius May 19 at 2:03
• If someone knows of software packages in this field, you may want to edit my answer. I don't use any myself. – taciteloquence May 19 at 5:34

# Force fields

These calculations are based on interatomic potentials and lattice energy minimization.

As an example, lets take the DREIDING force field. This force field uses general force constants, and the parameters are defined for all possible combinations of atoms (J. Phys. Chem. 1990, 94, 8897-8909).

The total potential energy, $$U_T$$, of an arbitrary system can be written as the sum of bonded interactions ($$U_b$$) and nonbonded interactions ($$U_{nb}$$): $$$$\label{UT} U_T = U_b + U_{nb}.$$$$

In the DREIDING force field, the bonded interactions consist of bond stretch between two atoms ($$U_B$$); bond--angle bend between three atoms ($$U_A$$); dihedral torsion angle between four atoms ($$U_D$$), and inversion term ($$U_I$$) (also between four atoms). The nonbonded interactions consist of the van der Waals (dispersion) ($$U_{vdW}$$), the electrostatic ($$U_{Coul}$$), and the hydrogen ($$U_H$$) interactions, respectively.

The bond stretch interactions, $$U_B$$, is described as a simple harmonic oscillator: $$$$\label{U_B} U_B = (1/2)k_e\left(R - R_e\right)^2$$$$ where $$k_e$$ represents the intensity of the bond, and $$R_e$$ the equilibrium distance between the two bonded atoms.

The bond--angle bend, $$U_A$$, between atoms $$I$$, $$J$$ and $$K$$ is taken as an harmonic cosine: $$$$\label{U_A} U_A = (1/2)C_{IJK}\left[\cos\theta_{IJK}-\cos\theta^{0}_{J}\right]^2$$$$ where $$\theta_{IJK}$$ is the angle between bonds $$IJ$$ and $$JK$$, $$\theta_{j}^{0}$$ is the equilibrium angle, and $$C_{IJK}$$ is related to the force constant $$k_{IJK}$$ as $$$$\label{angulocte} C_{IJK}=\frac{k_{IJK}}{(\sin\theta^{0}_{J})^2}.$$$$

The torsion interaction, $$U_D$$, for two bonds $$IJ$$ and $$KL$$ connected by a common bond $$JK$$ has the following form: $$$$\label{U_D} U_D = (1/2)V_{JK}\left\{1-\cos[n_{JK}(\varphi-\varphi^{0}_{JK})]\right\}$$$$ where $$V_{JK}$$ is the barrier potential, $$n_{JK}$$ is the periodicity, $$\varphi$$ is the dihedral angle between $$IJK$$ and $$JKL$$ planes, and $$\varphi^{0}_{JK}$$ is the equilibrium angle.

The last term included in the bonded interactions is the inversion term, $$U_I$$. This term describes how easy or difficult it is to keep all bonds in the same plane: $$$$\label{U_I} U_I = (1/2)k_{inv}\left(\Psi-\Psi_{0}\right)^2.$$$$ where $$\Psi$$ is the angle between bond $$IL$$ and plane $$JIK$$, $$\Psi_{0}$$ is defined in such a way that its value is zero for a planar molecule.

The nonbonded interactions are not calculated for atoms involved in bonded or angle interactions (bond--angle bend and dihedral torsion angle).

The interaction between two neutral atoms, $$I$$ and $$J$$, which present nonzero dipole moment results in an attractive force, known as van der Waals force. As the atoms approach one each other, Coulombian repulsion forces arise due to charges of the same signal. The $$12-6$$ Lennard-Jones' potential energy, $$U_{vdW}$$, brings a good description of these two characteristics, repulsive and attractive: $$$$\label{U_vdW} U_{vdW} = \frac{A}{R^{12}_{IJ}}-\frac{B}{R^{6}_{IJ}}$$$$ where the first term represents the repulsive and the second one the attractive interaction, respectively. The $$A$$ and $$B$$ parameters depends on the two atoms types, and $$R_{IJ}$$ is the distance between atoms $$I$$ and $$J$$.

The nonbonded electrostatic interaction, $$U_{Coul}$$, takes the form proposed by Coulomb: $$$$\label{U_Coul} U_{Coul} = C \frac{Q_I Q_J}{\varepsilon R_{IJ}}$$$$ where $$C$$ is a constant (used to do conversion between energy units), $$Q_I$$ and $$Q_J$$ are the atomic charges, $$\varepsilon$$ is the dielectric constant, and $$R_{IJ}$$ is the distance between atoms $$I$$ and $$J$$.

The last nonbonded interaction took into account is the hydrogen interaction, $$U_H$$: $$$$\label{U_H} U_H = D_H\left[5\left(\frac{R_H}{R_{DA}}\right)^{12}-6\left(\frac{R_H}{R_{DA}}\right)^{10}\right]\cos^{4}(\theta_{DHA}).$$$$ Here, $$\theta_{DHA}$$ is the angle between the hydrogen donor atom $$D$$, the hydrogen $$H$$ and the hydrogen acceptor atom $$A$$; $$R_{DA}$$ is the distance between the donor $$D$$ and acceptor $$A$$ atoms. The parameters $$D_H$$ and $$R_H$$ depends on the conversion for assigning charges.

Example software: GULP

GULP is a program for performing a variety of types of simulation on materials using boundary conditions of 0-D (molecules and clusters), 1-D (polymers), 2-D (surfaces, slabs and grain boundaries), or 3-D (periodic solids). The focus of the code is on analytical solutions, through the use of lattice dynamics, where possible, rather than on molecular dynamics. A variety of force fields can be used within GULP spanning the shell model for ionic materials, molecular mechanics for organic systems, the embedded atom model for metals and the reactive REBO potential for hydrocarbons. Analytic derivatives are included up to at least second order for most force fields, and to third order for many.

It had implemented different potential models: two-body (Buckingham, Buckingham four range, Lennard-Jones, Morse, etc.); three-body (Three-body harmonic, Axilrod-Teller, Urey-Bradley, etc.); four-body (Four-body torsional, ESFF torsional, UFF4, etc.); Many-body (Embedded Atom Method, Tersoff, REBO, ReaxFF, etc.).

General overview (systems, calculated properties, etc.) can be read here.

Here is a list of molecular/chemistry/materials modeling software packages designed to run on classical computers: VASP, MOLCAS, CFOUR, GAUSSIAN, LAMMPS, CP2K, DIRAC, Turbomole, MOLPRO, ORCA, MRCC, ADF, PySCF, PSI4, DALTON, QuantumEspresso, QChem, CASTEP, CPMD, ABINT, DFTB+, ABAQUS, OpenBabel, Amber, CHARMM, GAMESS, Gromacs, NAMD, Omnia, OpenCalphad, OpenMM, AVOGADRO, DFTK, NECI, Newton-X and pyquante2.

Here is a list of molecular/chemistry/materials software packages designed to run on quantum computers: CUSP, FermLib, Microsoft QDK, NWChem, OpenQEMIST, QISkit, OpenFermion, Orquestra, and PennyLane.

There may be others - feel free to add.