PLUTO  4.0
 All Data Structures Files Functions Variables Enumerations Macros Pages
shearingbox.h
1 /* **************************************************************
2  * SHEARINGBOX module header file
3  *
4  * Last Modified: Jan, 06, 2012 by A. Mignone (mignone@ph.unito.it)
5  *
6  **************************************************************** */
7 
8 #if INTERPOLATION == LINEAR || INTERPOLATION == WENO3 || INTERPOLATION == LimO3
9  #define SB_ORDER 2 /* sets the order of interpolation at
10  physical boundaries. (1,2 or 3) */
11 #else
12  #define SB_ORDER 3 /* sets the order of interpolation at
13  physical boundaries. (1,2 or 3) */
14 #endif
15 
16 #ifndef FARGO
17  #define SB_SYMMETRIZE_HYDRO YES /* symmetrize fluxes for conservation of hydro vars */
18  #define SB_SYMMETRIZE_EY (YES && (DIMENSIONS == 3)) /* symmetrize Ey at X+ and X- faces */
19  #define SB_SYMMETRIZE_EZ YES /* symmetrize Ez at X+ and X- faces */
20  #define SB_FORCE_EMF_PERIODS NO /* force periodicity at Y- and Z- boundaries */
21 #else
22  #define SB_SYMMETRIZE_HYDRO NO /* symmetrize fluxes for conservation of hydro vars */
23  #define SB_SYMMETRIZE_EY NO /* symmetrize Ey at X+ and X- faces */
24  #define SB_SYMMETRIZE_EZ NO /* symmetrize Ez at X+ and X- faces */
25  #define SB_FORCE_EMF_PERIODS NO /* force periodicity at Y- and Z- boundaries */
26 #endif
27 
28 /* ----------------------------
29  Global variables
30  ---------------------------- */
31 
32 extern double sb_q, sb_Omega; /* Oort constant, initialized in init.c */
33 extern double sb_vy; /* velocity offset (>0), in USERDEF_BOUNDARY */
34 
35 #define sb_A (-0.5*sb_Omega*sb_q)
36 
37 void SB_BBoundary (const Data *, int, Grid *) ;
38 void SB_SHEARING_INTERP (real *, real *, real, int, Grid *);
39 void SB_CorrectFluxes (Data_Arr, real, real, Grid *);
40 #ifdef STAGGERED_MHD
41 void SB_CorrectEMF (EMF *, Data_Arr, real, Grid *);
42 #endif
43 int SB_JSHIFT (int);
44 void SB_SAVE_FLUXES (State_1D *, Grid *);
45 #ifdef PARALLEL
46  void ExchangeX (real *, real *, int, Grid *);
47  void SB_BoundaryExchange(double ***q, BBox *buf, int side, double t, Grid *grid);
48 // void SB_BoundaryExchange(double ***, BBox *, BBox *, int, int, int, int, MPI_Comm, Grid *);
49 void SB_AllInOne(double ***U, BBox *box, int side, double t, Grid *grid);
50 #endif