You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Correct SCF-step convergence residuals and split delta_density_rms (#452, #453, #454)
Fix `delta_energies_total` to derive from the per-SCF `scf_steps.energies_total`
series (not the labeled `Outputs.total_energies`), and stop synthesizing
`delta_force_abs` from the final `total_forces` (now parser-only).
Replace `delta_density_rms` with definition-specific quantities -- `delta_charge_abs`,
`delta_charge_density_rms`, `delta_charge_relative`, `delta_density_matrix_rms`,
`delta_density_matrix_max` -- plus `energy_error_estimate`, and replace
`ChargeConvergenceTarget` with a `DensityConvergenceTarget` whose `type` selector
derives the path and unit from the referenced `scf_steps` field.
Breaking: removes `delta_density_rms`; renames `ChargeConvergenceTarget`.
Copy file name to clipboardExpand all lines: docs/schema/outputs.md
+6-1Lines changed: 6 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -91,8 +91,13 @@ classDiagram
91
91
|---|---|---|
92
92
|`energies_total`| m_float64(float) (shape: ['*']) | Total energy at each SCF step. |
93
93
|`delta_energies_total`| m_float64(float) (shape: ['*']) | Absolute change of total energy at each SCF step. |
94
+
|`energy_error_estimate`| m_float64(float) (shape: ['*']) | <details><summary>Estimate of the remaining error in the total energy at each SCF step,</summary>Estimate of the remaining error in the total energy at each SCF step,<br>derived from the density residual rather than from the change of the<br>total energy itself. For example, Quantum ESPRESSO's "estimated scf<br>accuracy" is the Hartree self-energy of the density residual. Distinct<br>from `delta_energies_total`, which is the change of the total energy<br>between consecutive steps.</details> |
94
95
|`delta_potential_rms`| m_float64(float) (shape: ['*']) | Root mean square of change of potential energy at each SCF step. |
95
-
|`delta_density_rms`| m_float64(float) (shape: ['*']) | Root mean square of change of potential energy at each SCF step. |
96
+
|`delta_charge_abs`| m_float64(float) (shape: ['*']) | <details><summary>Volume-integrated absolute change of the electron density between</summary>Volume-integrated absolute change of the electron density between<br>consecutive SCF steps, `integral \|rho_n(r) - rho_(n-1)(r)\| d^3r`,<br>expressed as a charge (equivalently a number of electrons). Reported by<br>all-electron codes such as WIEN2k (`:DIS`). The exact norm and any<br>normalization are a code-reported convention that the schema does not<br>enforce.</details> |
97
+
|`delta_charge_density_rms`| m_float64(float) (shape: ['*']) | <details><summary>Root mean square, over real-space grid points, of the change of the</summary>Root mean square, over real-space grid points, of the change of the<br>electron density between consecutive SCF steps. Unlike `delta_charge_abs`<br>the volume is retained, so this is a charge density. Reported by<br>plane-wave codes such as VASP (`rms(c)`).</details> |
98
+
|`delta_charge_relative`| m_float64(float) (shape: ['*']) | Integrated absolute density change normalized by the electron count, `integral \|rho_n - rho_(n-1)\| d^3r / N`, hence dimensionless. Reported by exciting ("charge distance") and GPAW (per valence electron). |
99
+
|`delta_density_matrix_rms`| m_float64(float) (shape: ['*']) | <details><summary>Root mean square of the change of the density-matrix elements `P_munu`</summary>Root mean square of the change of the density-matrix elements `P_munu`<br>(in the non-orthonormal atomic-orbital basis) between consecutive SCF<br>steps. The elements are dimensionless, so is this residual. Reported by<br>Gaussian-basis codes such as CRYSTAL (`tst`) and ORCA (`RMS-DP`).</details> |
100
+
|`delta_density_matrix_max`| m_float64(float) (shape: ['*']) | <details><summary>Maximum absolute change of the density-matrix elements `P_munu` between</summary>Maximum absolute change of the density-matrix elements `P_munu` between<br>consecutive SCF steps; the max-norm counterpart of<br>`delta_density_matrix_rms`. Reported by Gaussian-basis codes such as<br>CP2K, CRYSTAL (`PX`), and ORCA (`Max-DP`).</details> |
96
101
|`delta_wavefunction_rms`| m_float64(float) (shape: ['*']) | Root mean square of change of wavefunction coefficients at each SCF step. Dimensionless quantity representing convergence of orbital coefficients. |
97
102
|`delta_force_abs`| m_float64(float) (shape: ['*']) | Absolute change of forces at each SCF step. |
98
103
|`durations`| m_float64(float) (shape: ['*']) | Time spent at each SCF step. |
|`threshold`| m_float_bounded(float) | <details><summary>Convergence threshold.</summary>Convergence threshold. Must be non-negative.<br>When threshold_type is 'relative', must be dimensionless.<br>When threshold_type is 'absolute', 'maximum', or 'rms', must have physical units.<br>Child classes override this to add convergence path annotations.</details> |
86
86
87
-
### `ChargeConvergenceTarget`
87
+
### `DensityConvergenceTarget`
88
88
89
89
| Section | Description | MetaInfo |
90
90
|---|---|---|
91
-
|`ChargeConvergenceTarget`| Convergence target for electron density/charge differences. |[Open in MetaInfo browser](https://nomad-lab.eu/prod/v1/develop/gui/analyze/metainfo/nomad_simulations/section_definitions@nomad_simulations.schema_packages.workflow.general.ChargeConvergenceTarget){:target="_blank"} |
91
+
|`DensityConvergenceTarget`| Convergence target for the SCF electron-density residual. |[Open in MetaInfo browser](https://nomad-lab.eu/prod/v1/develop/gui/analyze/metainfo/nomad_simulations/section_definitions@nomad_simulations.schema_packages.workflow.general.DensityConvergenceTarget){:target="_blank"} |
92
92
93
93
| Quantity | Type | Description |
94
94
|---|---|---|
95
95
|`threshold`| m_float_bounded(float) | <details><summary>Convergence threshold.</summary>Convergence threshold. Must be non-negative.<br>When threshold_type is 'relative', must be dimensionless.<br>When threshold_type is 'absolute', 'maximum', or 'rms', must have physical units.<br>Child classes override this to add convergence path annotations.</details> |
96
+
|`type`| Enum | Which density-convergence residual this target tracks. Selects the `scf_steps.delta_<type>` quantity read for the check (and thereby its expected unit). |
0 commit comments