A widget to visualize and interact with atomistic structures in Jupyter Notebook.
Project description
Welcome to WEAS Widget!
A widget to visualize and edit atomistic structures in Jupyter Notebook. It uses WEAS (Web Environment For Atomistic Structure) in the backend.
Features:
- Model: space-filling, ball-stick, polyhedral.
- Supported File type: cif, xyz.
- Edit structure: move, rotate, delete and replace atoms.
- Support periodic boundary conditions
- Animation
- Isosurface
- Vector field, e.g., magnetic moment
Installation
Use the pip:
pip install weas-widget
To install the latest version from source, first clone the repository and then install using pip:
$ git clone https://github.com/superstar54/weas-widget
$ pip install -e weas-widget
Edit the structure with mouse and keyboard
WEAS supports editing the atoms directly in the GUI and synchronizing with the structure of the Python object.
Select Atoms
There are two methods for selecting atoms:
- Pick Selection: Click directly on an atom to select it.
- Range Selection: Hold the
Shift
key and drag the right mouse button to select a group of atoms.
Move, Rotate selected atoms
Press the transform shortcut, and move your mouse.
Operation | Shortcut |
---|---|
Move | g |
Rotate | r |
Delete selected atoms
Press the x
key to delete the selected atoms
Export edited atoms
One can export the edited atoms to ASE or Pymatgen
Example
Load structure
One can load a structure from ASE or Pymatgen
from ase.build import molecule
from weas_widget import WeasWidget
atoms = molecule("C2H6SO")
viewer = WeasWidget()
viewer.from_ase(atoms)
viewer
Crystal view
For a nice visualization of a crystal, one usually shows the polyhedra and the atoms on the unit cell boundary, as well as the bonded atoms outside the cell.
from weas_widget import WeasWidget
viewer1 = WeasWidget()
viewer1.load_example("tio2.cif")
viewer1.modelStyle = 2
viewer1.boundary = [[-0.1, 1.1], [-0.1, 1.1], [-0.1, 1.1]]
viewer1.showBondedAtoms = True
viewer1.colorType = "VESTA"
viewer1
Isosurface
from ase.build import molecule
from weas_widget import WeasWidget
from ase.io.cube import read_cube_data
volume, atoms = read_cube_data("h2o-homo.cube")
viewer = WeasWidget()
viewer.from_ase(atoms)
viewer.volumetricData = {"values": volume}
viewer.isoSettings = [{"isovalue": 0.0001, "mode": 0}]
viewer
Magnetic moment
Show the magnetic moment as a vector field.
from ase.build import bulk
from weas_widget import WeasWidget
import numpy as np
atoms = bulk("Fe", cubic=True)
atoms*=[2, 2, 1]
atoms.set_array("moment", np.ones(len(atoms)))
viewer = WeasWidget()
viewer.from_ase(atoms)
viewer.modelStyle = 1
viewer
Phonon
One can visualize the phonon dispersion via lattice vibrations. One only need to use the eigenstates (calculated with an external software) to generate the trajectory.
import numpy as np
from ase.build import bulk
from weas_widget import WeasWidget
from weas_widget.utils import generate_phonon_trajectory
atoms = bulk("Fe", cubic=True)
eigenvector = np.array([[0, -0.0, 0.5], [0, 0.0, -0.5]])
trajectory = generate_phonon_trajectory(atoms, eigenvector, repeat=[4, 4, 1])
viewer = WeasWidget()
viewer.from_ase(trajectory)
# set a vector field to show the arrow
viewer.vectorField = {"origins": "positions", "vectors": "movement", "radius": 0.1}
viewer
Download image
viewer.download_image("filename.png")
How to use
Please visit: https://weas-widget.readthedocs.io/en/latest/index.html
Contact
- Xing Wang xingwang1991@gmail.com
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file weas-widget-0.0.9.tar.gz
.
File metadata
- Download URL: weas-widget-0.0.9.tar.gz
- Upload date:
- Size: 9.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 34e3198858dc1471be73328ca723a304e645ee291c258ebc96db954cde78d4eb |
|
MD5 | 95a5087dbea7534016cfa96c10da2306 |
|
BLAKE2b-256 | dec8561eea4d89413dc82dc4aecb9ab15605b4c4e90ac329ddb568e6d33cbd6d |
File details
Details for the file weas_widget-0.0.9-py3-none-any.whl
.
File metadata
- Download URL: weas_widget-0.0.9-py3-none-any.whl
- Upload date:
- Size: 8.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | adec80c7af6d8b2a837b8ff4fff29aaebecc6508a005f6312e18f7b3720a1397 |
|
MD5 | f2b3f92f288d0c0ab105f894b4f817ca |
|
BLAKE2b-256 | 79d454309e8b9f05df2dcc440e19d3eb89ff3b981bec2f3b8a12aa89e59bf93b |