File fv_ops.cxx#

namespace FV#

Functions

Field3D Div_a_Grad_perp(const Field3D &a, const Field3D &x)#

Div ( a Grad_perp(f) ) — ∇⊥ ( a ⋅ ∇⊥ f) — Vorticity

const Field3D Div_par_K_Grad_par(const Field3D &k, const Field3D &f, bool bndry_flux = true)#

Divergence of a parallel diffusion Div( k * Grad_par(f) )

const Field3D D4DY4(const Field3D &d, const Field3D &f)#

4th-order derivative in Y, using derivatives on cell boundaries.

A one-sided 3rd-order derivative, given a value at a boundary is:

d3f/dx3 ~= 16/5 f_b - 6 f_0 + 4 f_1 - 6/5 f_2

where f_b is the value on the boundary; f_0 is the cell to the left of the boundary; f_1 to the left of f_0 and f_2 to the left of f_1

f_2 | f_1 | f_0 | f_b

NB: Uses to/from FieldAligned coordinates

No fluxes through domain boundaries

const Field3D D4DY4_Index(const Field3D &f, bool bndry_flux = true)#

4th-order dissipation term

A one-sided 3rd-order derivative, given a value at a boundary is:

d3f/dx3 ~= 16/5 f_b - 6 f_0 + 4 f_1 - 6/5 f_2

where f_b is the value on the boundary; f_0 is the cell to the left of the boundary; f_1 to the left of f_0 and f_2 to the left of f_1

f_2 | f_1 | f_0 | f_b

void communicateFluxes(Field3D &f)#

Communicate fluxes between processors Takes values in guard cells, and adds them to cells

Field3D Div_Perp_Lap(const Field3D &a, const Field3D &f, CELL_LOC outloc = CELL_DEFAULT)#

X-Z Finite Volume diffusion operator