heatflux

Module

Description

$Id$

This module computes the time depentend heat flux equation. The non-Fourier form is written

tau * dq/dt + q = F(T,rho …)

The analytical solution for constant F is that q converges exponential to F with a time scale of tau.

** AUTOMATIC CPARAM.INC GENERATION ************************ Declare (for generation of cparam.inc) the number of f array variables and auxiliary variables added by this module

CPARAM logical, parameter :: lheatflux = .true.

MVAR CONTRIBUTION 3 MAUX CONTRIBUTION 0

PENCILS PROVIDED qq(3); q2; divq


Quick access

Variables:

cool_wid, divq_r, divq_xy, divq_xy2, divq_xy3, divq_xy4, divq_xz, divq_xz2, divq_yz, e_m, eighth_moment_approx, hyper3_coeff, idiag_dtq, idiag_dtq2, idiag_qsatmin, idiag_qsatrms, idiag_qxmax, idiag_qxmin, idiag_qymax, idiag_qymin, idiag_qzmax, idiag_qzmin, idiag_tauqmax, iheatflux, ivid_divq, lnfs2, ltau_spitzer_va, noadvection_non_fourier_spitzer, non_fourier_spitzer, saturation_flux, tau1_eighthm, va2max_tau_boris, z_cutoff

Routines:

calc_diagnostics_heatflux(), calc_pencils_heatflux(), dheatflux_dt(), get_slices_heatflux(), init_heatflux(), initialize_heatflux(), pencil_criteria_heatflux(), pencil_interdep_heatflux(), read_heatflux_run_pars(), register_heatflux(), rprint_heatflux(), write_heatflux_run_pars()

Needed modules

Variables

  • heatflux/cool_wid [real,private/pointer]
  • heatflux/divq_r (*,*,*,*,*) [real,private/allocatable/target]
  • heatflux/divq_xy (*,*) [real,private/allocatable/target]
  • heatflux/divq_xy2 (*,*) [real,private/allocatable/target]
  • heatflux/divq_xy3 (*,*) [real,private/allocatable/target]
  • heatflux/divq_xy4 (*,*) [real,private/allocatable/target]
  • heatflux/divq_xz (*,*) [real,private/allocatable/target]
  • heatflux/divq_xz2 (*,*) [real,private/allocatable/target]
  • heatflux/divq_yz (*,*) [real,private/allocatable/target]
  • heatflux/e_m [real,private]
  • heatflux/eighth_moment_approx [private]
  • heatflux/hyper3_coeff [real,private/optional/default=0.0]
  • heatflux/idiag_dtq [integer,private/optional/default=0]
  • heatflux/idiag_dtq2 [integer,private/optional/default=0]
  • heatflux/idiag_dtspitzer [integer,private/optional/default=0]
  • heatflux/idiag_qmax [integer,private/optional/default=0]
  • heatflux/idiag_qrms [integer,private/optional/default=0]
  • heatflux/idiag_qsatmin [integer,private/optional/default=0]
  • heatflux/idiag_qsatrms [integer,private/optional/default=0]
  • heatflux/idiag_qxmax [integer,private/optional/default=0]
  • heatflux/idiag_qxmin [integer,private/optional/default=0]
  • heatflux/idiag_qymax [integer,private/optional/default=0]
  • heatflux/idiag_qymin [integer,private/optional/default=0]
  • heatflux/idiag_qzmax [integer,private/optional/default=0]
  • heatflux/idiag_qzmin [integer,private/optional/default=0]
  • heatflux/idiag_tauqmax [integer,private/optional/default=0]
  • heatflux/iheatflux [character,private/optional/default='nothing']
  • heatflux/ivid_divq [integer,private]
  • heatflux/kc [real,private/optional/default=0.0]
  • heatflux/ksaturation [real,private/optional/default=0.0]
  • heatflux/ksaturation_si [real,private/optional/default=70000000.0]
  • heatflux/kspitzer_para [real,private/optional/default=0.0]
  • heatflux/lnfs2 [logical,private/optional/default=.false.]
  • heatflux/lreset_heatflux [logical,private/optional/default=.false.]
  • heatflux/ltau_spitzer_va [logical,private/optional/default=.false.]
  • heatflux/noadvection_non_fourier_spitzer [private]
  • heatflux/non_fourier_spitzer [private]
  • heatflux/nu_ee [real,private]
  • heatflux/saturation_flux [real,private/optional/default=0.0]
  • heatflux/tau1_eighthm [real,private/optional/default=0.0]
  • heatflux/tau_inv_spitzer [real,private/optional/default=0.0]
  • heatflux/va2max_tau_boris [real,private/optional/default=0.0]
  • heatflux/z_cutoff [real,private/pointer]

