Schema update convergence targets#150
Conversation
… to exciting parser
4d90338 to
b893564
Compare
Migrate SCF convergence data to unified `scf_steps` and workflow model Standardizes SCF convergence handling across 8 parsers (abinit, ams, crystal, exciting, fhiaims, gpaw, quantumespresso, vasp). - Extract SCF iteration data into `outputs.scf_steps` sections - Populate `workflow2` convergence targets for all workflow types - Update schema mappings and add comprehensive tests Depends on FAIRmat-NFDI/nomad-simulations#260
Resolve conflicts from recent develop changes: - Remove TODO comments for convergence tolerance fields (removed in nomad-simulations#260) - Keep linting fix for quantum espresso XC functional parsing - Keep improved error handling for GROMACS TPR file reading - Preserve rsplit for LAMMPS file extension parsing
Merge Status UpdateSuccessfully merged Conflicts Resolved
Unit Tests: ✅ All PassingRan unit tests for all 8 parsers with convergence parsing additions:
Total: 39/39 tests passed ✅ Next StepsMoving on to testing with real-world samples from:
|
Real-World Sample Testing CompleteTested PR #150 with production NOMAD samples stored in Sample Verification ResultsAbinit (case_2: Cu geometry optimization) "convergence_targets": [
{
"m_def": "...EnergyConvergenceTarget",
"threshold": {"m_value": 0.0},
"threshold_type": "relative"
},
{
"m_def": "...ForceConvergenceTarget",
"threshold": {"m_value": 0.0, "m_unit": "hartree / bohr"},
"threshold_type": "maximum"
}
]FHI-aims (case_1: geometry optimization with 17 ionic relaxation steps) "convergence_targets": [
{
"m_def": "...ForceConvergenceTarget",
"threshold": {"m_value": 0.001, "m_unit": "electron_volt / angstrom"},
"threshold_type": "maximum"
}
]Each relaxation step contains 7-10 SCF cycles with Summary
All real-world samples parse successfully with convergence data and SCF steps extracted correctly. See |
|
@JFRudzinski above you can find local tests that were run using the CLI parser. If you agree, I merge this now. |
|
no, please go ahead and merge now 👍 ... I guess you have to give the approval yourself since it is my PR originally |
ndaelman-hu
left a comment
There was a problem hiding this comment.
Not fully in line with mapping annotations' focus on annotating the schema directly (instantiating instead via the operators), but this can be fixed later down the road.
Add convergence target and SCF steps parsing to 8 parsers Adds support for parsing workflow convergence criteria (`EnergyConvergenceTarget`, `ForceConvergenceTarget`) and SCF iteration data (`SCFSteps`) following schema updates in nomad-simulations#260. **Parsers updated:** abinit, ams, crystal, exciting, fhiaims, gpaw, quantumespresso, vasp **Implementation:** Uses direct class instantiation approach. Future migration to dict-based `m_def` mapping annotations should be tracked separately (see PR #162 for reference). **Testing:** 39 unit tests added, all passing. Validated with production samples in `.tests/pr-150-convergence/`. Depends on nomad-simulations#260 Co-authored-by: Joseph Rudzinski <joseph.rudzinski@physik.hu-berlin.de> Co-authored-by: Nathan Daelman <nathan.daelman@physik.hu-berlin.de>
depends on FAIRmat-NFDI/nomad-simulations#260