Solves the linear transport step of the FARGO-MHD algorithm. More...
#include "pluto.h"
Functions | |
static void | FARGO_Flux (double *, double *, double) |
void | FARGO_ShiftSolution (Data_Arr U, Data_Arr Us, Grid *grid) |
Implements a uniform shift of the conservative fluid variables in the direction of orbital motion which is assumed to be (for Cartesian or polar coordinates) or (for spherical coordinates). The shift is converted into an integer part "m" and a fractional remainder "eps".
Parallelization is performed by adding extra data layers above and below the current data set so as to enlarge the required computational stencil in the orbital direction. The additional buffers are received from the processors lying, respectively, below and above and their size changes dynamically from one step to the next.
Reference
|
static |
Compute the transport flux corresponding to a fractional increment eps.
[in] | q | 1D array of a conserved quantity |
[out] | flx | the conservative flux |
[in] | eps | the fractional increment |
The following MAPLE script may be used to check the correctness of implementation
void FARGO_ShiftSolution | ( | Data_Arr | U, |
Data_Arr | Us, | ||
Grid * | grid | ||
) |
Shifts conserved variables in the orbital direction.
[in,out] | U | a 3D array of conserved, zone-centered values |
[in,out] | Us | a 3D array of staggered magnetic fields |
[in] | grid | pointer to Grid structure; |