Skip to content

PVFMM: new package#13162

Open
xuanzhaogao wants to merge 8 commits intoJuliaPackaging:masterfrom
xuanzhaogao:pvfmm
Open

PVFMM: new package#13162
xuanzhaogao wants to merge 8 commits intoJuliaPackaging:masterfrom
xuanzhaogao:pvfmm

Conversation

@xuanzhaogao
Copy link
Copy Markdown
Contributor

This package is to add PVFMM https://github.com/dmalhotra/pvfmm a Julia wrapper

Copilot AI review requested due to automatic review settings February 17, 2026 19:46
@xuanzhaogao xuanzhaogao mentioned this pull request Feb 17, 2026
3 tasks
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds a new package PVFMM (Parallel Volume Fast Multipole Method), a Julia wrapper for the upstream library at https://github.com/dmalhotra/pvfmm. The package builds the library with MPI support using CMake, targeting Linux platforms only due to upstream requirements for GNU-style OpenMP and __float128 support.

Changes:

  • Adds build script for PVFMM library with MPI, FFTW, and OpenBLAS dependencies
  • Configures the build to use multiple MPI implementations (MPICH, OpenMPI, MPItrampoline, MicrosoftMPI)
  • Includes SCTL submodule as a separate GitSource to avoid submodule initialization issues

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

platforms = filter(Sys.islinux, supported_platforms())
platforms = expand_cxxstring_abis(platforms)

platforms, platform_dependencies = MPI.augment_platforms(platforms; MPItrampoline_compat="5.5")
Copy link

Copilot AI Feb 17, 2026

Choose a reason for hiding this comment

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

The MPItrampoline_compat value is specified as "5.5" which is incomplete compared to the default value "5.5.3" in platforms/mpi.jl line 51. Other packages in the repository use more complete version specifications (e.g., "5.2.1" in PARMETIS and PTSCOTCH). Consider using a complete version specification like "5.5.3" or a range specification for clarity and consistency with the codebase conventions.

Suggested change
platforms, platform_dependencies = MPI.augment_platforms(platforms; MPItrampoline_compat="5.5")
platforms, platform_dependencies = MPI.augment_platforms(platforms; MPItrampoline_compat="5.5.3")

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@eschnett Is 5.5 ok, or do we need 5.5.3?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

compat declarations for MPI are not necessary in almost all cases. If you see a build error then you could add such a compat bound, together with a comment why it is necessary. But otherwise, the default compat bounds set in mpi.jl are good and sufficient.

Comment on lines +10 to +15
version = v"1.3.0"

# Collection of sources required to complete build
sources = [
# develop branch head on 2026-02-17
GitSource("https://github.com/dmalhotra/pvfmm.git", "77c87ef9796d358bc5dd703b5c16ee0f92bd1b59"),
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

There is a discrepancy here that should be explained in a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

The version v"1.3.0" was released in 2021; we've just added the necessary Julia wrapper in the current develop branch.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can you add the comment in the build_tarballs?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants