Skip to main content

Molecular simulation tool made for the theory and simulation module taken by materials science and engineering undergraduates at Imperial College London

Project description

Imperial Materials Simulation

Molecular simulation tool made for the theory and simulation module taken by materials science and engineering undergraduates at Imperial College London.

minimal use example

It models the forces acting on a molecule in different situations and displays the results live using an interactive Jupyter notebook dashboard.

Method

Each polymer is a linear string of beads (CH2 units) with no side chains. Bonds are modelled as springs and long range interactions are modelled using a 12-6 Lennard-Jones potential.

Four methods of atomistic simulation are implemented:

  1. Steepest descent structural relaxation / energy minimization.

  2. Constant temperature ('NVT') dynamics with a Langevin thermostat.

  3. Constant energy Hamiltonian ('NVE') molecular dynamics.

  4. Metropolis Monte Carlo ('MMC') stochastic model.

For each time step, the forces and potentials of each atom are calculated. This allows for their positions and velocities to be updated following the given atomistic simluation method.

Installation

This library can be installed from pypi:

pip install imperial-materials-simulation

For developement use, the codebase can be cloned from GitHub:

git clone https://github.com/AyhamSaffar/imperial-materials-simulation.git

Dependancies for developement use can optionally be installed using the dedicated conda enviroment:

conda config --add channels conda-forge

conda create --name sim_env --file conda_env.txt

Usage

All examples shown can be found in the examples notebook.

All functionality and details are well documented in the doc-strings of the main Simulation class and its methods.

Minimal use

minimal use example

Data collection

data collection example

Detailed Analysis

detailed analysis example

Support

Any issues with the library should be raised directly with Paul Tangney.

There is a known bug that sometimes makes the .display() method show a column of plots at once. This is being worked on, but for the moment can be fixed with a quick computer restart.

Roadmap

The following features could be implemented down the road following popular demand:

  • Replace MatPlotLib graphs in display with Plotly for a faster & more responsive dashboard (especially when its live updating during longer runs).

  • Add run .xyz trajectory exporter for better integration with external software.

  • Added support for charged functional groups on the simulated molecule and a VRORV integrator to better account for the added electrostatic forces.

  • Add artist to run dataframe on dashboard so numbers are displayed in scientific format and the row for the current run gets highlighted.

Authors and Acknowledgment

This program was written by me, Ayham Al-Saffar, based on Paul Tangney's initial codebase and was funded by an Imperial College London Student Shapers grant.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

imperial_materials_simulation-1.0.2.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file imperial_materials_simulation-1.0.2.tar.gz.

File metadata

File hashes

Hashes for imperial_materials_simulation-1.0.2.tar.gz
Algorithm Hash digest
SHA256 7675437b7cfe305a8cdbf48597f361ba566b411d7fb0a900b00bb6caeb101602
MD5 d3d96a738ef21a59fda11a9ee51c1945
BLAKE2b-256 8135549e76af3acf16eaa41c77b963d722d57b7bb2273fea654476c0765872b4

See more details on using hashes here.

File details

Details for the file imperial_materials_simulation-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for imperial_materials_simulation-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fefba6ae8bdb69e750d876274e499a91fac7d1f63aaf72230273fcf8be3b9dba
MD5 b54f6c1eb74b2f8960a9290b399017e8
BLAKE2b-256 435d87f6112e3e85676cb061c29f899783d2d05658657a0ed586b6208cea60d2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page