[FLASH-USERS] Numerical methods to solve systems of convection–diffusion equations (part 2)

Kevin Olson Kevin.M.Olson at drexel.edu
Tue Mar 3 12:56:52 EST 2015


Dear Mariana,

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.
To do this, you might need to modify one of the elliptic solvers in FLASH (such as the multigrid) for this.

Best,
Kevin Olson

On Mar 3, 2015, at 12:52 PM, Mariana Cecere wrote:

> Hi FLASH software developers and all:
> I'm going to be more specific about my previous question.
> 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.  
> 
> In Driver/DriverMain/Unsplit/Driver_evolveFlash there are two calls (among many others), in this order,
> 
> call Hydro
> call Diffuse
> 
> In Hydro/HydroMain/Unsplit/hy_uhd_addThermalFluxes is defined the thermal fluxes, so, the thermal conduction is added to the MHD energy fluxes.
> While in Diffuse/DiffuseMain/Unsplit/diff_advanceTherm is obtained the diffuse temperature from the equation cv rho dT/dt = div (kappa grad T).
> 
> Therefore, the first call obtains the evolution of the MHD variables including thermal conduction flux energy, and separately the second call, obtains the diffused temperature.
> 
> About the time step (dt), Driver/DriverMain/Driver_computeDt calls to Hydro_computeDt and Diffuse_computeDt, then the code takes as a time step the minimum between them, i.e. dt=dt_min. Where the diffusion term is given by: 0.5 dx*dx/diff_coef. 
> 
> 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, 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.
> 
> 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.
> 
> Thank you very much and I hope somebody could help me.
> 
> Mariana
> 

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


More information about the flash-users mailing list