-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update submodules, API changes, tracer swarm packs, Monte Carlo packs, formatting CI #225
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was a BIG effort. Thanks @AstroBarker . Some minor nitpicks that should be addressed before merging. But I'm approving now. Nice work!
template <> | ||
TaskStatus ApplyFloors<MeshData<Real>>(MeshData<Real> *rc) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if the specialization isn't working properly. Maybe worth double checking that this version of the code is actually being called. (And same for the others...)
template <> | ||
TaskStatus ApplyFloors<MeshData<Real>>(MeshData<Real> *rc) { | ||
for (int b = 0; b < rc->NumBlocks(); b++) { | ||
ApplyFloors(rc->GetBlockData(b).get()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does GetBlockData(b)
definitely return the right stage? it should I think? Might be worth double checking the name that gets spit out here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah! This is straight from a MeshData
object -- that provides the correct stage, yeah.
pmb->meshblock_data.Get();
does not -- I was sensitive because we just got bit by this in KHARMA: parthenon-hpc-lab/parthenon#1220
Personally I like the foreach
pattern Philipp suggests in that issue over numerical iteration.
Since b3d4ebf isn't working lets just revert for now. Can be a fix for a later MR. |
inputs/tov_cart.pin
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
is there a reason these BC flags are preserved? is this a cartesian coords thing
…or driver according to previous feats
PR Summary
Far overdue, this PR updates
parthenon
,singularity-eos
, andsingularity-opac
and makes necessary changes to work with their updated versions. There are a number of additional changes that impact performance.Updates to MHD (API changes for packing)
Overhauls to swarm API
The advection problem's tracers were refactored due to a bug on multiple blocks
Some updates to BCs, necessitated by parthenon changes. Probably more simplification can be done.
gr_outflow
instead ofoutflow
as the latter is now a Parthenon builtin that isn't spacetime / geometry aware.The fast logs of
singularity-eos
are default disabled.Updates neutrino mean opacity API
Tracers:
MeshData
instead ofMeshBlockData
SWARM_VARIABLE
now, so access with e.g.,tv::rho()
,tv::rho::name()
e.g., (fornamespace tv = tracer_variables;
to enable type based packing.Started porting moments code to packs
Monte carlo code was ported to swarm and sparse packs. Soon: to MeshData
Monte Carlo swarm variables are
VARIABLE
,SWARM_VARIABLE
orTENSOR_VARIABLE
.MOCMC variables are
SWARM_VARIABLE
andTENSOR_SWARM
.A consequence of the packing and template variable names is that the neutrino species is now compile time. It defaults to all 3 flavors enabled and is controlled as
-DPHOEBUS_DO_NU_ELECTRON=On
, -DPHOEBUS_DO_NU_ELECTRON_ANTI=On
, and-DPHOEBUS_DO_NU_HEAVY=On
I have implemented
MeshData
level swarm comms routines (from Jaybenne)I have implemented a temporary
MeshData
level Monte CarloMomentFluidSource
routine that for loops over blocks.Also, the github
ubuntu-latest
changed andclang-format-12
was no longer available. I have moved us to installingclang-format
withpip
, pinned at version12.0.1
. Which was not compatible with ubuntu's v12...Weirdness seems to have crept in to the regression testing. Some tests, despite producing an identical gold file (when ran with
--upgold
) failed tests due to how hdf5 was loaded. Unsure what caused this change, but a fix was implemented.