27

The Atomic Simulation Environment (ASE) has visualization capabilities. It is a python environment that allows direct interaction with a lot of atomistic simulation tools. https://wiki.fysik.dtu.dk/ase/ Visual Molecular Dynamics (VMD) and XCrySDen are the two tools I personally work with the most time. They produce nice graphics and can visualize densities ...


19

pymatgen & ASE I'm a big fan of simplicity and integration in my python-based and Julia-based workflow. Therefore I typically directly use the visualisation features from pymatgen, such as pymatgen.vis.structure_vtk, and ASE, for example ase.visualize. Mostly I use them anyway to build up my problem. They have some features for analysing results as well, ...


16

OVITO OVITO is a great tool for visualising supercells and simulation cells with a large number of atoms. There are plenty of modifications available that facilitate analysis, and it also has a Python interface for those who would like to work with scripts.


16

Jmol For visualisation there's also a standalone Java application Jmol, which has a GUI and a more powerful command-line "console". I particularly like it for quickly visualising vibrational modes. However, it lacks tools to construct a simulation cell, unlike some of the other options people have mentioned.


15

AtomEye My favorite for working with inorganic crystals. But I moved to biomolecules several years ago, so I don't know how it compares with newer programs. AtomEye has no menu. It is driven by pressing keys on keyboard. Mouse can be used for rotation, selection, etc, but surprisingly many things can be done with keyboard only. It could handle millions of ...


15

OlexSys Olex2 For some applications there exists a elegant software called Olex2 which matches most of the crystallographic requirements of dealing with large systems like metal–organic frameworks.


13

Assuming you have an atoms object, all you need to do is call the "write" function. from ase import Atoms supercell = Atoms() supercell.write("supercell.xyz")


13

I highly recommend using pymatgen for this. I coded a surface slab generator for Avogadro and in addition to being slow (since it generates a supercell before carving up the slab) it has a variety of weird hard-to-debug issues. There's a nice example of cutting $\ce{LiFePO4}$ online from materialsvirtuallab.org # Import the neccesary tools to generate ...


12

Avogadro Avogadro is generally considered to be a “molecular editor,” designed to construct and view molecules and materials in 3D. It's a cross-platform software. Even when its mainly used for constructing molecules, it's also useful for creating and visualizing unit cells and slabs. These are some tutorials for constructing: Unit-cells in Avogadro Slabs ...


11

MERCURY Mercury is a specialized software to treat/manipulate crystal structures. It is part of the Cambridge Structural Database (CSD). From Mercury's site, it allows you to: Generate packing diagrams, define and visualize Miller planes, and take slices through a crystal in any direction. Build and explore networks of intermolecular contacts to gain an ...


11

The Atomic Simulation Environment (ASE) is a pretty big name missing from your list. It can read in a variety of VASP-generated output files and do several post-processing analyses. More importantly, it can be used to set up calculations and even run them using its Vasp() calculator, provided you link it to a VASP executable. You can read more about ASE in ...


11

That is a modification of the standard XYZ file format and is called extended XYZ format, and not all programs are compatible with it. From the VMD Molfile Plugin Documentation page, it looks that VMD is only compatible with standard XYZ format. Also, take a look at this answer (to another question) about adding PBC info in VMD after loading standard XYZ ...


10

The workflow transferring from VASP to CASTEP is quite similar. Within VASP, there are four main files that you need for a calculation: POSCAR – gives the positions of the atoms within the unit cell and its lattice vectors. KPOINTS – sets the k-point mesh to be used. POTCAR – determines the type of pseudopotential to be used. INCAR – controls most of the ...


9

As the answer above mentioned, the biggest difference is perhaps CASTEP takes two input files with suffix "cell" and "param", other things are very similar. After all, both programs do plane-wave pseudopotential calculations. Below are a few other subtle differences (or tips?) - I am a CASTEP user recently started using VASP! In CASTEP ...


9

iRASPA fast & beautiful visualization of porous materials (but not only) Features according to https://iraspa.org/iraspa/ structure creation and editing, creating high-quality pictures and movies, Ambient occlusion and high-dynamic range rendering, collage of structures, (transparent) adsorption surfaces, text-annotation, cell replicas and supercells, ...


9

VESTA You can try VESTA. It is good, lightweight and works on Windows and Linux platforms. It is good for viewing and production level image quality manipulation. https://jp-minerals.org/vesta/en/download.html


8

