Repository navigation
Conversation
ABACUS-PR-BOT
left a comment
There was a problem hiding this comment.
The terminal-step path can still mix geometry and evaluated properties, and zero-force bfgs_trad needs handling before step construction. Static source review only; builds, runtime tests, and CI results were not verified.
ABACUS-PR-BOT
left a comment
There was a problem hiding this comment.
The CG validity check and RTD executable path need correction. The earlier JSON frame mismatch and LBFGS/BFGS early-convergence paths are fixed in the inspected source.
Static source review at 4d5cd578ceb67920d63879c7bdbc6d77803caa28; builds, runtime tests, and CI were not independently verified.
| if (ucell.ionic_position_updated || ucell.cell_parameter_updated) | ||
| { | ||
| geometry_evaluated = false; |
There was a problem hiding this comment.
For the default relax_method=cg, these flags remain set after an earlier Relax::move_cell_ions() call; the later converged return does not clear them. That evaluated frame is then marked unevaluated, so final structure output loses its computed energy, stress, and forces. Reset the flags for each optimizer step after the solver consumes prior changes, and cover a move-then-converge sequence.
| - install/bin/abacus --generate-parameters-yaml > docs/parameters.yaml | ||
| - cmake -Bbuild -GNinja -DENABLE_MPI=OFF -DENABLE_LCAO=OFF -DBUILD_TESTING=OFF | ||
| - cmake --build build --target abacus_input_doc -j $(nproc) | ||
| - build/abacus_input_doc > docs/parameters.yaml |
There was a problem hiding this comment.
abacus_input_doc is declared in source/CMakeLists.txt without an output-directory override, so this Ninja build places it at build/source/abacus_input_doc. This command will fail before parameter generation. Use the actual path or give the new target an explicit runtime output directory.
| #include "source_base/matrix.h" | ||
| #include "source_base/matrix3.h" | ||
| #include "source_cell/unitcell.h" | ||
| #include "source_relax/relax_criteria.h" |
There was a problem hiding this comment.
Non-blocking: this header only takes Relax_Criteria by const reference. Forward-declare the struct here and include its definition in the implementation and tests that construct it.
| MPI_Initialized(&initialized); | ||
| if (!initialized) | ||
| { | ||
| MPI_Init(nullptr, nullptr); |
There was a problem hiding this comment.
Non-blocking: this fixture adds direct MPI lifecycle calls despite the repository wrapper rule. Use the existing Parallel_Global test-main pattern, including initialization of unused communicators before finalization, or request a scoped test-harness exception.
Reminder
AGENTS.mdanddocs/developers_guide/agent_governance.md.source/changes.Linked Issue
Fix #8087
Unit Tests and/or Case Tests for my changes