-The current simulation module isn't very modular in that it relies on certain external packages and isn't easily extensible for new packages (e.g. ABTEM), which users might like to use. Therefore its functions need to be broken up and a generalised 'simulate' function should be implemented with the software to be used as a parameter e.g. def simulate(software='prismatic', algorithm='multislice' ....
-The current TEMUL Toolkit functionality for dealing with simulations is limited to pyprismatic version 0.1.1 (an old one).
It has updated its file format use and we should keep up.
What needs to be done
[ ] Break up simulation functions so that there are general ones for running simulations and specific ones that handle each software (e.g. pyprismatic, abtem).
[ ] Warp these general functions as methods in the Model Refiner class for ease-of-use.
[ ] Add simulation parameters as a dictionary attribute in the Model Refiner class. Then, the user just has to set all parameters in the model refiner as a dict and is free to simulate with whatever software they wish. By parameters here I mean simulation parameters, not python parameters.
Problem
-The current
simulation
module isn't very modular in that it relies on certain external packages and isn't easily extensible for new packages (e.g. ABTEM), which users might like to use. Therefore its functions need to be broken up and a generalised'simulate'
function should be implemented with the software to be used as a parameter e.g.def simulate(software='prismatic', algorithm='multislice' ...
. -The current TEMUL Toolkit functionality for dealing with simulations is limited to pyprismatic version 0.1.1 (an old one). It has updated its file format use and we should keep up.What needs to be done
Model Refiner
class for ease-of-use.Model Refiner
class. Then, the user just has to set all parameters in the model refiner as a dict and is free to simulate with whatever software they wish. By parameters here I mean simulation parameters, not python parameters.