Meeting Update 09.16

I was mainly working on the array ghosting scheme Jonathan and I talked about last week, which stores the ghosting info necessary for each separate field variables in an array and tracking this array during the advance. It is more general than our current method so that it can be easily extended to algorithms with multiple physical processes. But when I was testing the multiple physics functions, which has now resistivity and viscosity built in, it appears that for conservative variables, we always need all the hydro vars to go into the multiphysics calculation, which makes it not efficient to keep tracking the number of ghost zones required for each hydrodynamic field entries. Another idea is to do a simplified mbc array which is 2 by 1 and has the first dimension taking values from 1 to 4 which tracks essentially the hydro vars, aux, elliptic vars and tracers. The other approach is to return to our current approach but adding new smbc to define the ghost zones required by the source term solver while combine the functionality of egmbc.

For the integration of the solver into the code, it seems we cannot mechanically calculate the dqdt for each multiphysics process and lump them into the SrcDeriv for RK update since that update requires time subcycling which is not a problem for cooling and self gravity which do not need to destroy additional ghost zones for each advance, but will be a problem for diffusion, resistivity and viscosity. These three processes require additional peripheral zones to update the internal data. Diffusion and resistivity need 1, viscosity needs 2. This means subcycling 10 times in the source term advance would require 20 more ghost zones for hydro vars when doing viscosity, which is not acceptable. Therefore we are looking for a totally independent explicit update module similar to the implicit thermal conduction thing that resides outside the current source term update. Then we would be doing the update in the order of E-S1-S2-H-S2

where E is the elliptic update, S1 is the one step source term explicit update, S2 is the current source term explicit update that does subcycling. In this way the physics solved in S1 are not integrated into the flux calculation and the subcycling process, which may induce inaccuracy, but that is price we have to pay if we want to keep the code simple and restrict communication. Or we can calculate a slope in S1 and then use it to update the hydro vars during each subcycling step in S2.

Comments

No comments.