implicit_diffusion

Module

Description

$Id$

This module provides general facilities to implicitly solve a diffusion equation.

** 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 :: limplicit_diffusion = .true.


Quick access

Variables:

get_tridiag, implicit_method, implicit_pencil, integrate_diffusion_fft, integrate_diffusion_fft_xy, integrate_diffusion_full, integrate_diffusion_zonly, limplicit_diffusion_with_cg, limplicit_diffusion_with_fft, set_diffusion_equations, xsweep, ysweep, zsweep

Routines:

integrate_diffusion(), read_implicit_diff_run_pars(), write_implicit_diff_run_pars()

Needed modules

Variables

  • implicitdiffusion/get_tridiag [private]
  • implicitdiffusion/implicit_method [character,private/optional/default='full']
  • implicitdiffusion/implicit_pencil [private]
  • implicitdiffusion/integrate_diffusion_fft [private]
  • implicitdiffusion/integrate_diffusion_fft_xy [private]
  • implicitdiffusion/integrate_diffusion_full [private]
  • implicitdiffusion/integrate_diffusion_zonly [private]
  • implicitdiffusion/limplicit_diffusion_with_cg [logical,private/optional/default=.false.]
  • implicitdiffusion/limplicit_diffusion_with_fft [logical,private/optional/default=.false.]
  • implicitdiffusion/set_diffusion_equations [private]
  • implicitdiffusion/xsweep [private]
  • implicitdiffusion/ysweep [private]
  • implicitdiffusion/zsweep [private]

Subroutines and functions

subroutine  implicitdiffusion/read_implicit_diff_run_pars(iomsg)
Parameters:

iomsg [character,out]

Use :

file_io (parallel_unit())

Call to:

fatal_error(), sheared_advection_fft(), transp_xy(), cyclic(), tridag(), warning()

subroutine  implicitdiffusion/write_implicit_diff_run_pars(unit)
Parameters:

unit [integer,in]

Call to:

fatal_error(), sheared_advection_fft(), transp_xy(), cyclic(), tridag(), warning()

subroutine  implicitdiffusion/integrate_diffusion(get_diffus_coeff, f, ivar1[, ivar2])

Integrate the diffusion term for components ivar1 to ivar2 according to implicit_method. ivar2 can be omitted if only operating on one component.

05-sep-14/ccyang: coded.

Parameters:
  • get_diffus_coeff [external]

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

  • ivar1 [integer,in]

  • ivar2 [integer,in,]

Call to:

fatal_error(), sheared_advection_fft(), transp_xy(), cyclic(), tridag(), warning()

subroutine  implicitdiffusion/pushpars2c(p_par)
Parameters:

p_par (2) [integer]

Use :

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