{"id":"50bb850a-f57c-4177-95e7-3486b2a083be","arxiv_id":"2608.05957","paper_version":1,"verdict":"CONDITIONAL","confidence":"MODERATE","novelty_score":6.0,"correctness_risk":"medium","formal_verification":"none","parameter_count":0,"one_line_summary":"ASE2SPRKKR is a Python package that lets ASE users drive SPR-KKR calculations, including CPA disorder, surfaces, ARPES, exchange couplings, and XAS, through a validated input/output interface.","lead":"ASE2SPRKKR wraps the SPR-KKR electronic structure code in Python, letting researchers run disorder, magnetism, and spectroscopy calculations through the standard Atomic Simulation Environment interface. The paper demonstrates the interface on Au(111) surface states, photoemission, exchange parameters, and X-ray absorption, making a specialized legacy code accessible to high-throughput workflows.","discovery_kind":"new_method","skeptic_critique":{"model":"deepseek-v4-flash","headline":"The acknowledged incomplete parsing of SPR-KKR potential files (Sec. 2.2) makes the central 'faithful translation' claim vulnerable to silent round-trip corruption; the demos are not quantitative enough to rule it out.","rationale":"The reader's weakest assumption (potential round-trip integrity) is the same concern I would put first. It is a correctness risk, not a style issue, because the paper explicitly concedes incomplete parsing and yet claims full bidirectional compatibility with native SPR-KKR. The architecture is otherwise credible: open-source repository, clear object model, use of spglib and PyParsing, and five demonstrations that produce the expected physics. Those demonstrations do not, however, constitute quantitative validation: there are no comparisons to independent calculations or measured Rashba parameters, magnetic moments, or XMCD sum-rule values, and raw data are not deposited. A round-trip test is cheap and would settle the question. I therefore keep the reader's CONDITIONAL verdict unchanged: the interface is plausible and worth accepting with conditions, but the acknowledged raw-section handling must be tested and documented before the faithful-translation claim is taken as established.","tokens_in":28864,"tokens_out":4376,"duration_ms":41419,"concrete_test":"Use the shipped examples to run a round-trip test for each of the five workflows: load the converged potential with Potential.from_file, write it back without editing, and byte-compare with the original; then apply one representative high-level edit (e.g., change the Fe/Co occupation on the Ni2FeGa site 2) and write again, and run an SCF calculation from the rewritten file versus a reference potential produced directly from native SPR-KKR inputs. If unedited files match byte-for-byte and the edited SCF reproduces the reference total energy and site moments to the SCF tolerance, the concern is resolved. If not, ASE2SPRKKR should enumerate which sections are raw, specify how they are reinserted, and add a regression test preventing silent reordering or stale content.","verdict_should_be":"UNCHANGED","load_bearing_attack":"To support the central claim that ASE2SPRKKR faithfully translates ASE structures into SPR-KKR inputs and returns physically meaningful outputs, the potential-file round trip must be lossless. The paper's own footnote in Sec. 2.2 states: 'In the current state of development, not all sections of potential are parsed; some are just stored as raw data and retained in the potential object.' If a user edits a parsed section through the high-level API (e.g., sites[...].site_type.occupation.set) and the potential is rewritten, unparsed raw sections may still encode the old structure, internal ordering, or content. Because the Fortran backend reads the entire potential file, a mismatch between edited parsed sections and stale raw sections can change converged results without any error or warning. The Sec. 3 demonstrations are qualitative (Rashba-split rings, layer-resolved spectral weights, XMCD line shapes), and the raw potential/output files are only 'available upon request,' so they do not currently rule out this silent-corruption scenario. This is load-bearing: if the round trip is not lossless, the interface can produce physically meaningful-looking but wrong results; if it is lossless, the paper should demonstrate that with a direct test.","agreement_with_reader":"agree"},"referee_report":{"model":"deepseek-v4-flash","summary":"The paper presents ASE2SPRKKR, an open-source Python package that wraps the SPR-KKR multiple-scattering electronic-structure code into the Atomic Simulation Environment. The interface extends ASE's Atoms object with SPRKKRAtoms to support fractional site occupations for CPA calculations, adds Region objects for tight-binding/embedding geometries, provides validated hierarchical input-parameter management, automated potential-file parsing/writing, MPI execution control, task switching among SCF/DOS/ARPES/BSF/JXC/XAS, and command-line utilities including a k-path selection tool and UppASD export. The application section demonstrates five workflows: one-step ARPES for Au(111), a semi-infinite Au(111) surface with Bloch spectral function and Fermi-surface maps, exchange-coupling extraction for Ni2FeGa with UppASD export, automated empty-sphere generation for diamond Si, and Ni L2,3 XAS/XMCD for Ni2FeGa. The paper claims that these demonstrations reproduce Rashba-split Au(111) surface states, capture matrix-element effects in photoemission, and produce physically meaningful exchange parameters and dichroic spectra, while emphasizing FAIR design principles.","tokens_in":29086,"tokens_out":3260,"duration_ms":32860,"significance":"If the interface performs as claimed, the paper addresses a real community need: SPR-KKR has unique capabilities for disorder (CPA/DLM), finite-temperature magnetism, relativistic effects, and spectroscopy that are not easily accessible through ASE, and the provided Python-native workflow would substantially lower the barrier to using these methods in high-throughput and multi-method studies. The paper's concrete strengths are that the source is openly available under the MIT license, the architecture cleanly separates input generation, execution, and output parsing, the SPRKKRAtoms extension preserves ASE compatibility while adding fractional occupations, and the repository includes runnable example scripts. However, the central functional claim — faithful translation of ASE structures into SPR-KKR inputs and back — is not yet backed by a direct losslessness test for potential files, and all demonstrations are qualitative, with no quantitative comparison to experiment, to published SPR-KKR results, or to native-SPR-KKR runs.","major_comments":[{"comment":"The acknowledged incomplete parsing of potential files is load-bearing for the 'faithful translation' claim. The footnote states that 'not all sections of potential are parsed; some are just stored as raw data and retained in the potential object.' If a user edits a parsed section (e.g., sites[...].site_type.occupation.set) and the potential is rewritten, the unparsed raw sections may still encode the previous structure, ordering, or content; since the Fortran backend reads the entire potential file, a mismatch could change converged results without any error or warning. The paper provides no round-trip test demonstrating that a potential read, edited, and rewritten by ASE2SPRKKR is either byte-identical to the original outside the intentionally edited fields, or that the raw sections are preserved in their original positions and order. I recommend adding a direct test: read a converged .pot_new file, modify an occupation through the high-level API, write it back, re-read it, and compare all parsed fields and the raw sections; additionally, run the same SCF task with the native SPR-KKR input writing and with ASE2SPRKKR's generated potential and show that total energies, magnetic moments, and spectral functions agree to an explicit tolerance.","section":"Sec. 2.2 (footnote), Sec. 2.6"},{"comment":"The Au(111) demonstrations are purely qualitative and therefore do not yet substantiate the claim that the interface 'reproduces Rashba-split Au(111) surface states' or 'captures matrix-element effects.' Figure 7 and Figure 9 show clear Rashba-split rings and spin polarization, but no numerical values are given for the surface-state binding energy, the Rashba spin splitting, or the spin texture winding. The paper should compare these quantities with established experimental values (e.g., the Au(111) Shockley surface state binding energy near -0.5 eV and spin splitting of order 100 meV) or with published SPR-KKR/one-step model results for the same settings. A quantitative comparison is needed to rule out that the interface introduces distortions that preserve the overall visual appearance but shift energetic or spin quantities.","section":"Sec. 3.1 and Sec. 3.2 (Figs. 7-12)"},{"comment":"The exchange-coupling and XMCD demonstrations also lack quantitative validation. For Ni2FeGa, the Jij(R) curves and the mean-field Curie temperature are shown without comparison to previous calculations or experimental Curie temperatures, and the XMCD sum-rule-derived magnetic moments are not reported numerically. Since these workflows involve exporting data to UppASD and applying sum rules, a single representative set of quantitative outputs (mean-field TC, spin and orbital moments from Eqs. (2)-(3)) compared with reference values would materially strengthen the claim that the parsed data are physically correct rather than merely visually plausible.","section":"Sec. 3.3 and Sec. 3.5 (Figs. 13 and 15)"},{"comment":"All demonstrations use SPR-KKR's own output as the reference, which is appropriate for an interface paper but does not by itself establish that ASE2SPRKKR preserves the complete physical state of a calculation. The paper claims 'maintaining complete compatibility with native SPR-KKR' (Sec. 2) and that 'Potentials are compatible with ASE in both directions' (Sec. 2.6), but no test compares a calculation launched entirely through native SPR-KKR input files with the same calculation launched through ASE2SPRKKR. I recommend adding one such head-to-head test (e.g., the Au bulk SCF or the Ni2FeGa SCF) reporting the total energy, Fermi energy, and a spectral function difference metric between the two routes. This would directly address the risk of silent corruption from the partially parsed potential-file format.","section":"Sec. 2.6 and Sec. 3 (general)"}],"minor_comments":[{"comment":"In the GPAW/SPR-KKR example, the line 'from ase.filters import FrechetCellFilter' is followed by a stray 'a' on its own line; this appears to be a typographical artifact and should be removed.","section":"Sec. 2.8 code example"},{"comment":"The figure text contains spelling inconsistencies such as 'BRA V AIS', 'orthorombic', and 'B RAVAIS'; these should be corrected to 'BRAVAIS' and 'orthorhombic'.","section":"Fig. 4 and Fig. 3 captions"},{"comment":"Several words contain ligature artifacts ('eﬀicient', 'suﬀix', 'suﬀicient'); these should be normalized to standard spelling ('efficient', 'suffix', 'sufficient').","section":"Throughout"},{"comment":"The conda install command is given as 'conda install -c ase2sprkkr ase2sprkkr'; if the intended channel is named 'ase2sprkkr' this is fine, but it may be worth clarifying whether the package is also published on conda-forge.","section":"Sec. 2.1"},{"comment":"The statement that validation may be 'overly strict' and that 'set_dangerous' bypasses checks is useful, but the boundary between supported and unsupported parameters is not clearly documented; a short table of currently unsupported SPR-KKR sections or parameters would help users.","section":"Sec. 2.5"}],"recommendation":"major_revision","confidential_remarks":"This is a software/interface paper rather than a methodology or physics-results paper, so I evaluated it primarily on whether the functional claims are demonstrated. The central risk — silently corrupted potential files due to the acknowledged incomplete parsing — is concrete and would be visible to users exactly in the workflows the paper promotes (read potential, edit occupation, run non-SCF task). The fix is straightforward in scope: add a dedicated losslessness/round-trip test and at least one head-to-head native-vs-interface calculation. The qualitative demonstrations are suggestive but not quantitatively verified, which matters because the authors are among the SPR-KKR developers and self-citation is present; an independent benchmark would make the interface's correctness claims much more robust. I would not reject, as the architecture and open-source release are valuable and the missing validation is addable; I also note that the manuscript cites its own previous work heavily, which is not problematic per se but reinforces the need for external or numerical cross-checks."},"author_rebuttal":null,"desk_editor":{"model":"deepseek-v4-flash","letter":"Take this one seriously, but expect revisions. The contribution is concrete: ASE2SPRKKR is the first ASE interface for SPR-KKR, and the SPRKKRAtoms extension with fractional site occupations for CPA is a genuine design improvement over the plain ASE occupation array. The data-tree definition system using PyParsing is a clean, general way to wrap a legacy Fortran code, and the workflow examples (GPAW relaxation into SPR-KKR ARPES, composition scanning, UppASD export) are believable and useful. The code is open source and the paper is honest about its own limitations. The theory sections are standard KKR background; the math is not new and I have no issue with it. The authors are SPR-KKR developers and cite themselves, but that's fair: the artifact is a wrapper around their own code.\n\nThe main soft spot is the one the authors acknowledge in Sec. 2.2: not all sections of the potential file are parsed; some are stored as raw data. That means the round-trip from ASE structure to potential file and back is not proven lossless. A user who edits a parsed section and rewrites the potential could leave stale raw sections that the Fortran backend reads without warning. This is not hypothetical—it is the central mechanism of the interface. The paper needs a direct round-trip test: parse a potential, write it back, parse again, and compare key fields; or better, run a self-consistent calculation from a round-tripped potential and show the total energy is unchanged.\n\nMy second concern is validation. All five applications are qualitative: Rashba-split rings, spin textures, XAS line shapes. There is no comparison to experiment or another code. For an interface paper that's acceptable up to a point, but a single quantitative benchmark—say the Au(111) surface-state binding energy and Rashba parameter against known values—would have made the case much stronger. The raw data being 'available upon request' also sits oddly with the paper's FAIR claim; the examples and code are open, but the outputs are not deposited.\n\nNone of this kills the central claim. The interface demonstrably runs and produces the expected physics; the code is available for referees to check. But the paper should either demonstrate losslessness or make the limitation more prominent and describe which workflows are safe. My recommendation: accept for peer review, ask for a round-trip test, one quantitative benchmark, and a pinned code version or commit hash. This is a paper for computational materials scientists who use or want to use SPR-KKR, especially for disorder, surfaces, and spectroscopy. I'd cite it if I used the tool.","headline":"A genuinely useful ASE interface for SPR-KKR, but the untested potential-file round-trip and qualitative-only validation keep it short of fully convincing.","tokens_in":29635,"tokens_out":5694,"would_cite":true,"duration_ms":50220,"reading_group":"maybe","serious_thinker":"yes","would_accept_peer_review":true},"rs_alignment":null,"lean_confirmation":null,"pith_extraction":{"msc":[],"pacs":[],"model":"deepseek-v4-flash","headline":"This paper claims that ASE2SPRKKR makes the SPR-KKR Green's-function code accessible from ASE, with demonstrated workflows for alloy disorder, surfaces, photoemission, spin dynamics, and X-ray absorption.","keywords":["ASE2SPRKKR","SPR-KKR","Green's function method","coherent potential approximation","Atomic Simulation Environment","one-step photoemission","X-ray magnetic circular dichroism","atomistic spin dynamics"],"falsifier":"Take a converged potential, change one site's occupation through the ASE2SPRKKR high-level API, save the potential, and run a fixed non-SCF task such as a DOS calculation; compare the result against the same calculation started from an equivalent hand-written potential file with only that occupation changed. Any difference in the output would show that the round-trip through the interface alters physical input beyond the intended edit.","tokens_in":28694,"feed_emoji":"⚛️","tokens_out":6123,"duration_ms":53062,"temperature":0.7,"pith_summary":"This paper presents ASE2SPRKKR, a Python interface that lets the Spin-Polarized Relativistic Korringa-Kohn-Rostoker (SPR-KKR) electronic-structure code run inside the Atomic Simulation Environment (ASE), the standard Python toolkit for atomistic simulation. The authors claim that this integration makes SPR-KKR's Green's-function capabilities—disordered alloys via the coherent potential approximation, surfaces, one-step photoemission, exchange couplings, and X-ray absorption—available as compact scripts rather than by hand-edited input files. If correct, the work lowers the barrier to using a mature code whose approach complements plane-wave DFT, and provides a template for wrapping other Green's-function codes into ASE. The paper demonstrates the claim with five representative workflows, including a reproduction of Rashba-split Au(111) surface states.","feed_headline":"Five materials workflows now run through SPR-KKR in Python","feed_subtitle":"Alloys, surfaces, and spectra become compact Python scripts without hand-edited input files.","key_machinery":"The load-bearing object is SPRKKRAtoms, an extension of ASE's Atoms class that keeps full ASE compatibility while adding site-type objects that hold fractional occupations, radial potentials, and charges, and a space-group cache computed by spglib. Around it, the input/output layer is built from definition classes: each section of an SPR-KKR potential or input file has a Python definition of its members, types, and file layout, and a PyParsing grammar generated from these definitions reads and writes the files uniformly. This two-part machinery—an augmented structure object plus a grammar-generated file layer—is what lets a user switch an SCF calculation to ARPES, DOS, or XAS by changing one keyword on the same calculator object.","core_discovery":"The central claim is that a single Python package, ASE2SPRKKR, can translate standard ASE structure objects into SPR-KKR input, run the Fortran backend in any of its task modes, and parse the outputs into structured Python results, without losing the physical content of the calculation. To do this, it extends the ASE Atoms object into SPRKKRAtoms, which carries fractional site occupations for coherent-potential-approximation alloys, site types, potential and charge data, and symmetry information; it also defines a tree of 'definition classes' that describe every section of SPR-KKR's potential and input files, so that parsing and writing are handled by a uniform grammar rather than case-by-case code. The authors demonstrate that this architecture supports semi-infinite surface calculations, one-step photoemission with spin resolution, extraction of Heisenberg exchange parameters for atomistic spin dynamics, X-ray absorption with magnetic circular dichroism, and automatic filling of open structures with empty spheres.","pith_inferences":["A testable extension: the fractional-occupation scanning pattern could be combined with automatic symmetry detection to map phase boundaries in multi-component alloys, which the paper does not demonstrate.","Because results are exposed as structured objects, one could train machine-learning surrogates on spectra generated by the interface across a composition grid—a direction the paper does not discuss.","The raw storage of unparsed potential sections implies that users who need full control over advanced options should still verify round-tripped potentials; the authors' stated development roadmap suggests this gap is known.","The grammar-definition approach could in principle be reused for other legacy Fortran codes with similar section-based file formats, going beyond the specific SPR-KKR case."],"forward_implications":["A relaxed structure from any ASE-compatible DFT code can be passed directly to SPR-KKR for spectroscopic calculations, with no manual file conversion.","Composition scans of substitutional alloys become simple loops over fractional occupations using the coherent potential approximation, avoiding supercells whose cost grows steeply at dilute concentrations.","Heisenberg exchange parameters from the Lichtenstein formula are exported to the UppASD atomistic spin-dynamics format in one command, enabling finite-temperature magnetic modeling.","Open covalent structures like diamond silicon can be prepared automatically with symmetry-placed empty spheres, raising the muffin-tin filling fraction and making ASA calculations reliable.","The same definition-grammar architecture is proposed as a replicable blueprint for bringing other specialized Green's-function codes into ASE."],"supporting_citations":[{"why":"Supplies the ASE Atoms object and ecosystem that the entire interface extends.","marker":"[3]"},{"why":"The SPR-KKR package and manual that constitutes the computational backend being wrapped.","marker":"[82]"},{"why":"Reviews the KKR-Green's function method whose capabilities the interface exposes.","marker":"[19]"},{"why":"Formulates the coherent potential approximation that motivates fractional occupancies in SPRKKRAtoms.","marker":"[15]"},{"why":"Provides the automatic space-group detection used to link symmetry-equivalent sites.","marker":"[90]"},{"why":"Underlies the grammar-generated parsing that reads and writes SPR-KKR files.","marker":"[92]"},{"why":"Gives the Liechtenstein formula used for exchange parameter extraction in the JXC workflow.","marker":"[64]"},{"why":"Defines the UppASD input format used for exporting exchange parameters to spin dynamics.","marker":"[73]"},{"why":"Provides the one-step photoemission model that the ARPES task invokes.","marker":"[40]"},{"why":"Supplies the XMCD sum rules used to extract spin and orbital moments in the XAS workflow.","marker":"[96]"}],"fun_headline_variants":["SPR-KKR meets ASE: alloys, surfaces, spectra in Python","Python framework bridges ASE and SPR-KKR for materials","ASE2SPRKKR: unify SPR-KKR with Atomic Simulation Environment","Five material workflows now in Python with SPR-KKR","All-electron SPR-KKR now runs from ASE in Python"],"cache_read_input_tokens":3200,"weakest_assumption_plain":"The interface must read a converged SPR-KKR potential file, let a user edit it through the high-level API, and write it back without changing any part of the potential that the Fortran code depends on; the paper notes that some sections are stored as raw data rather than parsed, so this round-trip is not yet fully verified.","fun_headline_variants_meta":{"raw":{"variants":["SPR-KKR meets ASE: alloys, surfaces, spectra in Python","Python framework bridges ASE and SPR-KKR for materials","ASE2SPRKKR: unify SPR-KKR with Atomic Simulation Environment","Five material workflows now in Python with SPR-KKR","All-electron SPR-KKR now runs from ASE in Python"]},"model":"deepseek-v4-flash","effort":"low","cost_usd":0.000701,"raw_usage":{"total_tokens":3211,"prompt_tokens":1037,"completion_tokens":2174,"prompt_tokens_details":{"cached_tokens":384},"prompt_cache_hit_tokens":384,"prompt_cache_miss_tokens":653,"completion_tokens_details":{"reasoning_tokens":2087}},"tokens_in":653,"tokens_out":2174,"duration_ms":14247,"temperature":1.0,"reasoning_tokens":2087,"cache_read_input_tokens":384,"cache_creation_input_tokens":0},"cache_creation_input_tokens":0},"created_at":"2026-08-07T20:17:45.984862+00:00","model_set":{"reader":"deepseek-v4-flash"},"falsifier":"Take a converged potential, change one site's occupation through the ASE2SPRKKR high-level API, save the potential, and run a fixed non-SCF task such as a DOS calculation; compare the result against the same calculation started from an equivalent hand-written potential file with only that occupation changed. Any difference in the output would show that the round-trip through the interface alters physical input beyond the intended edit.","supporting_citations":[{"cited_title":null,"cited_arxiv_id":null,"evidence_quote":"Supplies the ASE Atoms object and ecosystem that the entire interface extends."},{"cited_title":"Minár, S","cited_arxiv_id":null,"evidence_quote":"Reviews the KKR-Green's function method whose capabilities the interface exposes."},{"cited_title":null,"cited_arxiv_id":null,"evidence_quote":"Formulates the coherent potential approximation that motivates fractional occupancies in SPRKKRAtoms."}],"review_version":1}