I would like some suggestions on how to do structural relaxation (while I'm at it, let me list some synonyms for search exposure - geometry optimization, structural refinement, energy minimization etc) using molecular mechanics (force fields) that preserves space group symmetry.

A typical workflow that I'm thinking of is to start by generating a structure data file (eg. cif, but later easily converted to input data for various packages) with a reasonable crystalline arrangement of atoms, usually <1000 in number and having some spatial symmetry higher than P1. Then I would refine the structures with atomistic simulations at various levels of accuracy (ranging from mol mech to DFT on a HPC cluster if need be) until they compare reasonably with experimental data which I already have for similar structures, in which one of the elements is substituted with another in the same group on the periodic table.

I have so far tried using LAMMPS, GROMACS, Forcite (a module in Materials Studio) and was able to put together bare minimal input files for each of their structural relaxation routines, without spending too much time going through their thick manuals to see if they have the exact options/functions that I need. Under default settings (with say, the DREIDING force field), they all seemed to break initial symmetries, maybe because of some thermostat that causes random displacements.

But I feel that the need for this kind of (symmetry-respecting relaxation) task at low level is fairly common and there's gotta be some standard, straightforward way to do this on an ordinary desktop workstation. I know that DFT packages like Quantum Espresso or VASP do this kind of relaxation by default, mainly because thermostats aren't part of their standard routines.

Can anyone save me some web-searching/manual-reading time by pointing me to the right direction/tool?

(This question may very well boil down to asking how to turn off the thermostat...)

Thanks in advance

  • 2
    $\begingroup$ Hi! If you are not fixated on molecular mechanics, how about semi-empirical methods? You can try MOPAC2012 which is available free, on both Windows and Linux. PM6 semi-empirical method has been parameterized for a lot of general organic and biomolecular system and you can impose symmetry restrictions within the optimization module. I think a ~1000 atom calculation should be feasible on normal desktop. $\endgroup$ – mykd Mar 2 at 18:31
  • $\begingroup$ Thanks, @mykd ! My problem has been answered (with GULP explained below) before the MOPAC team responded to my academic use request (still hasn't), but I'll definitely try this as the next-tier method once they do. $\endgroup$ – David CY Mar 4 at 17:22


GULP (General Utility Lattice Program) uses specific forcefields for different type of systems and it is designed to work with periodic conditions. Also, it has defined several type of potential models for two-body (Buckingham, Lennard-Jones, Morse, etc.), three-body (Three-body harmonic, Axilrod-Teller, Stillinger-Weber, etc.), four-body, six-body and many-body interactions.

From its site:

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.

In the on-line manual, you will find several options that control how the symmetry of the system can be treated.

GULP is available for free for academic use by anyone with a valid University email account.

  • 1
    $\begingroup$ Exactly what I needed. Thanks! (The GULP devs were also pretty quick to respond to my reg req.) $\endgroup$ – David CY Mar 4 at 17:13

ASE has a FixSymmetry constraint that preserves spacegroup symmetries. It works with a variety of structure optimization algorithms. You could use LAMMPS as the engine or one of the many other calculators, including some DFT options.

  • $\begingroup$ Thanks for your reply. I tried FixSymmetry and saw that it's implemented for some ASE-local calculators (emt, eam, lj, morse ... so far of limited applicability for my solids) but not in many of the external codes. This looks like something that the ASE devs are continually working on, but the symmetry preservation switch/option must first exist in the external code. For example, LAMMPS doesn't have it, and so it cannot be implemented in ASE. But your suggestion did lead to some other useful features of ASE, which I had been mostly using for file conversions. So thanks again for that. $\endgroup$ – David CY Mar 4 at 17:13
  • 2
    $\begingroup$ FixSymmetry is actually calculator independent, it requires you to use the internal ASE optimizer routines. For example, VASP has no ability to use FixSymmetry directly, but if you use ASE's BFGS optimizer rather than one of VASP's optimizers, it will work. $\endgroup$ – Tristan Maxson Mar 4 at 20:10
  • $\begingroup$ @TristanMaxson, thanks, that's what I thought. The calculator provides forces and stresses, and ASE choreographs the atoms. Do you know if FixSymmetry works with all ASE optimizers, or it it just a subset? If the latter, I will change my answer. $\endgroup$ – wcw Mar 4 at 22:13
  • 1
    $\begingroup$ @wcw It should work with all ASE optimizers, it can do cell and positional optimization as long as the calculator reports the stress and forces respectively. $\endgroup$ – Tristan Maxson Mar 4 at 22:31
  • $\begingroup$ Looks like some additional coding needs to be done to pipeline the force data between ASE and the external calculator, correct? That's good to know for future use... $\endgroup$ – David CY Mar 5 at 4:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.