schrodinger.application.matsci.nano.slab module¶
Classes and functions to create surface models.
Copyright Schrodinger, LLC. All rights reserved.
- class schrodinger.application.matsci.nano.slab.ParserWrapper(scriptname, description)¶
Bases:
object
Manages the argparse module to parse user command line arguments.
- __init__(scriptname, description)¶
Create a ParserWrapper instance and process it.
- Parameters
scriptname (str) – name of this script
description (str) – description of this script
- loadIt()¶
Load ParserWrapper with all options.
- loadHKLOptions()¶
Load ParserWrapper with hkl options.
- loadOptions()¶
Load ParserWrapper with options.
- loadEnumeration()¶
Load ParserWrapper with enumeration options.
- loadRequired()¶
Load ParserWrapper with required options.
- loadCommon()¶
Load ParserWrapper with common options.
- parseArgs(args)¶
Parse the command line arguments.
- Parameters
args (tuple) – command line arguments
- class schrodinger.application.matsci.nano.slab.Surface(cell, h_index=1, k_index=1, l_index=0, normal_c=False, bottom=0.0, slab_thickness=1.0, vacuum_thickness=2.0, terminal_fragment='none', overlap_threshold=0.1, do_bonding=None, do_bond_orders=True, surface_xyz=None, logger=None)¶
Bases:
object
Manage the building of a surface model.
- NUMDIGITS = 3¶
- MSGWIDTH = 100¶
- __init__(cell, h_index=1, k_index=1, l_index=0, normal_c=False, bottom=0.0, slab_thickness=1.0, vacuum_thickness=2.0, terminal_fragment='none', overlap_threshold=0.1, do_bonding=None, do_bond_orders=True, surface_xyz=None, logger=None)¶
Create an instance.
- Parameters
cell (
schrodinger.structure.Structure
) – the crystalline cell used to define the surface modelh_index (int) – the Miller h-index of the crystal plane to expose
k_index (int) – the Miller k-index of the crystal plane to expose
l_index (int) – the Miller l-index of the crystal plane to expose
bottom (float or None) – the distance along the plane normal in fractional coordinates to serve as the bottom of the surface model
slab_thickness (float or None) – thickness of the crystalline slab along the plane normal in fractional coordinates
vacuum_thickness (float or None) – thickness of the vacuum layer along the plane normal in fractional coordinates
terminal_fragment (str) – the fragment by which to terminate the surface
overlap_threshold (float) – (Ang) distance used to define overlapping atoms
do_bonding (bool or None) – whether to do the bonding, i.e. connecting atoms, see do_bond_orders kwarg for assigning bond orders, if None it is determined from the other input
do_bond_orders (bool) – whether to do the bond orders, used only if bonding is enabled
surface_xyz (list or numpy.array) – List of atom coordinates of the surface (in A). These coordinates (if passed) will be used after the surface is built, but before any other manipulations (generate normal for example).
logger (logging.Logger) – output logger
- getLatticeProperties(cell)¶
Get the lattice properties.
- Raise
ValueError if missing PDB PBC
- buildSlab()¶
Build the slab.
- pruneIt()¶
Prune the slab cell.
- Raise
ValueError if the slab model has zero atoms
- Return type
dict
- Returns
contains bonding pairs that need termination, keys are outside atom indices, values are inside atom indices
- doTermination(terminal_pairs_dict)¶
Do the termination.
- Parameters
terminal_pairs_dict (dict) – contains bonding pairs that need termination, keys are outside atom indices, values are inside atom indices
- addVacuum()¶
Add vacuum.
- setSurfaceProperties()¶
Set surface properties.
- printParams()¶
Log the parameters.
- runIt()¶
Create the surface model.
- schrodinger.application.matsci.nano.slab.get_hkl(astructure)¶
Return an hkl Miller index triple for the given structure. If any of the structure properties are missing then by convention return (0, 0, 1).
- Parameters
astructure (
schrodinger.structure.Structure
) – the structure for which you want the Miller indices- Return type
tuple
- Returns
hkl Miller index triple
- schrodinger.application.matsci.nano.slab.set_hkl(astructure, hkl)¶
Set hkl Miller indices to a given structure.
- Parameters
astructure (
schrodinger.structure.Structure
) – the structure for which you want the Miller indiceshkl (list) – hkl Miller indices
- schrodinger.application.matsci.nano.slab.maestro_rotate_cell(astructure, origin, a_vec, b_vec, c_vec)¶
Rotate the cell for proper Maestro view.
- Parameters
astructure (
schrodinger.structure.Structure
) – the structure that you want rotatedorigin (numpy.array) – the origin
a_vec (numpy.array) – the a lattice vector
b_vec (numpy.array) – the b lattice vector
c_vec (numpy.array) – the c lattice vector
- Return type
schrodinger.structure.Structure
and four numpy.array- Returns
rotated structure and vectors