macports-ports icon indicating copy to clipboard operation
macports-ports copied to clipboard

xyce, trilinos16: new ports for Trilinos 16 and Xyce

Open bpdegnan opened this issue 1 year ago • 4 comments

xyce: Sandia's parallel SPICE-compatible circuit simulator, which depends on trilinos16. trilinos16: a versioned port for Trilinos 16.1.0 needed by newer scientific packages.
trilinos16 had to be versioned because the 17+ version deprecates some packages needed by xyce. For this reason, these ports are not mutually exclusive.

Type(s)
  • [ ] bugfix
  • [x] enhancement
  • [ ] security fix
Tested on

macOS 13.7.5 22H527 x86_64 Xcode 14.3.1 14E300c

Verification

Have you

  • [x] followed our Commit Message Guidelines?
  • [x] squashed and minimized your commits?
  • [x] checked that there aren't other open pull requests for the same change?
  • [x] checked your Portfile with port lint?
  • [x] tried existing tests with sudo port test?
  • [x] tried a full install with sudo port -vst install?
  • [x] tested basic functionality of all binary files?

bpdegnan avatar Apr 21 '25 10:04 bpdegnan

I gave the portfiles a major revamp. Learned some stuff. xyce passes all of my base-line semiconductor tests.

bpdegnan avatar Apr 27 '25 15:04 bpdegnan

I need an addendum. I actually fails one test, after many hours. I will look into and sort it out.

bpdegnan avatar Apr 27 '25 15:04 bpdegnan

The most recent push updates both Portfiles.
I tried and tried to get flang to work. In the end, I settled on gcc13 for fortran as many other ports use it as well. CMake is new to me, and the -pipe and -m64 options were an issue because flang-mp-20 doesn't accept those flags. I could hand edit some .yaml to make it work, but it was really hacky. I tried: configure.optflags "" configure.universal_args-delete -m64 -pipe configure.fc_archflags "" configure.f90_archflags "" configure.f77_archflags "" but I never could get -pipe to not pass.

Here's my other notes:

-DCMAKE_INSTALL_PREFIX=${prefix} \
-DCMAKE_C_COMPILER=${configure.cc} \
-DCMAKE_CXX_COMPILER=${configure.cxx} \

These seem to be required to make CMake build Trilinos16. It was mentioned they should be default, but they need to be in the build.

The xyce binary successfully worked on my test semiconductor cases.

bpdegnan avatar Apr 30 '25 17:04 bpdegnan

@bpdegnan I'll go ahead and fiddle around with this a bit more myself and push to this PR once it's working. Especially the compiler selection, fortran, MPI and stuff needs some work to conform with the way MacPorts does stuff. Stay tuned and apologies for the delay!

reneeotten avatar Sep 05 '25 18:09 reneeotten