[FLASH-USERS] Magnetic fields at refinement boundaries in USM

Yi-Hao Chen ychen at astro.wisc.edu
Tue Mar 26 14:12:02 EDT 2019


Hi John,

Thanks for getting back to me quickly.

I thought that HLLC solve is primarily for Hydro simulations. I am using the Hybrid solver in MHD, so that should include HLLD or HLL solvers.

The Balsara interpolation affects only the prolongation process, i.e. when interpolating newly created finer blocks, and has no effect on the guardcell filling between coarser and finer block. The guardcell filling process for the face-center fields seems to use neither direction injection nor Balsara injection. It is coded to uses linear interpolation and does not have a runtime parameter for other choices, which puzzles me. I am wondering the motivation behind this choice and looking for insights whether this might cause the problem.

Best,
Yi-Hao
<mailto:ychen at astro.wisc.edu>


On Tue, Mar 26, 2019 at 12:07 PM John Zuhone <jzuhone at gmail.com<mailto:jzuhone at gmail.com>> wrote:
Hi Yi-Hao,

This is a known problem, and you are likely seeing the same issue that you saw on the mailing list earlier.

Sometimes it helps to use the HLLC solver instead of HLLD, though it does not remove this artifact entirely in my experience.

There is also balsara interpolation for magnetic fields, but I have found that neither this or the straight injection interpolation helps either.

Best,

John

On Mar 26, 2019, at 1:01 PM, Yi-Hao Chen <ychen at astro.wisc.edu<mailto:ychen at astro.wisc.edu>> wrote:

Dear FLASH community,

I have been trying to find the cause of a refinement boundary problem when using USM solver in cartesian 3D simulations. The problem appears as the accumulation of magnetic fields at the finer edge at the refinement boundary. I am not sure how to reproduce the problem in a simple setting, but this seems to be prevalent in the simulations that I have been running. Usually, the anomalies dissipated after many timesteps and went unnoticed. However, it occasionally causes a few cells to drop to extremely small or even negative density and crashes the simulation. I am wondering if anyone has seen similar behaviors.

Here is a snapshot showing the By field in x-y plane. The quiver arrows indicate the fluid velocity.
<Group_L438_hdf5_plt_cnt_0339_Slice_z_magnetic_field_y.png>

Some relavent parameters I used: RiemannSolver="Hybrid", order=3, slopelimiter="mc", CFL=0.4, energfix = .true.

A few solutions that I have tried:
1. Lower CFL to 0.2
-> does not help
2. Use E_upwind = .true.
-> Enabling upwind scheme for E fields does seem to lower the frequency that the anomaly happens, but does not get rid of the problem completely.
3. Refine or derefine the neighboring block to make the interface not at the coarse-fine block boundary.
-> This does prevent or dissipate the anomaly but does not seem to be a good general solution and I don't know how to identify the problem block on the fly.

A similar problem was discussed on the mailing list in 2016, although I am not sure the problem is the same.
http://flash.uchicago.edu/pipermail/flash-users/2016-May/001962.html
Following the discussion there, I found that the interpolation method for face-center variables in guardcells is set by interp_mask_face[x,y,z]. They are initialized to be 1 (linear) in amr_initialize.F90. During the creation of new child blocks, they are temporarily set to 0 (if prolMethod="injection_prol" as default) in Simulation_customizeProlong.F90, and are reverted to the old value after the prolongation.

I have two questions here:
1. Why does FLASH use two different interpolation methods during (a) prolongation, or the creation of child blocks, and (b) guardcell filling from coarse to fine block? In the discussion linked above, it was mentioned that using different treatments was based on experience with applications. I would like to learn more about this if possible.
2. It appears to me that the direct injection (0th order) is used in prolongation because it simply preserves the divergence-free nature of the B fields. I am not sure, but I suspect linear interpolation does not always preserve the divergence-free fields. Thus, wouldn't it be a problem using linear interpolation for guardcell filling?

Any suggestions or possible directions to look into are very much appreciated.

Best Regards,
Yi-Hao


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://flash.rochester.edu/pipermail/flash-users/attachments/20190326/fa07845a/attachment.htm>


More information about the flash-users mailing list