Uh oh!
There was an error while loading. Please reload this page.
ENH:Add 3D PDF calculator support - #49
Conversation
Need this for develop mode building
docs: add development instructions for compiling source code
sbillinge
left a comment
There was a problem hiding this comment.
I didn't see any tests. Are there tests?
Can we also try and think about if it makes sense to make shared functions for anything to avoid copy-paying code from the PDF calculator? The more we can separate into shared functions the less duplication we have to maintain in the future
| * | ||
| * libdiffpy by DANSE Diffraction group | ||
| * Simon J. L. Billinge | ||
| * (c) 2009 The Trustees of Columbia University |
There was a problem hiding this comment.
Please fix date and address. I am not sure we actually need this text block any more as we do the copyright and attribution differently do maybe just delete the whole block?
joeseaer
commented
Jul 8, 2026
Thanks Simon. I updated the PR to address these review comments. I removed the copied legacy copyright/header blocks from the new I also refactored the shared structure-factor and normalization logic so The 3D grid deposition, spherical q-window, and delta-shell preprocessing remain I verified the updated libdiffpy build locally with scons -j2. |
sbillinge
commented
Jul 8, 2026
This is great. Thanks. Please can you paste the results of running tests locally? Also, possibly on a new branch, please could you try and merge |
dragonyanglong
commented
Jul 16, 2026
@joeseaer any updates on this? |
joeseaer
commented
Jul 24, 2026
Sorry for the delayed update. This was tested on WSL2 Ubuntu 24.04 with GCC 13.3.0, Python 3.12.3, Boost 1.83.0, GSL 2.7.1, and libobjcryst 2022.1.4. I am now reviewing the work on migration-nano and confirming the integration details and required code changes with Rundong. Once that work is complete, I will push the integrated changes to a branch based on migration-nano and update this PR to target that branch. |
dragonyanglong
commented
Jul 25, 2026
Hi Simon @sbillinge , renaming work is finished. After you or Rundong create a |
dragonyanglong
commented
Jul 25, 2026
If the plan sounds good to you, please close this PR, no merging needed. We will make a new PR to the new migration branch. |
sbillinge
commented
Jul 25, 2026
I am a little unclear on the request here. |
sbillinge
commented
Jul 25, 2026
I can update the base branch of this PR so you may not need to redo the PR, though you may want to is you build a new branch from that new base. Just let me know what you decide. I will leave it open for now |
joeseaer
commented
Jul 26, 2026
Thank you for clarifying. I’ll create a new feature branch from migration-nano, port the changes, and open a new PR targeting that branch. |
Hi @sbillinge , So @sbillinge , please merge the |
sbillinge
commented
Aug 4, 2026
Hi @dragonyanglong@joeseaer I am not clear what the issue is. I don't see anything that needs merging into the Please @joeseaer build a clean branch off that one and migrate your changes on this PR into that branch and make a new PR, or am I missing something?" |
joeseaer
commented
Aug 4, 2026
Hi @sbillinge@dragonyanglong PR #89 (diffpy/diffpy.srreal#89) is still undergoing migration work and currently fails to build due to outdated dependencies. Once this PR is finalized, fixed, and merged, I plan to implement and upload my nanobind bindings based on the updated Python binding framework from this PR. |
joeseaer
commented
Aug 25, 2026
This work has been ported to the |
Hi @sbillinge@dragonyanglong ,
This PR adds a CPU PDF3DCalculator implementation to libdiffpy. The calculator
produces 3D real-space PDF data on a cubic grid, exposes radial histogram data,
supports binary dense-grid export, q-window post-processing, rho0 background
scaling, and 3D covariance delta controls.
It also includes the small supporting changes needed by the calculator:
a symmetric 3x3 eigen-solver helper in R3linalg, a PDFCalculator helper for
partial PDF scale, and an ObjCryst translation-vector type compatibility fix
for builds where ObjCryst::REAL is double.
I tested the libdiffpy build locally with ObjCryst/GSL/Boost available.