Dear Nik,
I’ve been working with deal.II and Trilinos (including MueLu) across various platforms, including macOS, for a while now. I understand your frustration, as the installation and configuration process can be tricky. Let me briefly share some insights based on my experience.
Key Issues:
1. Epetra vs. Tpetra Transition:
Trilinos is phasing out the Epetra stack in favor of Tpetra. However, deal.II’s Trilinos wrapper is still in transition, meaning some functionalities and interfaces are incomplete. This transitional state often leads to compatibility issues, especially with advanced features like MueLu.
2. MueLu Configuration Challenges:
MueLu’s compatibility depends heavily on the configuration of Epetra/Tpetra and the global ordinal type (e.g., int vs. long long). Unfortunately, these compatibility nuances are not always well-documented. Both the deal.II and Trilinos GitHub repositories have issues discussing these challenges, which might eventually resolve as the Epetra-to-Tpetra transition progresses (hopefully by 2025–2026).
My Experience:
I’ve successfully installed deal.II with Trilinos and MueLu on CentOS clusters and Apple Silicon macOS using various compiler toolchains (GCC, Intel icpc, Apple Clang). However, the process was rarely straightforward.
For my most recent setup on macOS, I didn’t strictly follow the steps outlined in the Apple-ARM-M1-OSX guide. Instead, I used a customized toolchain: the latest GCC (installed via Homebrew, mainly for gfortran, as macOS doesn’t provide it natively) and OpenMPI, combined with macOS’s default Clang as the C++ compiler. Using this setup, I built the master versions of both deal.II and Trilinos with candi. To ensure compatibility, I manually edited the Trilinos.package file in candi, explicitly activating nearly the entire Tpetra stack (Tpetra, Ifpack2, MueLu, Belos, Amesos2, Zoltan2) along with their corresponding Epetra stack. After some adjustments, everything compiled successfully, and I was able to run MueLu-based AMG preconditioners with dealii-assembled-matrices without issues.
Recommendations:
1. Custom Configuration:
If you’re using candi, consider modifying the Trilinos configuration manually to ensure both Tpetra and Epetra are fully activated. Ensure you use compatible global ordinals and enable relevant packages like MueLu and Belos.
2. GitHub Issues:
I recommend opening an issue on the deal.II GitHub repository. Several developers are actively working on the Tpetra wrapper and may have more up-to-date knowledge about MueLu configuration rules.
Apologies for not being able to provide detailed instructions at this time—I’ve been quite busy lately. I hope this helps as a starting point, and I’m happy to share more insights if needed.
Best regards,
James