Repository navigation
Feature: periodic self-consistent continuum solvation (SCCS) Step2: SCCS with PCC 0D/2D - #8194
Conversation
ABACUS-PR-BOT
left a comment
There was a problem hiding this comment.
Static review of 0c2c11d. No builds or ABACUS runtime tests were run; CI diagnostics were unavailable.
Non-blocking: Please add the exact build/test/comparison commands, executable identity/configuration, MPI ranks and observed outcomes behind the validation table, noting which force/convergence checks remain deferred. Also state the generated INPUT-documentation workflow and whether documentation-generation/CLI checks were run.
Address ABACUS-PR-BOT review of SCCS step 2: no declaration in the header uses std::vector yet.
- Name the SCCS charge tolerance (1e-6 e, the same as the PotPcc electron-count check) and the PCC 0D/2D cell tolerances (as PotPcc). - Put each brace of the new single-line blocks on its own line, and the whole context_error chain they belong to; the existing PCC check in read_inp_sys.cpp keeps its one-line style. - Use explicit types instead of auto. - Name and explain the model charges of the open-boundary tests in sccs_test.h and comment the remaining test constants.
|
@LKFEIYI LGTM, but some conflicts need to be resolved |
|
@ABACUS-PR-BOT do you have further comments? |
# Conflicts: # source/source_io/test_serial/read_input_item_test.cpp # tests/03_NAO_multik/CASES_CPU.txt
|
I found no new implementation issue in the merge/conflict resolution at The remaining validation provenance is non-blocking and can be supplied in a follow-up: identify the exact comparison revision and record focused build/test/INPUT-documentation/CLI checks run or skipped. The comparison commands, ranks and environment are already supplied. This was a static review; no product runs were performed, and CI diagnostics were unavailable. |
Reminder
AGENTS.mdanddocs/developers_guide/agent_governance.md.source/changes.Linked Issue
Third part of #8052. It follows #8075 (PCC) and #8162 (SCCS Step 1: periodic SCCS).
Remaining follow-up PRs, each stacked on the previous one: lowpass and full cavity → SCF integration → solvent-aware cavity.
What's changed?
imp_sol 2can now be combined withassume_isolated pcc_0dandpcc_2d(O. Andreussi and N. Marzari, Phys. Rev. B 90, 245101 (2014)). This removes the cell-size dependence of charged solvated systems: molecules (pcc_0d) and slabs (pcc_2d, open alongpcc_2d_axis). Neutral periodic SCCS from Step 1 is unchanged.Deliberate difference from Environ (inherited from #8075): for a charged slab,
pcc_2duses the monopole constant −πQL/(3A), whereas Environ uses −πQ/(3L).Cavity derivatives: two paths.
sccs_cav_derivbuilds grad s and lapl s for the dielectric coefficient.deriv_method chain: grad s = s′ grad n and lapl s = s′ lapl n + s″ |grad n|², from FFT derivatives of the density n.deriv_method fft, because the chain coefficient is not converged at the cavity edge.The PCC cases are therefore compared with QE in
fftmode below. Periodic results are unchanged from Step 1.CavityPointgainsd2solute_drho2for the chain path, which is checked against finite differences.Validation against QE 7.6 + Environ 3.1.1
How the comparison was run. (reply to ABACUS-PR-BOT)
Each case directory has an ABACUS INPUT/STRU/KPT and a QE
pw.in+environ.in.One script runs them with
OMP_NUM_THREADS=1:mpirun -np 8 abacus_std_para > run.logmpirun -np 8 pw.x -environ -in pw.in > run.loganalyze.pytakes ΔG from!FINAL_ETOT_IS(ABACUS) and! total energy(QE). It reads the surface and volume from theSCCS_CAVITYline and fromenviron.debug, and the forces fromTOTAL-FORCEand "Forces acting on atoms".Executables:
The ABACUS energies were reproduced bit-for-bit. Since then the code has only been renamed and switched to the ModuleBase SI constants, which moves the solvation energies by about 2×10⁻⁸ eV.
Deferred checks: there are no charged integration cases (CI time; charged energies are validated in the table above). Force accuracy with PCC is addressed by the lowpass filter in the next PR.