{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Back to the main [Index](../index.ipynb) " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
The H2 molecule
\n", "This lesson aims at showing how to get the following physical properties:
\n", " \n", "def gs_input(x=0.7, ecut=10, acell=(10, 10, 10)):\n",
" """\n",
" This function builds an AbinitInput object to compute the total energy\n",
" of the H2 molecule in a big box.\n",
"\n",
" Args:\n",
" x: Position of the first Hydrogen along the x-axis in Cartesian coordinates.\n",
" The second Hydrogen is located at [-x, 0, 0]\n",
" ecut: Cutoff energy in Ha.\n",
" acell: Lengths of the primitive vectors (in Bohr)\n",
"\n",
" Returns:\n",
" AbinitInput object.\n",
" """\n",
" # Build structure from dictionary with input variables.\n",
" structure = abilab.Structure.from_abivars(\n",
" ntypat=1, # There is only one type of atom.\n",
" znucl=1, # Atomic numbers of the type(s) of atom.\n",
" natom=2, # There are two atoms.\n",
" typat=(1, 1), # They both are of type 1, that is, Hydrogen.\n",
" xcart=[-x, 0.0, 0.0, # Cartesian coordinates of atom 1, in Bohr.\n",
" +x, 0.0, 0.0], # second atom.\n",
" acell=acell, # Lengths of the primitive vectors (in Bohr).\n",
" rprim=[1, 0, 0, 0, 1, 0, 0, 0, 1] # Orthogonal primitive vectors (default).\n",
" )\n",
"\n",
" # Build AbinitInput from structure and pseudo(s) taken from AbiPy package.\n",
" inp = abilab.AbinitInput(structure=structure, pseudos=abidata.pseudos("01h.pspgth"))\n",
"\n",
" # Set value of other variables.\n",
" inp.set_vars(\n",
" ecut=ecut,\n",
" nband=1,\n",
" diemac=2.0,\n",
" toldfe=1e-6,\n",
" prtwf=-1,\n",
" iomode=3\n",
" )\n",
"\n",
" # Define k-point sampling.\n",
" inp.set_kmesh(ngkpt=(1, 1, 1), shiftk=(0, 0, 0))\n",
"\n",
" return inp\n",
"
def build_flow(options):\n",
" """\n",
" Generate a flow to compute the total energy and forces for the H2 molecule in a big box\n",
" as a function of the interatomic distance.\n",
"\n",
" Args:\n",
" options: Command line options.\n",
"\n",
" Return:\n",
" Flow object.\n",
" """\n",
" inputs = [gs_input(x=x) for x in np.linspace(0.5, 1.025, 21)]\n",
"\n",
" workdir = options.workdir if (options and options.workdir) else "flow_h2"\n",
"\n",
" return flowtk.Flow.from_inputs(workdir, inputs)\n",
"
\n", " | formula | \n", "natom | \n", "alpha | \n", "beta | \n", "gamma | \n", "a | \n", "b | \n", "c | \n", "volume | \n", "abispg_num | \n", "... | \n", "energy | \n", "pressure | \n", "max_force | \n", "ecut | \n", "pawecutdg | \n", "tsmear | \n", "nkpt | \n", "nsppol | \n", "nspinor | \n", "nspden | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
w0/t0/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-28.213374 | \n", "2.513188 | \n", "19.547797 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t1/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-28.697681 | \n", "1.960239 | \n", "15.457585 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t10/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-30.091282 | \n", "-1.106892 | \n", "0.050198 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t11/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-30.081045 | \n", "-1.306064 | \n", "0.669857 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t12/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-30.054897 | \n", "-1.486643 | \n", "1.198657 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t13/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-30.015128 | \n", "-1.650521 | \n", "1.652942 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t14/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-29.963621 | \n", "-1.799429 | \n", "2.045489 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t15/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-29.901949 | \n", "-1.934773 | \n", "2.386232 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t16/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-29.831440 | \n", "-2.058169 | \n", "2.682742 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t17/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-29.753241 | \n", "-2.170734 | \n", "2.940714 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t18/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-29.668361 | \n", "-2.273618 | \n", "3.164346 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t19/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-29.577707 | \n", "-2.367714 | \n", "3.356837 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t2/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-29.079272 | \n", "1.463278 | \n", "12.125932 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t20/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-29.482112 | \n", "-2.453928 | \n", "3.520449 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t3/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-29.377087 | \n", "1.016114 | \n", "9.404751 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t4/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-29.606392 | \n", "0.612993 | \n", "7.176415 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t5/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-29.779514 | \n", "0.249295 | \n", "5.346041 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t6/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-29.906409 | \n", "-0.079134 | \n", "3.837290 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t7/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-29.995127 | \n", "-0.375908 | \n", "2.588480 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t8/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-30.052173 | \n", "-0.644270 | \n", "1.549818 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
w0/t9/outdata/out_GSR.nc | \n", "H2 | \n", "2 | \n", "90.0 | \n", "90.0 | \n", "90.0 | \n", "5.291772 | \n", "5.291772 | \n", "5.291772 | \n", "148.184711 | \n", "123 | \n", "... | \n", "-30.082807 | \n", "-0.887078 | \n", "0.681054 | \n", "10.0 | \n", "-1.0 | \n", "0.01 | \n", "1 | \n", "1 | \n", "1 | \n", "1 | \n", "
21 rows × 23 columns
\n", " def get_dataframe(self, with_geo=True, abspath=False, funcs=None, **kwargs):\n",
" """\n",
" Return a |pandas-DataFrame| with the most important GS results.\n",
" and the filenames as index.\n",
"\n",
" Args:\n",
" with_geo: True if structure info should be added to the dataframe\n",
" abspath: True if paths in index should be absolute. Default: Relative to getcwd().\n",
"\n",
" kwargs:\n",
" attrs:\n",
" List of additional attributes of the |GsrFile| to add to the DataFrame.\n",
" funcs: Function or list of functions to execute to add more data to the DataFrame.\n",
" Each function receives a |GsrFile| object and returns a tuple (key, value)\n",
" where key is a string with the name of column and value is the value to be inserted.\n",
" """\n",
"
\n", " | hh_dist | \n", "energy | \n", "
---|---|---|
w0/t0/outdata/out_GSR.nc | \n", "0.529177 | \n", "-28.213374 | \n", "
w0/t1/outdata/out_GSR.nc | \n", "0.556959 | \n", "-28.697681 | \n", "
w0/t2/outdata/out_GSR.nc | \n", "0.584741 | \n", "-29.079272 | \n", "
w0/t3/outdata/out_GSR.nc | \n", "0.612523 | \n", "-29.377087 | \n", "
w0/t4/outdata/out_GSR.nc | \n", "0.640304 | \n", "-29.606392 | \n", "
w0/t5/outdata/out_GSR.nc | \n", "0.668086 | \n", "-29.779514 | \n", "
w0/t6/outdata/out_GSR.nc | \n", "0.695868 | \n", "-29.906409 | \n", "
w0/t7/outdata/out_GSR.nc | \n", "0.723650 | \n", "-29.995127 | \n", "
w0/t8/outdata/out_GSR.nc | \n", "0.751432 | \n", "-30.052173 | \n", "
w0/t9/outdata/out_GSR.nc | \n", "0.779213 | \n", "-30.082807 | \n", "
w0/t10/outdata/out_GSR.nc | \n", "0.806995 | \n", "-30.091282 | \n", "
w0/t11/outdata/out_GSR.nc | \n", "0.834777 | \n", "-30.081045 | \n", "
w0/t12/outdata/out_GSR.nc | \n", "0.862559 | \n", "-30.054897 | \n", "
w0/t13/outdata/out_GSR.nc | \n", "0.890341 | \n", "-30.015128 | \n", "
w0/t14/outdata/out_GSR.nc | \n", "0.918122 | \n", "-29.963621 | \n", "
w0/t15/outdata/out_GSR.nc | \n", "0.945904 | \n", "-29.901949 | \n", "
w0/t16/outdata/out_GSR.nc | \n", "0.973686 | \n", "-29.831440 | \n", "
w0/t17/outdata/out_GSR.nc | \n", "1.001468 | \n", "-29.753241 | \n", "
w0/t18/outdata/out_GSR.nc | \n", "1.029250 | \n", "-29.668361 | \n", "
w0/t19/outdata/out_GSR.nc | \n", "1.057031 | \n", "-29.577707 | \n", "
w0/t20/outdata/out_GSR.nc | \n", "1.084813 | \n", "-29.482112 | \n", "