The PBC attribute in ASE is used for: finding nearest neighbours input for calculators that may use that information (dftd3, dmol, etc.) creation of surfaces finding the Bravais lattice certain constraints certain optimization strategies Nothing is per se changed in the object. But much of the functionality of ASE depends on that attribute. If you are ...


8

The following code should create a Cu surface and sort it by z index. We do this by providing tags for the positions of the atoms. [:, 2] allows us to select the z position of all atoms. from ase.build import bulk, surface from ase.build.tools import sort Cu = ase.build.bulk('Cu', 'fcc', a=3.6, cubic=True) surface = ase.build.surface(Cu, (1,1,1), 4, ...


8

Crystal Impact Diamond Crystal Impact Diamond, despite being a commercial product, offers a free demo-version. One can import a structure, adjust its appearance and use screen capturing software for saving the image/animation. Import of the following files is supported: DIAMDOC, DSF, EDF, DS1, CFG, CIF, CRY, CSD, DAT, PDB, ENT, INS, RES, DAT, IDF, KPL, XYZ, ...


8

XCrySDen Official website:http://www.xcrysden.org/XCrySDen.html XCrySDen is a crystalline and molecular structure visualization program aiming at the display of isosurfaces and contours, which can be superimposed on crystalline structures and interactively rotated and manipulated. It runs on GNU/Linux. It also possesses some tools for analysis of ...


7

I have used ASE to create slaps of complex, anisotropic materials in the past. However, ase.lattice is not for creating slabs, it's a module containing functions for creating three dimensional Bravais lattices. Some functions you could use are ase.build.surface or ase.build.cut (for lower level control). Examples: from ase.build import surface s1 = surface('...


7

Reading coordinates from a file is a very simple task with ASE. The following code reads the three different file types into an Atoms object: from ase import io lammps = io.read('mos2.pos',format='lammps-data') cif = io.read('mos2.cif') xyz = io.read('mos2.xyz') ASE can detect certain file formats from the ending, like in the case of .cif and .xyz. For the ...


7

As far as I understand, this warning can be safely ignored. While parsing a cif structure, the get_spacegroup() function in the cif parser of ASE, checks whether the space group evaluated by ASE is consistent with the cell symmetry mentioned in the cif file. The relevant part of the function is shown below: if setting_name: no = Spacegroup(...


7

Here is a more concise way of doing the same thing. from ase.io import read bec = read("bec_replaced.vasp").write("bec_replaced.xyz") It is not needed to import ase and import the functions, you want to do one or the other (This is a python thing not ASE). read also returns an atoms object with a write function built in, so there is no ...


6

You likely need to ensure the correct anaconda environment is loaded. Use the following to get a 2.7 environment. conda create --name py2 python=2.7 conda activate 2.7 pip install ase==3.12.0 Your problems probably stem from issues with pip or the location of the installation. Use this method to ensure you have your 2.7 environment and you have ase in it. ...


6

I hope it's okay to "self-answer". So I also posted this question in the GPAW mailing list and one of the users in the mailing list who go by the handle mazay0 offered a different means of installing gpaw as follows: !apt install python3-mpi4py cython3 libxc-dev gpaw-data !pip -q install gpaw pymatgen==2019.12.22 This one worked. Although, I still ...


6

I don't know if this is exactly what you want to do, but pymatgen may be able to help (disclosure, I am a developer of this package). See this example code below for your example input file: from pymatgen.core.structure import Structure, Molecule from pymatgen.analysis.graphs import StructureGraph from pymatgen.analysis.local_env import JmolNN # load the ...


6

Camps is correct, VMD cannot directly parse the comment line of an xyz file because the extended ASE format is not recognized. You can, however, use a tcl-script to load the file and parse the comment line yourself. I am no tcl expert but here is an example that works for me: set filename [lindex $argv 0] # load the coordinates into vmd mol new $...


5

As described in the documentation, the a, b, and c vectors passed into ase.build.cut define lines that make up your cell. To see that the vectors you passed in give a (111) surface, consider the third vector c, which when it is not explicitly passed in, is formed using $\vec{c}=\vec{a} \times \vec{b}$. $\vec{c}$ is then the normal vector to plane formed by $\...


5

You should do something like this instead: import ase from ase.io import read, write bec = ase.io.read("bec_replaced.vasp") bec_new = ase.io.write("bec_replaced.xyz", bec, format="xyz") according to the documentation page.


Only top voted, non community-wiki answers of a minimum length are eligible