PLUTO
4.4-patch2
|
Update staggered magnetic field. More...
#include "pluto.h"
Functions | |
void | CT_Update (const Data *d, Data_Arr Rs, double dt, Grid *grid) |
void | CT_CheckDivB (double ***bf[], Grid *grid) |
void | CT_InterfaceCurrent (Data *d, Grid *grid) |
void | CT_ResistiveUpdate (const Data *d, double dt, Grid *grid) |
Update face-centered magnetic field in the constrained transport formulation using a discrete version of Stoke's theorem. The update consists of a single Euler step:
where d->Vs
is the main staggered array used by PLUTO, Bs
is the magnetic field to be updated and R
is the right hand side already computed during the unsplit integrator. d->Vs
and Bs
may be the same array or may be different.
References
void CT_CheckDivB | ( | double *** | bf[], |
Grid * | grid | ||
) |
Check the divergence-free condition of magnetic field in the constrained transport formalism. The solenoidal condition is discretized in a finite-volume sense:
where denotes the right (+) or left (-) interface surface areas orthogonal to the
d
direction. Thus in Cartesian coordinates one has
while in spherical coordinates ( ) we have
where . Notice also that
where
r
is the cell center.
[in] | bf | an array of staggered magnetic field components |
[in] | grid | a pointer to Grid structure |
Comute q/D = div(E) / (rho*gamma) and Current at cell faces. [Only used in the explicit scheme]
[Only used in the explicit scheme]
Update staggered magnetic field using discrete version of Stoke's theorem. Only d->Vs
is updated, while Bs
is the original array:
d->Vs
= Bs
+ dt
* R
, where R = curl(E) is the electric field.