PrincetonUniversity / athena

Athena++ radiation GRMHD code and adaptive mesh refinement (AMR) framework
https://www.athena-astro.app
BSD 3-Clause "New" or "Revised" License
220 stars 120 forks source link

Leftovers from merge non-relativistic radiation transport: add more output switches, derive IMRadTaskList, etc. #537

Open felker opened 1 year ago

felker commented 1 year ago

Mostly from @tomidakn's review that we skipped over to finally merge the monster #492 pull request.

tomidakn commented 1 year ago

Thank you again @yanfeij for all the efforts. I'm trying to use your CR module in a project with my student, and I noticed a few more things.

felker commented 1 year ago

Related #502.

yanfeij commented 1 year ago

Thank you again @yanfeij for all the efforts. I'm trying to use your CR module in a project with my student, and I noticed a few more things.

  • CR Boundary conditions. Can we use user-defined physical BC for CR?
  • User interface should be consistent with other modules. For example, currently the CR opacity is loaded through pcr->EnrollOpacityFunction in InitUserMeshBlockData, but for other modules we provide interfaces in Mesh. Retrospectively, we could move all the interfaces to each physics module and to be called in InitUserMeshBlockData, but anyway I believe we should provide coherently designed interface.
  • Operator splitting mode for CR. This is a long-term topic, but I think it is worth consideration to implement an operator-split integrator for CR as the CR timescale is (and must be) still shorter than the hydrodynamic term. Any thoughts?

Yes, Kengo, you can use user defined boundary condition for CR. Do you mean sub-time step for CR?

tomidakn commented 1 year ago

I could not find an interface like EnrollCRBoundaryConditions. Can you tell me how to use user-defined BCs for CR?

And yes, I meant subcycling (sub timestep) for CR.

yanfeij commented 1 year ago

mesh class has EnrollUserCRBoundaryFunction. Have you tried that? It is very similar to EnrollUserBoundaryFunction

I think it will be useful to make it general to create a type of tasks that can run at a different dt. CR could be just one such tasks.

tomidakn commented 1 year ago

Oh sorry, somehow I missed it. I'll try it.

felker commented 4 months ago

delaying until after the 24.0 release