An example workflow to use amof
, a python package to analyze Molecular Dynamics (MD) trajectories of amorphous Metal-Organic Frameworks (MOFs).
It is a simplified version of the workflow I used for most on my PhD. Unlike amof
, it is not constituted of generic functions but rather of problem specific and hardware specific functions.
Therefore it cannot be used straigh away, and require adaptation (e.g. to your supercomputing clusters for the MD runs).
It can nonetheless be used as inspiration or to speed-up the set-up of a functional workflow.
Runs (where the MD are ran) and analyses are separated in different folders to make sure no modification is applied on the MD output when analysing them.
Runs are stuctured by flavor of MD (e.g. 001-nequip
).
For a given flavor of MD, each folder (e.g.001
) designate a run_serie
, i.e. a set of MD runs that were launched simultaneously (e.g. different pressures with same parameters).
The description of all run_series is contained in the XXX-runserie_description.csv
.
### Analyses
Analyses are separated in two folders: data
(actual computation of the properties), and run_results
(jupyter notebooks used to look at those properties).
100ps of NVT at 300K consisting of a single restart.
In runs/001-nequip/001
Input the desired settings in run_lammps.ini
, change the input lammps data file initial.lmp
and MLP model in raw_files
.
template/job_zay.slurm
is dependant on the cluster it is launched on, and should be updated (e.g. with the correct path to the LAMMPS installation).
Then launch run_lammps.py
:
python run_lammps.py
When the simulation is over, concatenate the multiple restarts (only one in this example) and compress unused files.
Make sure the include_in_dataset
column in 001-runserie_description.csv
is set to True
.
python concatenate_runs.py compress
concatenate_runs.py
takes as options compress
, decompress
or nothing which allows to compress/decompress unused files in addition to concatenating the run.
In analysis/data/001-nequip
python read_thermo.py && python compute_properties.py && python add_properties_to_thermo.py
compute_properties.py
and add_properties_to_thermo.py
can take options to only compute certain properties: fast, fewcores, elastic, nopore
.
The list of computed properties for each option can be found in shared_variables.py
.
Open analysis/run_results/001-nequip/001 - look at single MD run.ipynb
with jupyter notebook.
For example with NequIP, copy one of the desired example with a new run_serie in runs/001-nequip
, and add the corresponding line in 001-runserie_description.csv
.
Modify the scripts as desired and run.