daico007 / surface_coatings

mBuild recipe to create different surface coating structure.
MIT License
3 stars 2 forks source link
mbuild molecular-dyanmics molecular-simulation mosdef python

Surface Coatings

Overview

Surface Coatings (surface_coatings) is an mBuild recipe to construct monolayer systems, i.e., surfaces coated with monolayer films. Recipes are designed to be add-ons to mBuild, allowing users to construct classes of chemical systems utilizing routines developed earlier using mBuild.

Installation

The surface_coatings can be install using pip. While its dependencies can be found in environment.yml. mamba is recommended to create the environment due to its ability to quickly solve the environmnet, however, conda would also work.

mamba env create --file environment.yml
mamba activate surface_coatings
pip install -e .

Example Usage

import mbuild as mb
from mbuild.lib.molecules import WaterSPC as H2O
from surface_coatings.surfaces import SilicaInterfaceCarve
from surface_coatings.chains import Alkylsilane
from surface_coatings import Monolayer, DualMonolayer, SolvatedMonolayer, SolvatedDualMonolayer

silane_chain = Alkylsilane()
silica_surface = SilicaInterfaceCarve()

silica_monolayer = Monolayer(surface=silica_surface,
                             chains=[silane_chain],
                             n_chains=100,
                             tile_x=1,
                             tile_y=1)
silica_monolayer.visualize()

# Create a dual monolayer with the created monolayer
dual_monolayer = DualMonolayer(top=mb.clone(silica_monolayer),
                               bottom=mb.clone(silica_monolayer),
                               separation=3)
dual_monolayer.visualize()

# Solvate a monolayer system
solvated_monolayer = SolvatedMonolayer(monolayer=mb.clone(silica_monolayer),
                                       solvent=H2O())

solvated_monolayer.visualize()

# Solvate a dual monolayer system
solvated_dual_monolayer = SolvatedDualMonolayer(dual_monolayer=dual_monolayer,
                                                solvent=H2O())
solvated_dual_monolayer.visualize()