Subroutines and functions

subroutine  heatflux/register_heatflux()

Set up indices for variables in heatflux modules.

24-apr-13/bing: coded

Use :

farraymanager (farray_register_pde())

Call to:

svn_id(), not_implemented(), fatal_error(), dot2_mn(), div(), identify_bcs(), del6(), calc_diagnostics_heatflux(), max_mn_name(), save_name(), unit_vector(), gij()

subroutine  heatflux/initialize_heatflux(f)

Called after reading parameters, but before the time loop.

07-sept-17/bingert: updated

Parameters:

f (mx,my,mz,mfarray) [real]

Use :

slices_methods (alloc_slice_buffers()), sharedvariables (get_shared_variable())

Call to:

not_implemented(), fatal_error(), dot2_mn(), div(), identify_bcs(), del6(), calc_diagnostics_heatflux(), max_mn_name(), save_name(), unit_vector(), gij()

subroutine  heatflux/init_heatflux(f)

initialise heatflux condition; called from start.f90 07-sept-17/bingert: updated

Parameters:

f (mx,my,mz,mfarray) [real,inout]

Call to:

dot2_mn(), div(), identify_bcs(), del6(), calc_diagnostics_heatflux(), max_mn_name(), save_name(), unit_vector(), gij()

subroutine  heatflux/pencil_criteria_heatflux()

All pencils that this heatflux module depends on are specified here.

07-sept-17/bingert: updated

Call to:

dot2_mn(), div(), identify_bcs(), del6(), calc_diagnostics_heatflux(), max_mn_name(), save_name(), unit_vector(), gij()

subroutine  heatflux/pencil_interdep_heatflux(lpencil_in)

Interdependency among pencils provided by this module are specified here.

07-sept-17/bingert: updated

Parameters:

lpencil_in (npencils) [logical,inout]

Call to:

dot2_mn(), div(), identify_bcs(), del6(), calc_diagnostics_heatflux(), max_mn_name(), save_name(), unit_vector(), gij()

subroutine  heatflux/calc_pencils_heatflux(f, p)

Calculate Heatflux pencils. Most basic pencils should come first, as others may depend on them.

07-sept-17/bingert: updated

Parameters:
Use :

sub (dot2_mn(), div())

Call to:

dot2_mn(), div(), identify_bcs(), del6(), calc_diagnostics_heatflux(), max_mn_name(), save_name(), unit_vector(), gij()

subroutine  heatflux/dheatflux_dt(f, df, p)

26-apr-13/bing: coded

Parameters:
Use :

sub (identify_bcs(), del6())

Call to:

identify_bcs(), del6(), calc_diagnostics_heatflux(), max_mn_name(), save_name(), unit_vector(), gij()

subroutine  heatflux/calc_diagnostics_heatflux(p)
Parameters:

p [pencil_case]

Use :

diagnostics (max_mn_name(), sum_mn_name(), save_name()), slices_methods (store_slices())

Call to:

max_mn_name(), save_name(), unit_vector(), gij()

subroutine  heatflux/read_heatflux_run_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

Call to:

max_mn_name(), unit_vector(), gij()

subroutine  heatflux/write_heatflux_run_pars(unit)
Parameters:

unit [integer,in]

Call to:

max_mn_name(), unit_vector(), gij()

subroutine  heatflux/rprint_heatflux(lreset[, lwrite])

Reads and registers print parameters relevant to heatflux.

07-sept-17/bingert: updated

Parameters:
  • lreset [logical]

  • lwrite [logical]

Use :

diagnostics (parse_name()), farraymanager (farray_index_append())

Call to:

max_mn_name(), unit_vector(), gij()

subroutine  heatflux/get_slices_heatflux(f, slices)

Write slices for animation of Heatflux variables.

07-sept-17/bingert: updated

Parameters:
Use :

slices_methods (assign_slices_scal())

Call to:

max_mn_name(), unit_vector(), gij()

subroutine  heatflux/pushpars2c(p_par)
Parameters:

p_par (20) [integer]

Use :

syscalls (copy_addr()), general (string_to_enum())