|
| 1 | +# Particle Rugosity |
| 2 | + |
| 3 | +## Summary |
| 4 | +Simulates the particle shape of the given crystal structure using BFDH mophology |
| 5 | +prediction, then calculates the particle rugosity by determining the rugosity |
| 6 | +of the facets and calculating the weighted average (by facet area). |
| 7 | + |
| 8 | +### Relevance |
| 9 | +Rugosity is considered to be a factor in nucleation, with rougher crystal surfaces |
| 10 | +having higher energies and being generally less stable. This property has been used |
| 11 | +in rationalizing the relative stability or probability of forming one polymorph |
| 12 | +(or putative crystal structure from Crystal Structure Prediction, CSP) over another. |
| 13 | + |
| 14 | +Using a protocol similar to that reported by [Cruz-Cabeza and colleagues](https://doi.org/10.1002/anie.202006939) this script |
| 15 | +takes a crystal structure or refcode as an argument and will use the CCDC BFDH |
| 16 | +morphology module to simulate the predicted particle shape. The facet hkl planes are |
| 17 | +then obtained and the rugosity of these planes is calculated using the [CCDC rugosity function](https://downloads.ccdc.cam.ac.uk/documentation/API/descriptive_docs/particle.html) (including a scan of |
| 18 | +different offsets from the origin to identify the minimum rugosity of that crystal |
| 19 | +plane). Finally, the total particle rugosity is calculated by weighted average |
| 20 | +according to the facet surface areas. |
| 21 | + |
| 22 | +## Requirements |
| 23 | + |
| 24 | +- Tested with CSD Python API version 3.7.9 on Linux and Windows |
| 25 | +- ccdc.particle |
| 26 | +- ccdc.morphology |
| 27 | + |
| 28 | +## Licensing Requirements |
| 29 | + |
| 30 | +- CSD-Core, CSD-Particle |
| 31 | + |
| 32 | +## Instructions on Running |
| 33 | +### Linux command line |
| 34 | +- load the CSD Python API Miniconda environment |
| 35 | +- call Python to read the script, add the crystal structure refcode or filename (local file) |
| 36 | +~~~ |
| 37 | +$ python particle_rugosity.py AABHTZ |
| 38 | +The crystal structure AABHTZ has been loaded |
| 39 | +Calculating particle rugosity ... |
| 40 | +AABHTZ particle rugosity: 1.507 |
| 41 | +~~~ |
| 42 | +OR |
| 43 | +~~~ |
| 44 | +$ python particle_rugosity.py AABHTZ.cif |
| 45 | +~~~ |
| 46 | +- results are printed and can be redirected to be saved in an output file |
| 47 | +~~~ |
| 48 | +$ python particle_rugosity.py AABHTZ > AABHTZ_rugosity.out |
| 49 | +~~~ |
| 50 | + |
| 51 | +### Windows CSD Python API |
| 52 | +- move the particle\_rugostiy.py file to the CCDC\Python\_API\_(year)\ folder |
| 53 | +- to determine where this is on your computer, start the CSD Python API and enter the following commands |
| 54 | +~~~ |
| 55 | +>>> import os |
| 56 | +>>> wd = os.getcwd() |
| 57 | +>>> print(wd) |
| 58 | +C:\Program Files\CCDC\Python_API_2022\ |
| 59 | +~~~ |
| 60 | +the last line is the folder location where you need to move the particle\_rugostiy.py file |
| 61 | +- now the script can be run in the CSD Python API to calculate the rugosity of any CSD entry using: |
| 62 | +~~~ |
| 63 | +>>> from particle_rugosity import particle_rugosity |
| 64 | +>>> particle_rugosity('AABHTZ') |
| 65 | +The crystal structure AABHTZ has been loaded |
| 66 | +Calculating particle rugosity ... |
| 67 | +AABHTZ particle rugosity: 1.507 |
| 68 | +~~~ |
| 69 | +OR |
| 70 | +- if you want to run your own crystal structures, make a folder (eg. rugosity_calc) in Python_API_(year), and add your |
| 71 | + crystal structure file to that folder |
| 72 | +- modify the argument to include the file path |
| 73 | +~~~ |
| 74 | +>>> particle_rugosity('rugosity_calc/AABHTZ.cif') |
| 75 | +The crystal structure rugosity_calc/AABHTZ.cif has been loaded |
| 76 | +Calculating particle rugosity ... |
| 77 | +rugosity_calc/AABHTZ.cif particle rugosity: 1.507 |
| 78 | +~~~ |
| 79 | + |
| 80 | +## Author |
| 81 | + |
| 82 | +_R. Alex Mayo_ 2023 |
| 83 | + |
| 84 | +> For feedback or to report any issues please contact [support@ccdc.cam.ac.uk](mailto:support@ccdc.cam.ac.uk) |
0 commit comments