<jupyter_start><jupyter_text>The BVlain installation and usage tutorial  Installation* Write the following comand to the command line ( terminal (or notebook)):```Pythonpip install BVlain``` * or:    ```Python!pip install BVlain```     That's it.<jupyter_code>#!pip install BVlain
pip install BVlain<jupyter_output><empty_output><jupyter_text>Note!* If you've got an error related to the C++ ("error: Microsoft Visual C++ 14.0 is required. Get it with "Build Tools for Visual Studio": https://visualstudio.microsoft.com/downloads/") and if your system is Windows. Then:* Go to the link: https://visualstudio.microsoft.com/visual-cpp-build-tools/* Press "Download Build Tolls" button![](https://github.com/dembart/BVLain/raw/01db73bf551630175b847f2cde7fe5549e49cf27/BuildToolsInstallation.png)* Run the downloaded .exe file and install Build Tools. Open it and check the mark related to the C++. Install C++ with the default package selection (~6 Gb)2. In any case, after all, run: ```pip install --upgrade setuptools```<jupyter_code>#pip install --upgrade setuptools --user
pip install --upgrade setuptools<jupyter_output><empty_output><jupyter_text>Usage 1. Import the module executing the command:```Pythonfrom BVlain.BVlain import *```<jupyter_code>from BVlain.BVlain import *<jupyter_output><empty_output><jupyter_text>2. You need to read a structure: Hope you have a CIF you want to study* Copy the pathway to your CIF* Asign it to some variable```Pythoncif = "/Users/artemdembitskiy/Desktop/BV/cifs/NVP_siman.cif"``` Oxidation states should be assigned in the CIF* Read the structure with the following command:```Pythonst = structure_read(cif)```<jupyter_code>cif = "replace this sentence in quotes by your pathway to a CIF"
st = structure_read(cif)<jupyter_output><empty_output><jupyter_text>3. Now we are ready for the migration barrier calculation, but first, several words about the function used for this:* There are a lot of input parameters for the calculation (the full list is at the bottom)* But for inexperienced user the only two are required, while the others are set by default * These two are your structure and the mobile ion which migration barrier you want to estimate4. Calculate the barrier with the following command:```Pythonbarrier(struct = st, mobile_ion = "Na+")``` The output is migration barriers along three main directions, the lowest barrier among them, and the time spent on calculation<jupyter_code>barrier(struct = st, mobile_ion = "replace this sentence by your mobile ion (Li+, Na+, K+, etc.)")<jupyter_output><empty_output><jupyter_text>5. The full list of input parameters for ```barrier``` function: If a default value is not mentioned then this value is None * name - name of your system or whatever you want. "Lain" is by default.* struct - the structure you want to study (see paragraph 2).* mobile_ion - the ion for which barriers will be calaculated.* r_cut - a radius within which the neighbours of the mobile ion will be treated. It is a float. 8 is by default.* f_sc - the screening factor. If you don't know what it is don't touch it. 0.74 is by default. * resolution - a mesh grid resolution (in angstroms). 0.25 is by default. You can face RAM related crashing if resolution is lower than 0.15.* E_step - the precision of the migration barrier calculation (in eV). 0.1 is by default.* E_cut - the maximum energy above which the barrier will be set to infinity and the exact value will not be calculated. 5 is by default. * species_to_remove - a list of species you wish to remove before the calculation. Example: ["N3-","H1+"]* vesta - None by default. If = 1 then the volumetric data (BVSE field) will be written in a VESTA 3.0 readable format. path_to_output should be determined * report - None by default. If = 1 then the report in .txt will be written path_to_output should be determined * path_to_cif - the pathway to your structure. That is for those who whants to read the structure implicitly.* path_to_output - path to the output (report and volumetric data)  Example<jupyter_code>from BVlain.BVlain import *

cif = "/Users/artemdembitskiy/Desktop/BV/cifs/NVP_siman.cif"
output = "/Users/artemdembitskiy/Desktop/BV"
st = structure_read(cif)
Ea = barrier(name = "NaVPO4F", struct = st, mobile_ion = "Na+",
             vesta = 1, report = 1, path_to_output = output, resolution = 0.2)<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.08837634163050925, 'fraction_numerical': 0.013930121032199132, 'mean_word_length': 4.934959349593496, 'pattern_counts': {'":': 1, '<': 25, '<?xml version=': 0, '>': 25, 'https://': 3, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 3, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '278129', 'license': 'MIT', 'n_tokens_mistral': 1359, 'n_tokens_neox': 1226, 'n_words': 561, 'path': 'Installation and usage tutorial.ipynb', 'repo_name': 'dembart/aBVff', 'size': '4379'}