[FLASH-USERS] Some questions about magnetic resistivity

Hansen, Eddie ehansen at pas.rochester.edu
Tue Oct 18 11:59:23 EDT 2022


Magnetic resistivity is currently handled explicitly, which is why you have/need small time steps. For most users, it will be handled by the unsplit implementation of the Hydro unit in hy_uhd_addResistiveFluxes. The Diffuse unit has its own Diffuse​FluxBased routine, which you are most likely not using with your setup.

With Hydro's explicit approach for resistivity, you have to run at the diffusion time step, which is controlled by dt_diff_factor as you said. There are also logical parameters to turn on/off diffusion dt calculations for the various diffusive processes:
useDiffuseComputeDtMagnetic, for example, is likely the only one that you need to be .true. in your par file.

You can improve the diffusion time step by increasing the initial temperature and/or by using res_maxRes to set a maximum resistivity.

******************************************
Eddie Hansen | Research Scientist
Flash Center for Computational Science
Dept. of Physics and Astronomy
University of Rochester, Rochester, NY
Cell 607-341-6126 | flash.rochester.edu
(he / him / his)
******************************************
________________________________
From: flash-users <flash-users-bounces at flash.rochester.edu> on behalf of Yigeng Tian <ygtian at udel.edu>
Sent: Friday, October 7, 2022 3:18:44 PM
To: flash-users at flash.rochester.edu <flash-users at flash.rochester.edu>
Subject: [FLASH-USERS] Some questions about magnetic resistivity

Dear FLASH users,

I'm working on a modified MHD laser-slab simulation. I tried to add magnetic fields (~ 15T) and Biermann Battery effects (source version) for the laser-slab simulation, it worked well. But when I turn on the magnetic resistivity (SpitzerHighZ resistivity), the simulation is soon killed by a "Negative 3T internal energy" error.

I noticed that FLASH manual (18.1.2) said "In general, implicit schemes are numerically stable for any time step, so the runtime parameter dt_diff_factor could be set to a large value to ignore the diffusion time. However, there are cases in which HYPRE will have trouble converging on a solution, and decreasing dt_diff_factor less than 1.0 may resolve the issue."

So I changed the dt_diff_factor to 0.8, which makes the simulation run but gives a pretty low diffusion time step (~ e-16 to e-15 s). Our past simulation time step without magnetic resistivity can reach ~ e-13 to e-12 s, and the super time stepping method doesn't help a lot for overcoming the small diffusion time step.

Besides, the FLASH manual (18.1) said "Flux-Based Diffusion Solvers are used for magnetic resistivity", but 18.1.1 said "MHD implementations, currently implement some diffusive effects in their own flux-based way that does not use the DiffuseFluxBased unit."  I'm also confused which diffusion solver should be used for magnetic resistivity, is the Flux-Based version (explicit) or implicit version?

If you have any suggestions or any examples about how to set up the magnetic resistivity correctly, I would appreciate it. Thanks.

Best regards,
Yigeng Tian
Department of Physics and Astronomy
University of Delaware


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


More information about the flash-users mailing list