vibeqc.MemoryEstimate

class vibeqc.MemoryEstimate(by_category=<factory>, headroom_factor=<factory>, dims=<factory>, safety_factor=1.0, category_details=<factory>, phase_peaks=<factory>)[source]

Bases: object

Peak memory estimate for a calculation.

All byte counts are integers (pre-headroom). total_bytes multiplies the raw peak by headroom_factor so the headline figure already carries a safety margin. Most estimators are a single phase and therefore use the sum of by_category. Sequential post-HF estimators populate phase_peaks; their raw peak is the largest phase instead of the physically impossible sum of SCF, integral-build, solver, and perturbative-correction transients.

dims carries key scale dimensions (n_basis, n_occ, n_vir, n_aux, n_threads) so the formatted output can show why the estimate is the size it is. safety_factor records the largest estimator-specific safety factor already folded into a category; it is separate from the job-wide headroom_factor. Estimators should populate these fields with the values they used.

Parameters:
__init__(by_category=<factory>, headroom_factor=<factory>, dims=<factory>, safety_factor=1.0, category_details=<factory>, phase_peaks=<factory>)
Parameters:
Return type:

None

Methods

__init__([by_category, headroom_factor, ...])

format([available, status])

Render the standard memory-report block.

Attributes

by_category: dict[str, int]
headroom_factor: float
dims: dict[str, int]
safety_factor: float = 1.0
category_details: dict[str, str]
phase_peaks: dict[str, int]
property raw_total_bytes: int
property total_bytes: int
property total_gb: float
format(available=None, *, status='Proceeding')[source]

Render the standard memory-report block. available is the current process’s available RAM in bytes; if None we probe live.

Parameters:
  • available (int | None)

  • status (Literal['Proceeding', 'ABORTING', 'Proceeding (override)'])

Return type:

str