custodian.cp2k.utils module¶
This module holds different utility functions. Mainly used by handlers.
custodian.cp2k.utils.activate_diag(actions)¶
Activate diagonalization
actions (list):
list of actions that are being applied. Will be modified in-place
custodian.cp2k.utils.activate_ot(actions, ci)¶
Activate OT scheme.
actions (list):
list of actions that are being applied. Will be modified in-place
ci (Cp2kInput):
Cp2kInput object, used to coordinate settings
custodian.cp2k.utils.can_use_ot(output, ci, minimum_band_gap=0.1)¶
Check whether OT can be used:
OT should not already be activated
The output should show that the system has a band gap that is greater than minimum_band_gap
Parameters
output (Cp2kOutput) – cp2k output object for determining band gap
ci (Cp2kInput) – cp2k input object for determining if OT is already active
minimum_band_gap (float) – the minimum band gap for OT
custodian.cp2k.utils.cleanup_input(ci)¶
Intention is to use this to remove problematic parts of the input file.
The “POTENTIAL” section within KIND cannot be empty, but the number sequences used inside do not play nice with the input parser
custodian.cp2k.utils.get_conv(outfile)¶
Helper function to get the convergence info from SCF loops
Parameters
outfile (str) – output file to parse
Returns
returns convergence info (change in energy between SCF steps) as a single list (flattened across outer scf loops).
custodian.cp2k.utils.restart(actions, output_file, input_file, no_actions_needed=False)¶
Helper function. To discard old restart if convergence is already good, and copy the restart file to the input file. Restart also supports switching back and forth between OT and diagonalization as needed based on convergence behavior. If OT is not being used and a band gap exists, then OT will be activated.
Parameters
actions (list) – list of actions that the handler is going to return to custodian. If no actions are present, then non are added by this function
output_file (str) – the cp2k output file name.
input_file (str) – the cp2k input file name.
custodian.cp2k.utils.tail(filename, n=10)¶
Returns the last n lines of a file as a list (including empty lines)