Package: cp2k-output-tools
cp2k-output-toolsModular CP2K output file parsers, mostly in the form of regular expressions plus other tools to mangle various CP2K output:cp2kparse... parse CP2K output (for restart & input files look at thecp2k-input-toolsproject) and allow easy selection of common values.xyz_restart_parser... when restarts occur during an MD you may end up with duplicated frames in the trajectory, this tool filters them (and can easily handle huge files)cp2k_bs2csv... convert a CP2K band structure file to multiple (one-per-set) CSV files for easier plotting. There is also an API available if you need to import bandstructure data into your application.cp2k_pdos... apply a convolution with Gaussians on a regular grid on the CP2K PDOS output and generate a CSV file for further processing or plotting. The same grid is used for all input files with the min/max of the grid automatically determined, but no summation of the different projections is done.RequirementsPython 3.6+regex 2021+click 8+numpy 1.19+optional: ruamel.yamlFor development:https://poetry.eustace.io/https://pytest.org/Usage: cp2kparseThere is a simple command-line interfacecp2kparse:$cp2kparse--helpUsage: cp2kparse [OPTIONS] [FILE|-]Parse the CP2K output FILE and return a structured outputOptions:-f, --format [json|yaml|highlight]Output format (json or yaml are structureformats, highlight shows which lines of theoutput have been matched)--color [auto|always]           When to colorize output-s, --safe-keys                 generate 'safe' key names (e.g. withoutspaces, dashes, ..)-S, --statistics                print some statistics to stderr-k, --key <PATH>                Path, ex.: 'energies/total force_eval'--help                          Show this message and exit.$cp2kparsecalc.out{"cp2k": {"cp2kflags: libint fftw3 libxc xsmm spglib": " ","data directory path": "/data/tiziano/cp2k/data","input file name": "Si-supercell-001.inp","is freely available from": "https://www.cp2k.org/","program compiled at": "Mon Sep 16 14:42:43 CEST 2019","program compiled for": "local","program compiled on": "tcpc18","source code revision number": "git:43f50e2","version string": "CP2K version 7.0 (Development Version)"},"dbcsr": {"cpu multiplication driver": "XSMM","maximum elements for images": "UNLIMITED","multiplication size stacks": 3,"multiplication stack size": 1000,"multiplicative factor virtual images": 1,"multrec recursion limit": 512,"use multiplication densification": true},"energies": {"total force_eval": -251.6873903110507},"global": {"all-to-all communication in single precision": false,"basis set file name": "BASIS_MOLOPT","coordinate file name": "__STD_INPUT__","cpu model name": "Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz","cpuid": 1002,"ffts using library dependent lengths": false,"force environment number": 1,"global print level": "MEDIUM","method name": "CP2K","mm potential file name": "MM_POTENTIAL","mpi i/o enabled": true,"number of threads for this process": 1,"potential file name": "POTENTIAL","preferred diagonalization lib.": "SL","preferred fft library": "FFTW3","project name": "Si-supercell-001","run type": "ENERGY_FORCE","this output is from process": 0,"total number of message passing processes": 1},"mulliken population analysis": {"per atom": [{"charge": 7e-06,"element": "Si","kind": 1,"population": 3.999993},{"charge": 0.0,"element": "Si","kind": 1,"population": 4.0},{"charge": -0.0,"element": "Si","kind": 1,"population": 4.0},{"charge": -1e-06,"element": "Si","kind": 1,"population": 4.000001},{"charge": -0.0,"element": "Si","kind": 1,"population": 4.0},{"charge": -1e-06,"element": "Si","kind": 1,"population": 4.000001},{"charge": -1e-06,"element": "Si","kind": 1,"population": 4.000001},{"charge": -0.0,"element": "Si","kind": 1,"population": 4.0},{"charge": 0.000137,"element": "Si","kind": 1,"population": 3.999863},{"charge": -2e-05,"element": "Si","kind": 1,"population": 4.00002},{"charge": -0.000133,"element": "Si","kind": 1,"population": 4.000133},{"charge": 2.1e-05,"element": "Si","kind": 1,"population": 3.999979},{"charge": -0.000133,"element": "Si","kind": 1,"population": 4.000133},{"charge": 2.1e-05,"element": "Si","kind": 1,"population": 3.999979},{"charge": 0.000137,"element": "Si","kind": 1,"population": 3.999863},{"charge": -2e-05,"element": "Si","kind": 1,"population": 4.00002},{"charge": -3.9e-05,"element": "Si","kind": 1,"population": 4.000039},{"charge": 3.6e-05,"element": "Si","kind": 1,"population": 3.999964},{"charge": -1e-05,"element": "Si","kind": 1,"population": 4.00001},{"charge": 1e-05,"element": "Si","kind": 1,"population": 3.99999},{"charge": -3.9e-05,"element": "Si","kind": 1,"population": 4.000039},{"charge": 3.6e-05,"element": "Si","kind": 1,"population": 3.999964},{"charge": -1e-05,"element": "Si","kind": 1,"population": 4.00001},{"charge": 1e-05,"element": "Si","kind": 1,"population": 3.99999},{"charge": -3.9e-05,"element": "Si","kind": 1,"population": 4.000039},{"charge": 3.6e-05,"element": "Si","kind": 1,"population": 3.999964},{"charge": -3.9e-05,"element": "Si","kind": 1,"population": 4.000039},{"charge": 3.6e-05,"element": "Si","kind": 1,"population": 3.999964},{"charge": -1e-05,"element": "Si","kind": 1,"population": 4.00001},{"charge": 1e-05,"element": "Si","kind": 1,"population": 3.99999},{"charge": -1e-05,"element": "Si","kind": 1,"population": 4.00001},{"charge": 1e-05,"element": "Si","kind": 1,"population": 3.99999},{"charge": 6e-06,"element": "Si","kind": 1,"population": 3.999994},{"charge": 3.5e-05,"element": "Si","kind": 1,"population": 3.999965},{"charge": 3.3e-05,"element": "Si","kind": 1,"population": 3.999967},{"charge": 9e-06,"element": "Si","kind": 1,"population": 3.999991},{"charge": 3.3e-05,"element": "Si","kind": 1,"population": 3.999967},{"charge": 9e-06,"element": "Si","kind": 1,"population": 3.999991},{"charge": 3e-06,"element": "Si","kind": 1,"population": 3.999997},{"charge": -0.000312,"element": "Si","kind": 1,"population": 4.000312},{"charge": 3e-06,"element": "Si","kind": 1,"population": 3.999997},{"charge": -0.000311,"element": "Si","kind": 1,"population": 4.000311},{"charge": 3.4e-05,"element": "Si","kind": 1,"population": 3.999966},{"charge": 1e-05,"element": "Si","kind": 1,"population": 3.99999},{"charge": 3.4e-05,"element": "Si","kind": 1,"population": 3.999966},{"charge": 1e-05,"element": "Si","kind": 1,"population": 3.99999},{"charge": 6e-06,"element": "Si","kind": 1,"population": 3.999994},{"charge": 3.5e-05,"element": "Si","kind": 1,"population": 3.999965},{"charge": -9e-06,"element": "Si","kind": 1,"population": 4.000009},{"charge": -3.3e-05,"element": "Si","kind": 1,"population": 4.000033},{"charge": 0.000308,"element": "Si","kind": 1,"population": 3.999692},{"charge": -4e-06,"element": "Si","kind": 1,"population": 4.000004},{"charge": -3.6e-05,"element": "Si","kind": 1,"population": 4.000036},{"charge": -7e-06,"element": "Si","kind": 1,"population": 4.000007},{"charge": -9e-06,"element": "Si","kind": 1,"population": 4.000009},{"charge": -3.3e-05,"element": "Si","kind": 1,"population": 4.000033},{"charge": -8e-06,"element": "Si","kind": 1,"population": 4.000008},{"charge": -3.3e-05,"element": "Si","kind": 1,"population": 4.000033},{"charge": -3.5e-05,"element": "Si","kind": 1,"population": 4.000035},{"charge": -6e-06,"element": "Si","kind": 1,"population": 4.000006},{"charge": 0.000308,"element": "Si","kind": 1,"population": 3.999692},{"charge": -4e-06,"element": "Si","kind": 1,"population": 4.000004},{"charge": -8e-06,"element": "Si","kind": 1,"population": 4.000008},{"charge": -3.3e-05,"element": "Si","kind": 1,"population": 4.000033}],"total": {"charge": 0.0,"population": 256.0}},"program info": {"ended at": "2019-09-17 17:02:35.738","process id": "23773","ran by": "tiziano","ran on": "tcpc18","started at": "2019-09-17 17:01:19.273","started by": "tiziano","started in": "/users/tiziano/work/phonopy/example/Si-CP2K","started on": "tcpc18","stopped in": "/users/tiziano/work/phonopy/example/Si-CP2K"}}and an API:fromcp2k_output_toolsimportparse_iterwithopen("calc.out","r")asfhandle:formatchinparse_iter(fhandle.read()):print(match.values)Usage: xyz_restart_cleaner$xyz_restart_cleanerorig_trajectory.xyznew_trajectory.xyzfound restart point @1, dropping 1 frames, flushing 1flushing remaining 2 framesUsage: cp2k_bs2csvGiven a.bsfile as written by CP2K the script will generate CSV files with the same name and suffixes.set-X.csvin the same directory as the source file:$cp2k_bs2csvWO3.bswriting point set WO3.bs.set-1.csv (total number of k-points: 11)with the following special points:GAMMA: 0.00000000 / 0.00000000 / 0.00000000X: 0.00000000 / 0.50000000 / 0.00000000writing point set WO3.bs.set-2.csv (total number of k-points: 11)with the following special points:X: 0.00000000 / 0.50000000 / 0.00000000M: 0.50000000 / 0.50000000 / 0.00000000writing point set WO3.bsset-3.csv (total number of k-points: 11)with the following special points:M: 0.50000000 / 0.50000000 / 0.00000000GAMMA: 0.00000000 / 0.00000000 / 0.00000000writing point set WO3.bs.set-4.csv (total number of k-points: 11)with the following special points:GAMMA: 0.00000000 / 0.00000000 / 0.00000000R: 0.50000000 / 0.50000000 / 0.50000000writing point set WO3.bs.set-5.csv (total number of k-points: 11)with the following special points:R: 0.50000000 / 0.50000000 / 0.50000000X: 0.00000000 / 0.50000000 / 0.00000000writing point set WO3.bs.set-6.csv (total number of k-points: 11)with the following special points:R: 0.50000000 / 0.50000000 / 0.50000000M: 0.50000000 / 0.50000000 / 0.00000000$lsWO3.cp2k-8.bs            WO3.cp2k-8.bs.set-2.csv  WO3.cp2k-8.bs.set-4.csv  WO3.cp2k-8.bs.set-6.csvWO3.cp2k-8.bs.set-1.csv  WO3.cp2k-8.bs.set-3.csv  WO3.cp2k-8.bs.set-5.csvDevelopment$poetryinstall$poetryrunpytest-v