<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Dear Mariana,<div><br></div><div>I'm not sure exactly what FLASH is doing in their diffusion module, but I think you might want to an implicit solve for the problem you are describing.</div><div>To do this, you might need to modify one of the elliptic solvers in FLASH (such as the multigrid) for this.</div><div><br></div><div>Best,</div><div>Kevin Olson</div><div><br><div><div>On Mar 3, 2015, at 12:52 PM, Mariana Cecere wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div dir="ltr"><span><span class="im">Hi FL</span></span><span><span class="im">ASH software developers and all:<br>
I'm going to be more specific about my previous question.<br></span>I'm trying to add my own subunits (implementation) to introduce 
anisotropic thermal conduction to pure MHD simulations. To do this, I've
 studied in detail the code, but I think of there must be several things
 I do not completely understand.  <span class="im"><br><br>In Driver/DriverMain/Unsplit/Driver_evolveFlash there are two calls (among many others), in this order,<br>
<br>call Hydro<br>call Diffuse<br>
<br></span>In Hydro/HydroMain/Unsplit/hy_uhd_addThermalFluxes is defined the thermal fluxes, so, the thermal conduction is added to the MHD </span>energy fluxes.<br><p><span>While in Diffuse/DiffuseMain/Unsplit/diff_advanceTherm is obtained the diffuse temperature from the equation cv rho dT/dt = div (kappa grad T).<br>
<br>
Therefore, the first call obtains the evolution of the MHD variables including thermal conduction flux energy, and </span>separately the second call, obtains the diffused temperature.<span><br></span></p><p><span>About the time step (dt), Driver/DriverMain/Driver_computeDt calls to Hydro_computeDt and Diffuse_computeDt, then the code takes as a time step</span> the minimum between them, i.e. dt=dt_min. Where the diffusion term is given by: 0.5 dx*dx/diff_coef.<span> <br></span></p><p><span>
So, the evolution of the whole system is done with this dt_min. Is this statement correct? If yes, it is, the numerical method applied is evolving, 
simultaneously the ideal magnetohydrodynamic plus thermal conduction 
flux energy,</span> and separately the heat equation. Does this numerical method ensure
 that the whole evolution is stable? Because I know there are another methods (time splitting) which 
evolve the diffuse part with different time step (and less) to the convective part which are stable.<br></p><p><span>In order to introduce the anisotropic thermal conduction, I realize
 that I have to modify several subroutines (hy_uhd_addThermalFluxes, 
Grid_advanceDiffusion, Diffuse_solveScalar, Diffuse_computeDt... ), so I
 have to be very careful to make these changes, taking into clear how 
things are now done. For these reasons, I would like to know which 
numerical methods are implemented in Flash to solve this 
convection-difussion (hyperbolic + parabolic) equation system.<span class="im"><br>
<br>Thank you very much and I hope somebody could help me.<br></span></span></p><p><span><span class="im">Mariana<br></span></span></p></div>
</blockquote></div><br></div></body></html>