10th international ABINIT developer workshop
May 31 - June 4, 2021 - Smart Working, Lockdown@BE
Use the Space key to navigate through all slides and SHIFT + Space key to go back one slide.
NB: AbiPy can be interfaced with other packages (e.g ASE, phonopy) via converters.
Using conda and the conda forge channel (recommended):
conda install abipy --channel conda-forge
Since conda is not limited to python packages, one can install ABINIT in the same env with:
conda install abinit -c conda-forge
NB: conda packages for AbiPy and ABINIT are now provided by conda-forge therefore:
Using pip and python wheels:
pip install abipy --user
In addition to workflows/tools for GS, DFPT, GW, IPA optics, BSE, we now have:
Python converters: DDB $\;\rightleftarrows \;$ phonopy / tdep
New Flows and improved post-processing tools for:
NB: There's an ongoing effort to reimplement AbiFlows in terms of the atomate framework. In this talk, we will mainly discuss the new features available in abipy.flowtk.
Compute $\epsilon^{\alpha\beta}_{n\bf{k}}$ and the effective mass tensor at the band edges using $|u_{n\mathbf{k}}\rangle$, and the k-derivatives $|u_{n\mathbf{k}}^\alpha\rangle$ $H^\alpha_{\mathbf{k}}$, $H^{\alpha\beta}_{\mathbf{k}}$
For the formalism, see J. Laflamme Janssen, et. al. Phys. Rev. B 93, 205147
flow = flowtk.Flow("flow_effmass_dfpt")
# Build input for GS SCF calculation.
scf_input = make_scf_input()
# This object implements all the worflow logic
from abipy.flowtk.effmass_works import EffMassAutoDFPTWork
work = EffMassAutoDFPTWork.from_scf_input(scf_input)
flow.register_work(work)
from abipy.abio.factories import gs_input
gs_input(structure="si.cif", pseudos="14si.pspnc", ecut=8)
other_inp = abilab.AbinitInput(structure="si.cif", pseudos="14si.pspnc")
other_inp.set_vars(ecut=8, nsppol=2, toldfe=1e-8)
other_inp.set_autokmesh(8)
other_inp
gsr = abiopen("si_nscf_GSR.nc")
gsr.ebands.plot(with_gaps=True);
(contributed by Y. He)
gsr.ebands.plotly(with_gaps=True); # obj.plot becomes obj.plotly
gsr.ebands.plotly(with_gaps=True, chart_studio=True);
gsr.ebands.kpoints.plotly(title="k-path in 3d with plotly");
znse_ddb = abilab.abiopen("ZnSe_hex_qpt_DDB")
phbst_file, phdos_file = znse_ddb.anaget_phbst_and_phdos_files()
phbands, phdos = phbst_file.phbands, phdos_file.phdos
phbands.plotly_with_phdos(phdos, units="cm-1", title="ZnSe Phonon bands + DOS in cm-1");
ddb = abilab.abiopen("ZnSe_hex_qpt_DDB")
abilab.abipanel(); # Important
ddb.get_panel()
abiopen.py FILE --expose
abiopen.py FILE --plotly # -ply
abiopen.py FILE --expose-web # -ew
abiopen.py FILE --notebook # or --notebook-classic
abiview.py ddb out_qpt_DDB --panel # -pn
%embed https://abinit.github.io/abipy/graphical_interface.html
scheduler.yml providing:
manager.yml providing:
See this page for examples or use the abidoc.py script and the syntax:
The simplest way to start the scheduler from the shell is via the syntax:
run_elastic.py --scheduler # -s for the short option
For non-trivial Flows, we suggest to put the scheduler in background and use nohup
so that we can disconnect from the shell session without killing the scheduler.
nohup run_elastic.py --s > log 2> err &
Obviously, it is possible to submit a Slurm script that executes the script on the compute note with 1 core.
To interact with the Flow, one can also use the abirun.py script, e.g:
abirun.py FLOWDIR status
(contributed by G. Petretto)
Can be used to:
Algorithm:
output_dir_path
.In python, everything boils down to:
ddb = abilab.abiopen("mp-149_DDB")
phonopy_obj = ddb.anaget_phonopy_ifc(output_dir_path="output_dir")
ddb = abilab.abiopen("mp-149_DDB")
ph = ddb.anaget_phonopy_ifc()
ph.set_irreps([0, 0, 0])
ph.get_irreps().show()