From c575533941e606a6c69d73fbbec70ca01d56b4fe Mon Sep 17 00:00:00 2001 From: jollactic Date: Fri, 8 Jul 2022 09:00:45 +0200 Subject: [PATCH] Added CCS example --- docs/repulsive_fitting/CCS.rst | 300 +++++++++++++++++++++++++++++++ docs/repulsive_fitting/Reps.png | Bin 0 -> 17789 bytes docs/repulsive_fitting/ase.png | Bin 0 -> 54893 bytes docs/repulsive_fitting/conf.py | 55 ++++++ docs/repulsive_fitting/index.rst | 12 ++ 5 files changed, 367 insertions(+) create mode 100644 docs/repulsive_fitting/CCS.rst create mode 100644 docs/repulsive_fitting/Reps.png create mode 100644 docs/repulsive_fitting/ase.png create mode 100644 docs/repulsive_fitting/conf.py create mode 100644 docs/repulsive_fitting/index.rst diff --git a/docs/repulsive_fitting/CCS.rst b/docs/repulsive_fitting/CCS.rst new file mode 100644 index 00000000..4aef0c77 --- /dev/null +++ b/docs/repulsive_fitting/CCS.rst @@ -0,0 +1,300 @@ +********************************************* +Fitting 2-body repulsive potentials using CCS +********************************************* + +When using the Curvature Constrained Splines method (`CCS `_) +to fit a repulsive potential we fit a 2-body potential +to, as closely as possible, reproducy the energy difference between a set of DFT reference +energies and the corresponding *electronic energies* from DFTB. + +[Input: `recipes/docs/_archives/recipes/repulsives/ccs`] + +This tutorial revolves around a couple of scripts to handle the various tasks +involved in the fitting. +Here we are assuming that the time consuming part of +selecting and computing the DFT reference data has allready been carried out. +Furtermore, we also assume that the electronic parametes used to generate the +co-called Slater-Koster table have been optimized (or been obtained by some other means). + +Two data-sets are provided in the archive. One for Si and one ZnO. In both cases, +the fitting invloves the following steps: + + +.. tip:: + :class: info + + The folders ``Si`` and ``ZnO`` contains scripts to automatically execute the various steps and can be used to skip over certain part. Thses scripts are also useful as templates when using CCS to fit repulsive potentials for a new set of systems + + +1. Calculte the electronic energies for each structure in the DFT training-set. +=============================================================================== +We first need to perform single point DFTB+ calculations using the pre-calculated Slater-Koster table. +A convinient way to generate the geometry +input file is to use the ``master_converter.py`` script provided with CCS +which takes two arguements, the filename of the file to read and the filname +of the file to write, e.g: + +.. code-block:: + + master_converter.py OUTCAR in.gen + + +.. caution:: + + For the procedure used here, you must make sure to use a so-called + dummy spline in the Slater-Koster file (it is this block of the file that + we will obtain in steps below). + + Example of a dummy spline: + + .. code-block:: + + Spline + 1 0.2 + 0. 0.1 0. 0. 0. 0. 0. 0. + 0.1 0.2 0. 0. 0. 0. 0. 0. + + +.. admonition:: Task + :class: info + + Go to each sub-folder were there is DFT data (the DFT-data can be found in a folder ``RAW_DATA`` located in bot the ``Si`` and ``ZnO`` folders), convert the geometry to a + DFTB+ readable format and perform a single-point DFTB+ calculation. + + + +2. Collect the DFT en DFTB electroinc energies. +=============================================== +Using the script ``ccs_build_db`` we can build two ase data-bases +containing the DFT and DFTB data. These data-bases are used in the next step. +We need a list pointing to the DFT data and the corresponding DFTB data. +The code assume that the we provide locations of the DFT data (e.g. ``OUTCAR.gz`` or any other ASE readable file containing a geometry and corresponding energy) in the +first column and the DFTB data in the second column (should be a ``results.tag`` file). If the data are stored +in the same folders the first and second columns are the same. + + +.. admonition:: Task + :class: info + + Create a folder with a file pointing to the training-data (``list``) and the + execute the command: + + .. code-block:: + + ccs_build_db DFTB list DFT.db DFTB.db + + Here it is instructive to make several fits (in separate folders) using + diffrent sub-sets of the data. e.g seperate fits for each polymorphs or + pairs of polymorhs. + + Example of a ``list`` file:: + + ../../RAW_DATA/DIMER/3.20/VASP/out.xyz ../../RAW_DATA/DIMER/3.20/DFTB/results.tag + ../../RAW_DATA/DIMER/3.21/VASP/out.xyz ../../RAW_DATA/DIMER/3.21/DFTB/results.tag + ../../RAW_DATA/DIMER/3.22/VASP/out.xyz ../../RAW_DATA/DIMER/3.22/DFTB/results.tag + ../../RAW_DATA/DIMER/3.23/VASP/out.xyz ../../RAW_DATA/DIMER/3.23/DFTB/results.tag + ../../RAW_DATA/DIMER/3.24/VASP/out.xyz ../../RAW_DATA/DIMER/3.24/DFTB/results.tag + ../../RAW_DATA/DIMER/3.25/VASP/out.xyz ../../RAW_DATA/DIMER/3.25/DFTB/results.tag + ../../RAW_DATA/DIMER/3.26/VASP/out.xyz ../../RAW_DATA/DIMER/3.26/DFTB/results.tag + ../../RAW_DATA/DIMER/3.27/VASP/out.xyz ../../RAW_DATA/DIMER/3.27/DFTB/results.tag + ../../RAW_DATA/DIMER/3.28/VASP/out.xyz ../../RAW_DATA/DIMER/3.28/DFTB/results.tag + ../../RAW_DATA/DIMER/3.29/VASP/out.xyz ../../RAW_DATA/DIMER/3.29/DFTB/results.tag + ../../RAW_DATA/DIMER/3.30/VASP/out.xyz ../../RAW_DATA/DIMER/3.30/DFTB/results.tag + +.. tip:: + You can get a quick overview of the training-data using the Atomic Simulation + Environment (`ASE `_) by issuing the command: + + .. code-block:: + + ase-gui DFT.db + + (see figure below) + + .. figure:: ase.png + :alt: ase + :width: 600 + :align: center + + With the Atomic Simulation Environment we can get an quick overview + of the training-data. We can, amongst much other, browse the structures + and plot the energies. + +.. tip:: + :class: info + + Examples files for the fitting task can be found in the folders ``EXAMPLE_FIT`` located in the ``Si`` and ``ZnO`` folders. + + +3. Produce the specific training-file for CCS. +============================================== +We collect pair-wise distances from the structures stored in the two +data-bases and create a file called ``structures.json`` that CCS +use for the fitting. + +.. admonition:: Task + :class: info + + Stay in the same folder and execute: + + .. code-block:: + + ccs_fetch DFTB 6.0 all DFT.db DFTB.db + + The arguments corresponds to, in order: + + ``MODE cutoff_radius(Å) No_of_structures DFT_DATABASE DFTB_DATABASE`` + + For repulsive potential fitting set ``MODE=DFTB``. + +.. caution:: + + Never use a cut-off radius that is smaller than used in the fitting (see next step). + +4. Now we can do fitting! +========================= +We provide the setting in a file ``input.json`` where we speicify the cut-off radius +the resolution of the spline and the type of constraints (rep = stricktly repulsive, +sw=attractive at long distance and repulsive at short distance). + +example for Si: + +input.json:: + + { + "General": { + "interface": "DFTB" + }, + "Twobody": { + "Si-Si": { + "Rcut": 3.5, + "Resolution": 0.05, + "Swtype": "sw" + } + } + } + +example for ZnO: + +input.json:: + + { + "General": { + "interface": "DFTB" + }, + "Twobody": { + "O-Zn": { + "Rcut": 6.0, + "Resolution": 0.25, + "Swtype": "rep" + }, + "Zn-Zn": { + "Rcut": 6.0, + "Resolution": 0.25, + "Swtype": "rep" + }, + "O-O": { + "Rcut": 6.0, + "Resolution": 0.25, + "Swtype": "rep" + } + } + } + + + + +.. admonition:: Task + :class: info + + Write the file ``input.json`` and execute: + + .. code-block:: + + ccs_fit + +.. caution:: + + Rcut must be smaller than the cut-off radius in the previus step! + +5. Enjoy succes!(?) +=================== +The quallity of the fit is provided in ``error.out`` and the resulting +parameters in ``CCS_params.json``. + + +6. Validation +=================== +The quallity of the generated CCS potential can be validated to unseen data using +the ``ccs_validate`` command. +The validation requires us to point out two ASE data-bases, one with the DFT and +one with the corresponing DFTB data. +You can use the same procedure as in Step 2 to create these data-bases. + +.. admonition:: Task + :class: info + + After collecting the validation data into two data-bases you can issue the command: + + .. code-block:: + + ccs_validate DFTB + +A summary from the validation is stored in a file calles ``CCS_validation.dat``. +A ASE data-base called ``CCS_validation.db`` is also generated and allows for a quick overview. + +7. Convert to DFTB+ Slater-Koster format. +========================================= +DFTB+ have a specific format for the 2-body potential, a cubic +spline-table appended at the end of the Slater-Koster file. We need +to convert the ``CCS_params.json`` file to this format. + +.. admonition:: Task + :class: info + + Execute: + + .. code-block:: + + ccs_export_sktable CCS_params.json + + The result are printed to files ``X-Y.spl`` where ``X`` and ``Y`` are + the corresponding elements in the 2-body potential, e.g + ``X=Zn, Y=O``. + +.. tip:: + + You can use the ``splvalue`` executable provided with the dftb+ code to + create a a date-file presenting the 2-body spline in a format feasiable + for plotting using the following command: + + .. code-block:: + + splvalue Si-Si.spl > Spline.dat + + .. figure:: Reps.png + :alt: ase + :width: 600 + :align: center + + Comparative plot showing 2-body spline repulsives individually fitted to + Si polymorphs of varying coordinations (2C-8C). + +8. Use the new parameters. +========================== +Replace the dummy-spline in the ``.skf`` file with the data from the ``.spl`` file generated in step 6 and +you are good to go. + +.. tip:: + You can use the ``ccs_build_db`` command to build a data-base with the new DFTB+ data for a quick overview + of the performance of the new parameters. + +.. caution:: + + You should always validate your parameters by recalculating the energies for the structures in your traning-set *and* + for strucutres that was not included in the traning-set. The transferabily will have some limits which is especially + apparent in the case of Si using the electronic parameters provided with this recipie. + + + + diff --git a/docs/repulsive_fitting/Reps.png b/docs/repulsive_fitting/Reps.png new file mode 100644 index 0000000000000000000000000000000000000000..58e6eb7af245bfca72eaf389c12fe765fe48b633 GIT binary patch literal 17789 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 V#3b6zufy}5I&N~T;Hdqr{|gzv64n3! literal 0 HcmV?d00001 diff --git a/docs/repulsive_fitting/ase.png b/docs/repulsive_fitting/ase.png new file mode 100644 index 0000000000000000000000000000000000000000..c827f3704e804ebc7b3bfd231e985c468f8214bb GIT binary patch literal 54893 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 P)>kL*qWIK$g>(J~*G5>e literal 0 HcmV?d00001 diff --git a/docs/repulsive_fitting/conf.py b/docs/repulsive_fitting/conf.py new file mode 100644 index 00000000..670318ea --- /dev/null +++ b/docs/repulsive_fitting/conf.py @@ -0,0 +1,55 @@ +# Configuration file for the Sphinx documentation builder. +# +# This file only contains a selection of the most common options. For a full +# list see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + + +# -- Project information ----------------------------------------------------- + +project = 'CCS' +copyright = '2022, Jolla Kullgren' +author = 'Jolla Kullgren' + + +# -- General configuration --------------------------------------------------- + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones. +extensions = [ + "sphinx_design", + "sphinx_copybutton", +] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = [] + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'sphinx_rtd_theme' +#html_theme = 'sphinx_book_theme' + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] diff --git a/docs/repulsive_fitting/index.rst b/docs/repulsive_fitting/index.rst new file mode 100644 index 00000000..bf704e78 --- /dev/null +++ b/docs/repulsive_fitting/index.rst @@ -0,0 +1,12 @@ +.. _sec-repfit: + +############################ +Repulsive potential fitting +############################ + +This chapter contains recipes for repulsive potential fitting. + +.. toctree:: + :maxdepth: 1 + + CCS.rst \ No newline at end of file