How to Make Your Own Potential? =============================== This section explains how users can construct their own potentials, and what to pay attention to when configuring the workflow. 1. Set up the workflow in a new directory: .. code-block:: bash make setup-workflow dir=my_potential cd my_potential 2. Inspect the ``bd.yaml`` files in each task folder in ``workflow/``. Most default parameters should be acceptable, but you may want to change some of them, for example the number of MD time steps in ``md_select``. Most probably, you also want to change the ab initio model. For testing purposes, an EAM potential is used, which is also the default option. For using VASP as the ab initio model, change the alias of ``sp_calc`` in ``motoko.yaml`` to: .. code-block:: yaml aliases: sp_calc: vasp The INCAR file must be located in the ``potentials`` directory; an example INCAR file is provided there. If you use a different INCAR file, change the filename in the ``bd.yaml`` of the ``vasp`` task. VASP is run through `ASE `_, which requires the VASP executable and the path of the pseudopotential directories to be set as environment variables in ``launch.sh`` in ``workflow/vasp/``: .. code-block:: bash export ASE_VASP_COMMAND=... export VASP_PP_PATH=... More information on setting up VASP with ASE can be found in the `ASE VASP calculator documentation `_. 3. Start the daemon processes that execute the tasks: .. code-block:: bash make -C workflow create launcher 4. Start the workflow from the workflow directory: .. code-block:: bash cd workflow motoko orchestrator start --help motoko --verbose orchestrator start your_arguments AutoPot is designed so that creating different potentials in the same database should not be a problem if a unique ``run_name`` is added. To create more potentials, append a unique ``run_name`` to ``your_arguments``: .. code-block:: text --run_name my_potential874 The workflow has finished when the terminal shows: .. code-block:: bash terminate: workflow successful 5. Find the final potential and training set. The final potential and training set, ``trained_pot.mtp`` and ``ts.cfg``, are stored in the last ``train`` task. If ``X`` is the number of the last ``train`` task, they can be found in ``train/BD-train-runs/run-X``. Alternatively, access them in Python: .. code-block:: python from motoko.workflow import Workflow wf = Workflow("motoko.yaml") last_run = wf.train.connect().runs[wf.train.connect().runs_counter - 1] mtp_fname = os.path.join( last_run.run_path, last_run.train_args["trained_pot_name"] ) 6. Delete the database and kill all daemons: .. code-block:: bash make clean