# FLASH4.6.1 API

Generated from /asc/asci2/site/flashcode/secure/release_4p6/source/physics/Diffuse/Diffuse_solveScalar.F90 with ROBODoc v4.99.8 on Mon Oct 14 13:16:06 2019

## [Functions] source/physics/Diffuse/Diffuse_solveScalar

[top][index]

NAME

```  Diffuse_solveScalar
Diffuse_solveScalarAniso
```

SYNOPSIS

```  call Diffuse_solveScalar (integer(IN) :: iVar,
integer(IN) :: iFactorB,
integer(IN) :: iFactorA,
integer(IN) :: bcTypes(6),
real(IN)    :: bcValues(2,6),
real(IN)    :: dt,
real(IN)    :: scaleFact,
real(IN)    :: chi,
real(IN)    :: theta,
integer(IN), OPTIONAL :: pass,
integer(IN) :: blockCount,
integer(IN) :: blockList(blockCount),
integer(IN), OPTIONAL :: iFactorC,
integer(IN), OPTIONAL :: iFactorD)
call Diffuse_solveScalarAniso (integer(IN) :: iVar,
integer(IN) :: iFactorsB,
integer(IN) :: iFactorA,
integer(IN) :: bcTypes(6),
real(IN)    :: bcValues(2,6),
real(IN)    :: dt,
real(IN)    :: scaleFact,
real(IN)    :: chi,
real(IN)    :: theta,
integer(IN), OPTIONAL :: pass,
integer(IN) :: blockCount,
integer(IN) :: blockList(blockCount),
integer(IN), OPTIONAL :: iFactorC,
integer(IN), OPTIONAL :: iFactorD)
```

DESCRIPTION

```      This routine advances a generalized diffusion operator of the form

A*(df/dt) + C*f = div(B*grad(f)) + D ,

where
f = f(x,t) is the  Variable to be diffused (x=1D..3D position);

A,B,C,D are optional given scalar factors/terms that may depend
on position; they are either physcially constant in time, or at
least considered time-independent for the purpose of the operation
implemented here (typically by computing their values from the
solution state reached by the previous time step).

Presently it is used to do heat conduction and multigroup diffusion.
```

ARGUMENTS

```   iVar           : Variable on which the diffusion operation is performed (e.g TEMP_VAR)
iFactorA       :| Are factors in the equation with spatial variation.
iFactorB       :| Factor C,D are optional and are generally used
iFactorC       :| to represent emission/absorption in MGD.
iFactorD       :| iFactorA is not needed (and thus set to constant 1.0) for
| If iFactorB is negative, the factor B (whose role is that of
| diffusion coefficient) is passed to the GridSolver implementation
| in face-centered allocatable scratch buffers (gds type FACEX,
! FACEY, FACEZ) instead of UNK. [For HYPRE GridSolver only]
bcTypes        : Presently OUTFLOW, VACUUM, DIRICHLET are supported, with additional
limited support for OUTSTREAM.
bcValues       : Values of iVar,iFactorB on boundary (DIRICHLET).
dt             : The time step.
scaleFact      : Factor by which the end solution is scaled (not used).
chi            : useful for constant diffusion problems (not used).
theta          : varies scheme (0-> Explicit, 1-> backward euler, 0.5 -> Crank Nicholson
pass           : Ignored in unsplit solver.
pass=1 order of directional sweep X-Y-Z,
pass=2 order of directional sweep Z-Y-X.
blockCount     : The number of blocks in the list.
blockList      : The list of blocks on which the solution must be updated.

iFactorsB      : an array of (currently) 3 integers, used in place of iFactorB in the
anisotropic variant, identifies the up to 3 variables that hold
the coefficients for the anisotropic conductivity.
```

SIDE EFFECTS

```
```

NOTES

```  Stub implementation.
```

```  Grid_ascGetBlkPtr