Skip to content

Expose spin-summed RKS setting through C/Fortran APIs#207

Draft
DCM-Uni-Paderborn wants to merge 1 commit into
wavefunction91:skalafrom
DCM-Uni-Paderborn:rks-spin-summed-density-api
Draft

Expose spin-summed RKS setting through C/Fortran APIs#207
DCM-Uni-Paderborn wants to merge 1 commit into
wavefunction91:skalafrom
DCM-Uni-Paderborn:rks-spin-summed-density-api

Conversation

@DCM-Uni-Paderborn
Copy link
Copy Markdown

@DCM-Uni-Paderborn DCM-Uni-Paderborn commented May 24, 2026

Dear David,

this is the follow-up to #208 for the skala branch. It assumes that the core C++ setting and host/device/shell-batched handling from #208 are accepted first, and only exposes that setting through the external APIs needed by downstream callers such as CP2K.

Changes in this PR are now limited to:

  • C API GauXCKSSettings
  • C API RKS entry points with explicit settings for EXC, EXC/VXC, EXC gradients, and FXC contraction
  • Fortran API optional RKS settings wrappers
  • a focused C API regression check for spin-summed closed-shell RKS density input

The core IntegratorSettingsKS extension, host/device/shell-batched RKS scaling, standalone-driver keyword, and C++ integrator regression are intentionally left to #208 and are no longer duplicated here.

This remains a draft until #208 is merged and the skala branch contains the agreed core convention.

Validation:

  • checked git diff --check
  • reduced the diff against skala to the C API, Fortran API, and C API test files only

Greetings,
Thomas

@DCM-Uni-Paderborn DCM-Uni-Paderborn marked this pull request as ready for review May 24, 2026 18:40
Copy link
Copy Markdown
Collaborator

@awvwgk awvwgk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we separate the changes to the Skala implementation and core GauXC? The extension of the settings struct is a potential API change for the core library that is unrelated to Skala and is better discussed independently of the changes necessary to expose the new setting to the Fortran API for Skala.

@DCM-Uni-Paderborn
Copy link
Copy Markdown
Author

Dear Sebastian,

Yes, that makes sense. I split off the core GauXC part into #208 against master. That PR only adds the C++ setting and the corresponding host/device/shell-batched RKS handling, plus a focused C++ regression check; it does not include Skala, OneDFT, C API, or Fortran API exposure.

I will keep this skala-branch PR as draft and rework/rebase it after the core convention is settled, so the follow-up here only exposes the agreed setting through the Skala/Fortran-facing API needed by CP2K.

Thanks for pointing this out.

@DCM-Uni-Paderborn DCM-Uni-Paderborn force-pushed the rks-spin-summed-density-api branch from 6830c6e to 9081568 Compare May 28, 2026 06:18
@DCM-Uni-Paderborn DCM-Uni-Paderborn changed the title Expose spin-summed RKS density matrix setting Expose spin-summed RKS setting through C/Fortran APIs May 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants