PLUTO  4.4-patch2
Functions
ct_field_average.c File Reference

Average staggered magnetic field to zone center. More...

#include "pluto.h"

Functions

void CT_AverageStaggeredFields (double ****Vs, double ****UU, RBox *box, Grid *grid)
 

Detailed Description

Author
A. Mignone (migno.nosp@m.ne@t.nosp@m.o.inf.nosp@m.n.it)
Date
Sep 04, 2020

Function Documentation

◆ CT_AverageStaggeredFields()

void CT_AverageStaggeredFields ( double ****  Vs,
double ****  UU,
RBox box,
Grid grid 
)

Average staggered magnetic field components to form a zone-centered field, e.g., $ \av{B_i} = (B_{i+1/2} + B_{i-1/2})/2$. In cylindrical coordinates the volume-averaged radial component is obtained as

\[ \av{B_R} = \frac{1}{\Delta V} \int B(R) R dR \qquad\mathrm{where}\qquad B(R) = B_{R,i+\HALF} \frac{R - R_{i-\HALF}}{\Delta R} + B_{R,i-\HALF} \frac{R_{i+\HALF} - R}{\Delta R} \]

this yields

\[ \av{B_R} = \frac{R_{i+\HALF} + 2R_{i-\HALF}}{3(R_{i+\HALF}+R_{i-\HALF})} B_{R,i-\HALF} + \frac{2R_{i+\HALF} + R_{i-\HALF}}{3(R_{i+\HALF}+R_{i-\HALF})} B_{R,i-\HALF} \]

Simlar expressions hold in spherical coordinates. Check with the following MAPLE script:

restart;
J := sin(xi); # J = xi, xi^2, sin(xi)
Br := (xi - a)/Delta*B[R] + (b - xi)/Delta*B[L];
Bav := int (Br*J, xi=a..b) / int (J, xi=a..b):
Delta := b-a;
Bav := simplify(Bav);
cp := coeff(Bav, B[R]);
cm := coeff(Bav, B[L]);
# Check symmetry propetries (sign must not change)
eval([cm,cp],{a=0,b=1});
eval([cm,cp],{a=-1,b=0});

The averaging is done inside an arbitrary rectangular box. The box may include boundary cells only during the predictor step of the CT-CTU algorithm, whereas is useless for RK time stepping.

When the CT_EN_CORRECTION flag is enabled, we also redefine the zone total energy using the newly formed cell-centered field, i.e.,

\[ E_i \to E_i - \frac{\mathbf{B}_i^2}{2} + \frac{<\mathbf{B}_i^2>}{2} \]

Parameters
[in]Vsarray of staggered fields
[out]UUarray of conservative variables
[in]boxpointer to RBox structure
[in]gridpointer to Grid structure