[FLASH-USERS] Adding viscous term in the momentum equation

Klaus Weide klaus at flash.uchicago.edu
Fri Jun 19 16:42:25 EDT 2020


On Fri, 19 Jun 2020, Acharya, Nitish wrote:

> In addition to last question, when I went through the manual it seems 
> DiffuseFluxBased implementation only works with PPM implementation of 
> the Hydro unit. How is this done for unsplit hydro solver?

In a flux-based implementation of a diffusive term, the Hydro 
implementation does something to modify fluxes in flux arrays.
(Paraphrased from the User's Guide.)

When using split PPM Hydro: In the flux-based implementation of viscosity,
the Hydro implementation calls Diffuse_visc to modify fluxes.
Diffuse_visc is implemented in the DiffuseFluxBased subunit of the
Diffuse unit.

When using unsplit Hydro: In the flux-based implementation of 
viscosity, the Hydro implementation calls[*] hy_uhd_addViscousFluxes
to modify fluxes. The subroutine hy_uhd_addViscousFluxes exists
as part of the unsplit Hydro implementation; so strictly speaking,
it may not be necessary to include the DiffuseFluxBased subunit
since the corresponding functionality is already taken care of
by the Hydro implementation.

That is basically what the User's Guide is trying to say with the 
following sentence:

| Other Hydro implementations, in particular the MHD implementations, 
| currently implement some diffusive effects in their own flux-based way 
| that does not use the DiffuseFluxBased unit.

(The Hydro implementations mentioned here include Hydro_Unsplit.)

[*] The calls are in hy_uhd_getFaceFlux.F90.
    Look at your favorite implementation thereof, 
    find where hy_uhd_addViscousFluxes is called,
    and make sure that the relevant logical flags that enable
    the calls are all true. (Find corresponding runtime parameters.)
    That and including an implementation of Viscosity (the material 
    property) in the configuration may be all that's needed.

Klaus




More information about the flash-users mailing list