lanl / phoebus

Phifty One Ergs Blows Up A Star
BSD 3-Clause "New" or "Revised" License
32 stars 0 forks source link

Fix MC issue #161

Closed brryan closed 1 year ago

brryan commented 1 year ago

PR Summary

We were calling LinearInterpLog inside the while () of a do {} while () loop in the Monte Carlo sampling, and for some reason on device (power9 for me) this generates a segfault when the dNdlnu ParArrayND<Real> is passed to that inline function, either as a copy or a const reference. Don't know why that is, but the simple fix is to write out the interpolation routine in the actual par_for.

This runs the thincooling.pin problem to completion though I didn't check the output for accuracy.

PR Checklist

brryan commented 1 year ago

OK I fixed the exp/log inefficiency -- good point noticing that. I think that inefficiency goes back almost 15 years lol.

This passes the thincooling.py test so I assume everything still works. Merging nowonce checks pass.