Settings introspection¶
vibeqc.print_settings() walks every user-tunable option struct
(RHFOptions, UHFOptions, RKSOptions, UKSOptions,
PeriodicSCFOptions, PeriodicRHFOptions, PeriodicKSOptions,
LatticeSumOptions, EwaldOptions, GridOptions, HessianFDOptions,
CPHFOptions, ThermoOptions, D3BJParams) plus the runtime env
vars vibe-qc reads (OMP_NUM_THREADS, LIBINT_DATA_PATH,
VIBEQC_ECP_SHARE_DIR, VIBEQC_LIVE_LOGGING, VIBEQC_NO_HOSTNAME,
VIBEQC_PERFLOG, VIBEQC_BUILD_BRANCH, VIBEQC_BUILD_SHA,
VIBEQC_BUILD_TAG) and prints each attribute with its current value
next to the default. Pass an option-struct instance to dump just that
struct with * markers next to every attribute that differs from the
default; pass nothing to dump every struct’s defaults.
vibeqc.format_settings(...) returns the same content as a string,
useful for embedding in custom job logs. Example:
import vibeqc
opts = vibeqc.RHFOptions()
opts.max_iter = 250
opts.damping = 0.7
vibeqc.print_settings(opts)
======================================================================
RHFOptions
======================================================================
attribute current default
----------------------------------------------------------------------
conv_tol_energy 1e-08 1e-08
conv_tol_grad 1e-06 1e-06
* damping 0.7 0.5
diis_start_iter 2 2
...
* max_iter 250 100
...
The * columns make it obvious at a glance which knobs you turned
versus which ones came along for the ride at their factory defaults.