HARM
harm and utilities
 All Data Structures Files Functions Variables Typedefs Macros Pages
Macros
global.fieldmacros.h File Reference

Magnetic field and divB=0 related macros. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define MYGDET(i, j, k, p)   (GLOBALMETMACP1A0(gdet,p,0,0,0))
 
#define FgCORN(F, i, j, k)   (MAC(F,i,j,k))
 below 4 macros used for vpot2field() in initbase.c More...
 
#define AVGCORN_1(F, i, j, k)   (0.5*(FgCORN(F,ip1mac(i),j,k) + FgCORN(F,i,j,k) ))
 AVG_x functions that average in x direction typically operates on CORN1,2,3 quantities to get face quantities. More...
 
#define AVGCORN_2(F, i, j, k)   (0.5*(FgCORN(F,i,jp1mac(j),k) + FgCORN(F,i,j,k) ))
 
#define AVGCORN_3(F, i, j, k)   (0.5*(FgCORN(F,i,j,kp1mac(k)) + FgCORN(F,i,j,k) ))
 
#define NOAVGCORN_1(F, i, j, k)   (FgCORN(F,i,j,k))
 do-nothing functions More...
 
#define NOAVGCORN_2(F, i, j, k)   (FgCORN(F,i,j,k))
 
#define NOAVGCORN_3(F, i, j, k)   (FgCORN(F,i,j,k))
 
#define FgN(F, i, j, k, pl)   (MACP0A1(F,i,j,k,pl))
 below macros are similar to those farther below for divb, but no gdet stuff More...
 
#define AVGN_1(F, i, j, k, pl)   (0.5*(FgN(F,i,j,k,pl) + FgN(F,im1mac(i),j,k,pl) ))
 AVGN_x functions that average in x direction typically operates on centered quantities to get face quantities OR on face quantities to get edge quantities. More...
 
#define AVGN_2(F, i, j, k, pl)   (0.5*(FgN(F,i,j,k,pl) + FgN(F,i,jm1mac(j),k,pl) ))
 
#define AVGN_3(F, i, j, k, pl)   (0.5*(FgN(F,i,j,k,pl) + FgN(F,i,j,km1mac(k),pl) ))
 
#define NOAVGN_1(F, i, j, k, pl)   (FgN(F,i,j,k,pl))
 
#define NOAVGN_2(F, i, j, k, pl)   (FgN(F,i,j,k,pl))
 
#define NOAVGN_3(F, i, j, k, pl)   (FgN(F,i,j,k,pl))
 
#define AVGN_for1(F, i, j, k, pl)   (0.5*(AVGN_2(F,i,j,k,pl)+AVGN_2(F,i,j,km1mac(k),pl)))
 just average of 4 quantities that eventually lives on (0.5,0,0) (i.e. CORN1) More...
 
#define AVGN_for2(F, i, j, k, pl)   (0.5*(AVGN_1(F,i,j,k,pl)+AVGN_1(F,i,j,km1mac(k),pl)))
 lives on (0,0.5,0) (i.e. CORN2) More...
 
#define AVGN_for3(F, i, j, k, pl)   (0.5*(AVGN_2(F,i,j,k,pl)+AVGN_2(F,im1mac(i),j,k,pl)))
 lives on (0,0,0.5) (i.e. CORN3) More...
 
#define NOAVGN_for1(F, i, j, k, pl)   (NOAVGN_1(F,i,j,k,pl))
 
#define NOAVGN_for2(F, i, j, k, pl)   (NOAVGN_2(F,i,j,k,pl))
 
#define NOAVGN_for3(F, i, j, k, pl)   (NOAVGN_3(F,i,j,k,pl))
 
#define absFgN(F, i, j, k, pl)   (fabs(MACP0A1(F,i,j,k,pl)))
 below macros are similar to those farther below for divb, but no gdet stuff More...
 
#define absAVGN_1(F, i, j, k, pl)   (0.5*(absFgN(F,i,j,k,pl) + absFgN(F,im1mac(i),j,k,pl) ))
 AVGN_x functions that average in x direction typically operates on centered quantities to get face quantities OR on face quantities to get edge quantities. More...
 
#define absAVGN_2(F, i, j, k, pl)   (0.5*(absFgN(F,i,j,k,pl) + absFgN(F,i,jm1mac(j),k,pl) ))
 
#define absAVGN_3(F, i, j, k, pl)   (0.5*(absFgN(F,i,j,k,pl) + absFgN(F,i,j,km1mac(k),pl) ))
 
#define absNOAVGN_1(F, i, j, k, pl)   (absFgN(F,i,j,k,pl))
 
#define absNOAVGN_2(F, i, j, k, pl)   (absFgN(F,i,j,k,pl))
 
#define absNOAVGN_3(F, i, j, k, pl)   (absFgN(F,i,j,k,pl))
 
#define absAVGN_for1(F, i, j, k, pl)   (0.5*(absAVGN_2(F,i,j,k,pl)+absAVGN_2(F,i,j,km1mac(k),pl)))
 just average of 4 quantities that eventually lives on (0.5,0,0) (i.e. CORN1) More...
 
#define absAVGN_for2(F, i, j, k, pl)   (0.5*(absAVGN_1(F,i,j,k,pl)+absAVGN_1(F,i,j,km1mac(k),pl)))
 lives on (0,0.5,0) (i.e. CORN2) More...
 
#define absAVGN_for3(F, i, j, k, pl)   (0.5*(absAVGN_2(F,i,j,k,pl)+absAVGN_2(F,im1mac(i),j,k,pl)))
 lives on (0,0,0.5) (i.e. CORN3) More...
 
#define absNOAVGN_for1(F, i, j, k, pl)   (absNOAVGN_1(F,i,j,k,pl))
 
#define absNOAVGN_for2(F, i, j, k, pl)   (absNOAVGN_2(F,i,j,k,pl))
 
#define absNOAVGN_for3(F, i, j, k, pl)   (absNOAVGN_3(F,i,j,k,pl))
 
#define Fg(F, i, j, k, pl)   (MACP0A1(F,i,j,k,pl)*MYGDET(i,j,k,CENT))
 below macros used for divb definition (with gdet) More...
 
#define Fgface(F, i, j, k, pl)   (MACP0A1(F,i,j,k,pl)*MYGDET(i,j,k,FACE1+pl-B1))
 
#define AVG_1(F, i, j, k, pl)   (0.5*(Fg(F,i,j,k,pl) + Fg(F,im1mac(i),j,k,pl) ))
 AVG_x functions that average in x direction (includes geometry) typically operates on centered quantities to get face quantities OR on face quantities to get edge quantities. More...
 
#define AVG_2(F, i, j, k, pl)   (0.5*(Fg(F,i,j,k,pl) + Fg(F,i,jm1mac(j),k,pl) ))
 
#define AVG_3(F, i, j, k, pl)   (0.5*(Fg(F,i,j,k,pl) + Fg(F,i,j,km1mac(k),pl) ))
 
#define NOAVG_1(F, i, j, k, pl)   (Fg(F,i,j,k,pl))
 
#define NOAVG_2(F, i, j, k, pl)   (Fg(F,i,j,k,pl))
 
#define NOAVG_3(F, i, j, k, pl)   (Fg(F,i,j,k,pl))
 
#define NOAVGFACE_1(F, i, j, k, pl)   (Fgface(F,i,j,k,pl))
 
#define NOAVGFACE_2(F, i, j, k, pl)   (Fgface(F,i,j,k,pl))
 
#define NOAVGFACE_3(F, i, j, k, pl)   (Fgface(F,i,j,k,pl))
 
#define AVG_for1(F, i, j, k, pl)   (0.5*(AVG_2(F,i,j,k,pl)+AVG_2(F,i,j,km1mac(k),pl)))
 just average of 4 quantities that eventually lives on (0.5,0,0) (i.e. CORN1) More...
 
#define AVG_for2(F, i, j, k, pl)   (0.5*(AVG_1(F,i,j,k,pl)+AVG_1(F,i,j,km1mac(k),pl)))
 lives on (0,0.5,0) (i.e. CORN2) More...
 
#define AVG_for3(F, i, j, k, pl)   (0.5*(AVG_2(F,i,j,k,pl)+AVG_2(F,im1mac(i),j,k,pl)))
 lives on (0,0,0.5) (i.e. CORN3) More...
 
#define NOAVG_for1(F, i, j, k, pl)   (NOAVG_1(F,i,j,k,pl))
 
#define NOAVG_for2(F, i, j, k, pl)   (NOAVG_2(F,i,j,k,pl))
 
#define NOAVG_for3(F, i, j, k, pl)   (NOAVG_3(F,i,j,k,pl))
 
#define NOAVGFACE_for1(F, i, j, k, pl)   (NOAVGFACE_1(F,i,j,k,pl))
 
#define NOAVGFACE_for2(F, i, j, k, pl)   (NOAVGFACE_2(F,i,j,k,pl))
 
#define NOAVGFACE_for3(F, i, j, k, pl)   (NOAVGFACE_3(F,i,j,k,pl))
 
#define absFg(F, i, j, k, pl)   (fabs(MACP0A1(F,i,j,k,pl)*MYGDET(i,j,k,CENT)))
 below macros used for divb definition (with gdet) More...
 
#define absFgface(F, i, j, k, pl)   (fabs(MACP0A1(F,i,j,k,pl)*MYGDET(i,j,k,FACE1+pl-B1)))
 
#define absAVG_1(F, i, j, k, pl)   (0.5*(absFg(F,i,j,k,pl) + absFg(F,im1mac(i),j,k,pl) ))
 absAVG_x functions that average in x direction typically operates on centered quantities to get face quantities OR on face quantities to get edge quantities More...
 
#define absAVG_2(F, i, j, k, pl)   (0.5*(absFg(F,i,j,k,pl) + absFg(F,i,jm1mac(j),k,pl) ))
 
#define absAVG_3(F, i, j, k, pl)   (0.5*(absFg(F,i,j,k,pl) + absFg(F,i,j,km1mac(k),pl) ))
 
#define absAVGFACE_1(F, i, j, k, pl)   (0.5*(absFgface(F,i,j,k,pl) + absFgface(F,im1mac(i),j,k,pl) ))
 
#define absAVGFACE_2(F, i, j, k, pl)   (0.5*(absFgface(F,i,j,k,pl) + absFgface(F,i,jm1mac(j),k,pl) ))
 
#define absAVGFACE_3(F, i, j, k, pl)   (0.5*(absFgface(F,i,j,k,pl) + absFgface(F,i,j,km1mac(k),pl) ))
 
#define absNOAVG_1(F, i, j, k, pl)   (absFg(F,i,j,k,pl))
 absAVG_x functions that average in x direction typically operates on centered quantities to get face quantities OR on face quantities to get edge quantities More...
 
#define absNOAVG_2(F, i, j, k, pl)   (absFg(F,i,j,k,pl))
 
#define absNOAVG_3(F, i, j, k, pl)   (absFg(F,i,j,k,pl))
 
#define absNOAVGFACE_1(F, i, j, k, pl)   (absFgface(F,i,j,k,pl))
 
#define absNOAVGFACE_2(F, i, j, k, pl)   (absFgface(F,i,j,k,pl))
 
#define absNOAVGFACE_3(F, i, j, k, pl)   (absFgface(F,i,j,k,pl))
 
#define absAVG_for1(F, i, j, k, pl)   (0.5*(absAVG_2(F,i,j,k,pl)+absAVG_2(F,i,j,km1mac(k),pl)))
 just average of 4 quantities that eventually lives on (0.5,0,0) (i.e. CORN1) More...
 
#define absAVG_for2(F, i, j, k, pl)   (0.5*(absAVG_1(F,i,j,k,pl)+absAVG_1(F,i,j,km1mac(k),pl)))
 lives on (0,0.5,0) (i.e. CORN2) More...
 
#define absAVG_for3(F, i, j, k, pl)   (0.5*(absAVG_2(F,i,j,k,pl)+absAVG_2(F,im1mac(i),j,k,pl)))
 lives on (0,0,0.5) (i.e. CORN3) More...
 
#define absNOAVG_for1(F, i, j, k, pl)   (absAVG_1(F,i,j,k,pl))
 
#define absNOAVG_for2(F, i, j, k, pl)   (absAVG_2(F,i,j,k,pl))
 
#define absNOAVG_for3(F, i, j, k, pl)   (absAVG_3(F,i,j,k,pl))
 
#define absNOAVGFACE_for1(F, i, j, k, pl)   (absAVGFACE_1(F,i,j,k,pl))
 
#define absNOAVGFACE_for2(F, i, j, k, pl)   (absAVGFACE_2(F,i,j,k,pl))
 
#define absNOAVGFACE_for3(F, i, j, k, pl)   (absAVGFACE_3(F,i,j,k,pl))
 
#define DIVBCDIR1   ((i >= -N1BND+1 && i <= N1 - 1 + N1BND - 1) || (!N1NOT1))
 only consider within bounds or ignore condition if no such dimension More...
 
#define DIVBCDIR2   ((j >= -N2BND+1 && j <= N2 - 1 + N2BND - 1) || (!N2NOT1))
 
#define DIVBCDIR3   ((k >= -N3BND+1 && k <= N3 - 1 + N3BND - 1) || (!N3NOT1))
 
#define DIVBCONDITION(p, i, j, k)   if(DIVBCDIR1&&DIVBCDIR2&&DIVBCDIR3)
 
#define DIVBDIFFFLUXCTTOTHPRIMx(p, i, j, k)   (AVG_for1(p,i,j,k,B1)-AVG_for1(p,im1mac(i),j,k,B1))
 PRMITIVE quantity the below lines results in quantity at TRUE CORNER. More...
 
#define DIVBDIFFFLUXCTTOTHPRIMy(p, i, j, k)   (AVG_for2(p,i,j,k,B2)-AVG_for2(p,i,jm1mac(j),k,B2))
 
#define DIVBDIFFFLUXCTTOTHPRIMz(p, i, j, k)   (AVG_for3(p,i,j,k,B3)-AVG_for3(p,i,j,km1mac(k),B3))
 
#define DIVBNORMFLUXCTTOTHPRIMx(p, i, j, k)   (absAVG_for1(p,i,j,k,B1)+absAVG_for1(p,im1mac(i),j,k,B1))
 
#define DIVBNORMFLUXCTTOTHPRIMy(p, i, j, k)   (absAVG_for2(p,i,j,k,B2)+absAVG_for2(p,i,jm1mac(j),k,B2))
 
#define DIVBNORMFLUXCTTOTHPRIMz(p, i, j, k)   (absAVG_for3(p,i,j,k,B3)+absAVG_for3(p,i,j,km1mac(k),B3))
 
#define DIVBNORMFLUXCTTOTHPRIM(p, i, j, k)   (1.0/(fabs(DIVBNORMFLUXCTTOTHPRIMx(p,i,j,k)/dx[1]+DIVBNORMFLUXCTTOTHPRIMy(p,i,j,k)/dx[2]+DIVBNORMFLUXCTTOTHPRIMz(p,i,j,k)/dx[3]) +SMALL))
 
#define DIVBFLUXCTTOTHPRIM(p, i, j, k)
 
#define DIVBDIFFFLUXCTTOTHx(U, i, j, k)   (AVGN_for1(U,i,j,k,B1)-AVGN_for1(U,im1mac(i),j,k,B1))
 CONSERVED quantity the below lines results in quantity at TRUE CORNER. More...
 
#define DIVBDIFFFLUXCTTOTHy(U, i, j, k)   (AVGN_for2(U,i,j,k,B2)-AVGN_for2(U,i,jm1mac(j),k,B2))
 
#define DIVBDIFFFLUXCTTOTHz(U, i, j, k)   (AVGN_for3(U,i,j,k,B3)-AVGN_for3(U,i,j,km1mac(k),B3))
 
#define DIVBNORMFLUXCTTOTHx(U, i, j, k)   (absAVGN_for1(U,i,j,k,B1)+absAVGN_for1(U,im1mac(i),j,k,B1))
 
#define DIVBNORMFLUXCTTOTHy(U, i, j, k)   (absAVGN_for2(U,i,j,k,B2)+absAVGN_for2(U,i,jm1mac(j),k,B2))
 
#define DIVBNORMFLUXCTTOTHz(U, i, j, k)   (absAVGN_for3(U,i,j,k,B3)+absAVGN_for3(U,i,j,km1mac(k),B3))
 
#define DIVBNORMFLUXCTTOTH(U, i, j, k)   (1.0/(fabs(DIVBNORMFLUXCTTOTHx(U,i,j,k)/dx[1]+DIVBNORMFLUXCTTOTHy(U,i,j,k)/dx[2]+DIVBNORMFLUXCTTOTHz(U,i,j,k)/dx[3]) +SMALL))
 the below as dividing by too many 's since MYGDET in division and inside B More...
 
#define DIVBFLUXCTTOTH(U, i, j, k)
 
#define DIVBDIFFFLUXCTSTAGx(U, i, j, k)   (NOAVGN_for1(U,ip1mac(i),j,k,B1)-NOAVGN_for1(U,i,j,k,B1))
 CONSERVED quantity as input for divb calculation (otherwise have to change MYGDET so doesn't always use CENT the below lines results in quantity at CENT. More...
 
#define DIVBDIFFFLUXCTSTAGy(U, i, j, k)   (NOAVGN_for2(U,i,jp1mac(j),k,B2)-NOAVGN_for2(U,i,j,k,B2))
 
#define DIVBDIFFFLUXCTSTAGz(U, i, j, k)   (NOAVGN_for3(U,i,j,kp1mac(k),B3)-NOAVGN_for3(U,i,j,k,B3))
 
#define DIVBNORMFLUXCTSTAGx(U, i, j, k)   (absNOAVGN_for1(U,ip1mac(i),j,k,B1)+absNOAVGN_for1(U,i,j,k,B1))
 
#define DIVBNORMFLUXCTSTAGy(U, i, j, k)   (absNOAVGN_for2(U,i,jp1mac(j),k,B2)+absNOAVGN_for2(U,i,j,k,B2))
 
#define DIVBNORMFLUXCTSTAGz(U, i, j, k)   (absNOAVGN_for3(U,i,j,kp1mac(k),B3)+absNOAVGN_for3(U,i,j,k,B3))
 
#define DIVBNORMFLUXCTSTAG(U, i, j, k)   (1.0/(fabs(DIVBNORMFLUXCTSTAGx(U,i,j,k)/dx[1]+DIVBNORMFLUXCTSTAGy(U,i,j,k)/dx[2]+DIVBNORMFLUXCTSTAGz(U,i,j,k)/dx[3]) +SMALL))
 
#define DIVBFLUXCTSTAG(U, i, j, k)
 
#define DIVBDIFFFLUXCTSTAGPRIMx(p, i, j, k)   (NOAVGFACE_for1(p,ip1mac(i),j,k,B1)-NOAVGFACE_for1(p,i,j,k,B1))
 PRMITIVE quantity as input for divb calculation (otherwise have to change MYGDET so doesn't always use CENT the below lines results in quantity at CENT. More...
 
#define DIVBDIFFFLUXCTSTAGPRIMy(p, i, j, k)   (NOAVGFACE_for2(p,i,jp1mac(j),k,B2)-NOAVGFACE_for2(p,i,j,k,B2))
 
#define DIVBDIFFFLUXCTSTAGPRIMz(p, i, j, k)   (NOAVGFACE_for3(p,i,j,kp1mac(k),B3)-NOAVGFACE_for3(p,i,j,k,B3))
 
#define DIVBNORMFLUXCTSTAGPRIMx(p, i, j, k)   (absNOAVGFACE_for1(p,ip1mac(i),j,k,B1)+absNOAVGFACE_for1(p,i,j,k,B1))
 
#define DIVBNORMFLUXCTSTAGPRIMy(p, i, j, k)   (absNOAVGFACE_for2(p,i,jp1mac(j),k,B2)+absNOAVGFACE_for2(p,i,j,k,B2))
 
#define DIVBNORMFLUXCTSTAGPRIMz(p, i, j, k)   (absNOAVGFACE_for3(p,i,j,kp1mac(k),B3)+absNOAVGFACE_for3(p,i,j,k,B3))
 
#define DIVBNORMFLUXCTSTAGPRIM(p, i, j, k)   (1.0/(fabs(DIVBNORMFLUXCTSTAGPRIMx(p,i,j,k)/dx[1]+DIVBNORMFLUXCTSTAGPRIMy(p,i,j,k)/dx[2]+DIVBNORMFLUXCTSTAGPRIMz(p,i,j,k)/dx[3]) +SMALL))
 keep like-dimensional things together More...
 
#define DIVBFLUXCTSTAGPRIM(p, i, j, k)
 
#define DIVBNORMFLUXCD(p, i, j, k)
 FLUXCD DIVB. More...
 
#define DIVBFLUXCD(p, i, j, k)
 
#define DIVBNORMFLUXCDPRIM(p, i, j, k)
 PRMITIVE quantity FLUXCD divb lives at CENT. More...
 
#define DIVBFLUXCDPRIM(p, i, j, k)
 
#define SETFDIVBFLUXCTTOTH(divb, U, i, j, k)   {DIVBCONDITION(U,i,j,k){ divb = fabs(DIVBFLUXCTTOTHPRIM(U,i,j,k)) ;} else divb = 0.;}
 SETTING MACROS for all divb methods. More...
 
#define SETFDIVBFLUXCTTOTHPRIM(divb, p, i, j, k)   {DIVBCONDITION(p,i,j,k){ divb = fabs(DIVBFLUXCTTOTHPRIM(p,i,j,k)) ;} else divb = 0.;}
 
#define SETFDIVBFLUXCTSTAG(divb, U, i, j, k)   {DIVBCONDITION(U,i,j,k){ divb = fabs(DIVBFLUXCTSTAG(U,i,j,k)) ;} else divb = 0.;}
 
#define SETFDIVBFLUXCTSTAGPRIM(divb, p, i, j, k)   {DIVBCONDITION(p,i,j,k){ divb = fabs(DIVBFLUXCTSTAGPRIM(p,i,j,k)) ;} else divb = 0.;}
 
#define SETFDIVBFLUXCD(divb, U, i, j, k)   {DIVBCONDITION(U,i,j,k){ divb = fabs(DIVBFLUXCD(U,i,j,k)) ;} else divb = 0.;}
 
#define SETFDIVBFLUXCDPRIM(divb, p, i, j, k)   {DIVBCONDITION(p,i,j,k){ divb = fabs(DIVBFLUXCDPRIM(p,i,j,k)) ;} else divb = 0.;}
 

Detailed Description

Magnetic field and divB=0 related macros.

Definition in file global.fieldmacros.h.

Macro Definition Documentation

#define absAVG_1 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(absFg(F,i,j,k,pl) + absFg(F,im1mac(i),j,k,pl) ))

absAVG_x functions that average in x direction typically operates on centered quantities to get face quantities OR on face quantities to get edge quantities

Definition at line 148 of file global.fieldmacros.h.

#define absAVG_2 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(absFg(F,i,j,k,pl) + absFg(F,i,jm1mac(j),k,pl) ))

Definition at line 149 of file global.fieldmacros.h.

#define absAVG_3 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(absFg(F,i,j,k,pl) + absFg(F,i,j,km1mac(k),pl) ))

Definition at line 150 of file global.fieldmacros.h.

#define absAVG_for1 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(absAVG_2(F,i,j,k,pl)+absAVG_2(F,i,j,km1mac(k),pl)))

just average of 4 quantities that eventually lives on (0.5,0,0) (i.e. CORN1)

Definition at line 167 of file global.fieldmacros.h.

#define absAVG_for2 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(absAVG_1(F,i,j,k,pl)+absAVG_1(F,i,j,km1mac(k),pl)))

lives on (0,0.5,0) (i.e. CORN2)

Definition at line 169 of file global.fieldmacros.h.

#define absAVG_for3 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(absAVG_2(F,i,j,k,pl)+absAVG_2(F,im1mac(i),j,k,pl)))

lives on (0,0,0.5) (i.e. CORN3)

Definition at line 171 of file global.fieldmacros.h.

#define absAVGFACE_1 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(absFgface(F,i,j,k,pl) + absFgface(F,im1mac(i),j,k,pl) ))

Definition at line 152 of file global.fieldmacros.h.

#define absAVGFACE_2 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(absFgface(F,i,j,k,pl) + absFgface(F,i,jm1mac(j),k,pl) ))

Definition at line 153 of file global.fieldmacros.h.

#define absAVGFACE_3 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(absFgface(F,i,j,k,pl) + absFgface(F,i,j,km1mac(k),pl) ))

Definition at line 154 of file global.fieldmacros.h.

#define absAVGN_1 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(absFgN(F,i,j,k,pl) + absFgN(F,im1mac(i),j,k,pl) ))

AVGN_x functions that average in x direction typically operates on centered quantities to get face quantities OR on face quantities to get edge quantities.

Definition at line 83 of file global.fieldmacros.h.

#define absAVGN_2 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(absFgN(F,i,j,k,pl) + absFgN(F,i,jm1mac(j),k,pl) ))

Definition at line 84 of file global.fieldmacros.h.

#define absAVGN_3 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(absFgN(F,i,j,k,pl) + absFgN(F,i,j,km1mac(k),pl) ))

Definition at line 85 of file global.fieldmacros.h.

#define absAVGN_for1 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(absAVGN_2(F,i,j,k,pl)+absAVGN_2(F,i,j,km1mac(k),pl)))

just average of 4 quantities that eventually lives on (0.5,0,0) (i.e. CORN1)

Definition at line 92 of file global.fieldmacros.h.

#define absAVGN_for2 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(absAVGN_1(F,i,j,k,pl)+absAVGN_1(F,i,j,km1mac(k),pl)))

lives on (0,0.5,0) (i.e. CORN2)

Definition at line 94 of file global.fieldmacros.h.

#define absAVGN_for3 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(absAVGN_2(F,i,j,k,pl)+absAVGN_2(F,im1mac(i),j,k,pl)))

lives on (0,0,0.5) (i.e. CORN3)

Definition at line 96 of file global.fieldmacros.h.

#define absFg (   F,
  i,
  j,
  k,
  pl 
)    (fabs(MACP0A1(F,i,j,k,pl)*MYGDET(i,j,k,CENT)))

below macros used for divb definition (with gdet)

Definition at line 143 of file global.fieldmacros.h.

#define absFgface (   F,
  i,
  j,
  k,
  pl 
)    (fabs(MACP0A1(F,i,j,k,pl)*MYGDET(i,j,k,FACE1+pl-B1)))

Definition at line 144 of file global.fieldmacros.h.

#define absFgN (   F,
  i,
  j,
  k,
  pl 
)    (fabs(MACP0A1(F,i,j,k,pl)))

below macros are similar to those farther below for divb, but no gdet stuff

Definition at line 79 of file global.fieldmacros.h.

#define absNOAVG_1 (   F,
  i,
  j,
  k,
  pl 
)    (absFg(F,i,j,k,pl))

absAVG_x functions that average in x direction typically operates on centered quantities to get face quantities OR on face quantities to get edge quantities

Definition at line 158 of file global.fieldmacros.h.

#define absNOAVG_2 (   F,
  i,
  j,
  k,
  pl 
)    (absFg(F,i,j,k,pl))

Definition at line 159 of file global.fieldmacros.h.

#define absNOAVG_3 (   F,
  i,
  j,
  k,
  pl 
)    (absFg(F,i,j,k,pl))

Definition at line 160 of file global.fieldmacros.h.

#define absNOAVG_for1 (   F,
  i,
  j,
  k,
  pl 
)    (absAVG_1(F,i,j,k,pl))

Definition at line 173 of file global.fieldmacros.h.

#define absNOAVG_for2 (   F,
  i,
  j,
  k,
  pl 
)    (absAVG_2(F,i,j,k,pl))

Definition at line 174 of file global.fieldmacros.h.

#define absNOAVG_for3 (   F,
  i,
  j,
  k,
  pl 
)    (absAVG_3(F,i,j,k,pl))

Definition at line 175 of file global.fieldmacros.h.

#define absNOAVGFACE_1 (   F,
  i,
  j,
  k,
  pl 
)    (absFgface(F,i,j,k,pl))

Definition at line 162 of file global.fieldmacros.h.

#define absNOAVGFACE_2 (   F,
  i,
  j,
  k,
  pl 
)    (absFgface(F,i,j,k,pl))

Definition at line 163 of file global.fieldmacros.h.

#define absNOAVGFACE_3 (   F,
  i,
  j,
  k,
  pl 
)    (absFgface(F,i,j,k,pl))

Definition at line 164 of file global.fieldmacros.h.

#define absNOAVGFACE_for1 (   F,
  i,
  j,
  k,
  pl 
)    (absAVGFACE_1(F,i,j,k,pl))

Definition at line 177 of file global.fieldmacros.h.

#define absNOAVGFACE_for2 (   F,
  i,
  j,
  k,
  pl 
)    (absAVGFACE_2(F,i,j,k,pl))

Definition at line 178 of file global.fieldmacros.h.

#define absNOAVGFACE_for3 (   F,
  i,
  j,
  k,
  pl 
)    (absAVGFACE_3(F,i,j,k,pl))

Definition at line 179 of file global.fieldmacros.h.

#define absNOAVGN_1 (   F,
  i,
  j,
  k,
  pl 
)    (absFgN(F,i,j,k,pl))

Definition at line 87 of file global.fieldmacros.h.

#define absNOAVGN_2 (   F,
  i,
  j,
  k,
  pl 
)    (absFgN(F,i,j,k,pl))

Definition at line 88 of file global.fieldmacros.h.

#define absNOAVGN_3 (   F,
  i,
  j,
  k,
  pl 
)    (absFgN(F,i,j,k,pl))

Definition at line 89 of file global.fieldmacros.h.

#define absNOAVGN_for1 (   F,
  i,
  j,
  k,
  pl 
)    (absNOAVGN_1(F,i,j,k,pl))

Definition at line 98 of file global.fieldmacros.h.

#define absNOAVGN_for2 (   F,
  i,
  j,
  k,
  pl 
)    (absNOAVGN_2(F,i,j,k,pl))

Definition at line 99 of file global.fieldmacros.h.

#define absNOAVGN_for3 (   F,
  i,
  j,
  k,
  pl 
)    (absNOAVGN_3(F,i,j,k,pl))

Definition at line 100 of file global.fieldmacros.h.

#define AVG_1 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(Fg(F,i,j,k,pl) + Fg(F,im1mac(i),j,k,pl) ))

AVG_x functions that average in x direction (includes geometry) typically operates on centered quantities to get face quantities OR on face quantities to get edge quantities.

Definition at line 111 of file global.fieldmacros.h.

#define AVG_2 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(Fg(F,i,j,k,pl) + Fg(F,i,jm1mac(j),k,pl) ))

Definition at line 112 of file global.fieldmacros.h.

#define AVG_3 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(Fg(F,i,j,k,pl) + Fg(F,i,j,km1mac(k),pl) ))

Definition at line 113 of file global.fieldmacros.h.

#define AVG_for1 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(AVG_2(F,i,j,k,pl)+AVG_2(F,i,j,km1mac(k),pl)))

just average of 4 quantities that eventually lives on (0.5,0,0) (i.e. CORN1)

Definition at line 125 of file global.fieldmacros.h.

#define AVG_for2 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(AVG_1(F,i,j,k,pl)+AVG_1(F,i,j,km1mac(k),pl)))

lives on (0,0.5,0) (i.e. CORN2)

Definition at line 127 of file global.fieldmacros.h.

#define AVG_for3 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(AVG_2(F,i,j,k,pl)+AVG_2(F,im1mac(i),j,k,pl)))

lives on (0,0,0.5) (i.e. CORN3)

Definition at line 129 of file global.fieldmacros.h.

#define AVGCORN_1 (   F,
  i,
  j,
 
)    (0.5*(FgCORN(F,ip1mac(i),j,k) + FgCORN(F,i,j,k) ))

AVG_x functions that average in x direction typically operates on CORN1,2,3 quantities to get face quantities.

Definition at line 39 of file global.fieldmacros.h.

#define AVGCORN_2 (   F,
  i,
  j,
 
)    (0.5*(FgCORN(F,i,jp1mac(j),k) + FgCORN(F,i,j,k) ))

Definition at line 40 of file global.fieldmacros.h.

#define AVGCORN_3 (   F,
  i,
  j,
 
)    (0.5*(FgCORN(F,i,j,kp1mac(k)) + FgCORN(F,i,j,k) ))

Definition at line 41 of file global.fieldmacros.h.

#define AVGN_1 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(FgN(F,i,j,k,pl) + FgN(F,im1mac(i),j,k,pl) ))

AVGN_x functions that average in x direction typically operates on centered quantities to get face quantities OR on face quantities to get edge quantities.

Definition at line 56 of file global.fieldmacros.h.

#define AVGN_2 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(FgN(F,i,j,k,pl) + FgN(F,i,jm1mac(j),k,pl) ))

Definition at line 57 of file global.fieldmacros.h.

#define AVGN_3 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(FgN(F,i,j,k,pl) + FgN(F,i,j,km1mac(k),pl) ))

Definition at line 58 of file global.fieldmacros.h.

#define AVGN_for1 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(AVGN_2(F,i,j,k,pl)+AVGN_2(F,i,j,km1mac(k),pl)))

just average of 4 quantities that eventually lives on (0.5,0,0) (i.e. CORN1)

Definition at line 65 of file global.fieldmacros.h.

#define AVGN_for2 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(AVGN_1(F,i,j,k,pl)+AVGN_1(F,i,j,km1mac(k),pl)))

lives on (0,0.5,0) (i.e. CORN2)

Definition at line 67 of file global.fieldmacros.h.

#define AVGN_for3 (   F,
  i,
  j,
  k,
  pl 
)    (0.5*(AVGN_2(F,i,j,k,pl)+AVGN_2(F,im1mac(i),j,k,pl)))

lives on (0,0,0.5) (i.e. CORN3)

Definition at line 69 of file global.fieldmacros.h.

#define DIVBCDIR1   ((i >= -N1BND+1 && i <= N1 - 1 + N1BND - 1) || (!N1NOT1))

only consider within bounds or ignore condition if no such dimension

Definition at line 199 of file global.fieldmacros.h.

#define DIVBCDIR2   ((j >= -N2BND+1 && j <= N2 - 1 + N2BND - 1) || (!N2NOT1))

Definition at line 200 of file global.fieldmacros.h.

#define DIVBCDIR3   ((k >= -N3BND+1 && k <= N3 - 1 + N3BND - 1) || (!N3NOT1))

Definition at line 201 of file global.fieldmacros.h.

#define DIVBCONDITION (   p,
  i,
  j,
 
)    if(DIVBCDIR1&&DIVBCDIR2&&DIVBCDIR3)

Definition at line 203 of file global.fieldmacros.h.

#define DIVBDIFFFLUXCTSTAGPRIMx (   p,
  i,
  j,
 
)    (NOAVGFACE_for1(p,ip1mac(i),j,k,B1)-NOAVGFACE_for1(p,i,j,k,B1))

PRMITIVE quantity as input for divb calculation (otherwise have to change MYGDET so doesn't always use CENT the below lines results in quantity at CENT.

Definition at line 301 of file global.fieldmacros.h.

#define DIVBDIFFFLUXCTSTAGPRIMy (   p,
  i,
  j,
 
)    (NOAVGFACE_for2(p,i,jp1mac(j),k,B2)-NOAVGFACE_for2(p,i,j,k,B2))

Definition at line 302 of file global.fieldmacros.h.

#define DIVBDIFFFLUXCTSTAGPRIMz (   p,
  i,
  j,
 
)    (NOAVGFACE_for3(p,i,j,kp1mac(k),B3)-NOAVGFACE_for3(p,i,j,k,B3))

Definition at line 303 of file global.fieldmacros.h.

#define DIVBDIFFFLUXCTSTAGx (   U,
  i,
  j,
 
)    (NOAVGN_for1(U,ip1mac(i),j,k,B1)-NOAVGN_for1(U,i,j,k,B1))

CONSERVED quantity as input for divb calculation (otherwise have to change MYGDET so doesn't always use CENT the below lines results in quantity at CENT.

Definition at line 282 of file global.fieldmacros.h.

#define DIVBDIFFFLUXCTSTAGy (   U,
  i,
  j,
 
)    (NOAVGN_for2(U,i,jp1mac(j),k,B2)-NOAVGN_for2(U,i,j,k,B2))

Definition at line 283 of file global.fieldmacros.h.

#define DIVBDIFFFLUXCTSTAGz (   U,
  i,
  j,
 
)    (NOAVGN_for3(U,i,j,kp1mac(k),B3)-NOAVGN_for3(U,i,j,k,B3))

Definition at line 284 of file global.fieldmacros.h.

#define DIVBDIFFFLUXCTTOTHPRIMx (   p,
  i,
  j,
 
)    (AVG_for1(p,i,j,k,B1)-AVG_for1(p,im1mac(i),j,k,B1))

PRMITIVE quantity the below lines results in quantity at TRUE CORNER.

Definition at line 220 of file global.fieldmacros.h.

#define DIVBDIFFFLUXCTTOTHPRIMy (   p,
  i,
  j,
 
)    (AVG_for2(p,i,j,k,B2)-AVG_for2(p,i,jm1mac(j),k,B2))

Definition at line 221 of file global.fieldmacros.h.

#define DIVBDIFFFLUXCTTOTHPRIMz (   p,
  i,
  j,
 
)    (AVG_for3(p,i,j,k,B3)-AVG_for3(p,i,j,km1mac(k),B3))

Definition at line 222 of file global.fieldmacros.h.

#define DIVBDIFFFLUXCTTOTHx (   U,
  i,
  j,
 
)    (AVGN_for1(U,i,j,k,B1)-AVGN_for1(U,im1mac(i),j,k,B1))

CONSERVED quantity the below lines results in quantity at TRUE CORNER.

Definition at line 247 of file global.fieldmacros.h.

#define DIVBDIFFFLUXCTTOTHy (   U,
  i,
  j,
 
)    (AVGN_for2(U,i,j,k,B2)-AVGN_for2(U,i,jm1mac(j),k,B2))

Definition at line 248 of file global.fieldmacros.h.

#define DIVBDIFFFLUXCTTOTHz (   U,
  i,
  j,
 
)    (AVGN_for3(U,i,j,k,B3)-AVGN_for3(U,i,j,km1mac(k),B3))

Definition at line 249 of file global.fieldmacros.h.

#define DIVBFLUXCD (   p,
  i,
  j,
 
)
Value:
(0.5*( \
(Fg(p,ip1mac(i),j,k,B1) - Fg(p,im1mac(i),j,k,B1))/dx[1] \
+(Fg(p,i,jp1mac(j),k,B2) - Fg(p,i,jm1mac(j),k,B2))/dx[2] \
+(Fg(p,i,j,kp1mac(k),B3) - Fg(p,i,j,km1mac(k),B3))/dx[3] \

Definition at line 338 of file global.fieldmacros.h.

#define DIVBFLUXCDPRIM (   p,
  i,
  j,
 
)
Value:
(0.5*( \
(FgN(p,ip1mac(i),j,k,B1) - FgN(p,im1mac(i),j,k,B1))/dx[1] \
+(FgN(p,i,jp1mac(j),k,B2) - FgN(p,i,jm1mac(j),k,B2))/dx[2] \
+(FgN(p,i,j,kp1mac(k),B3) - FgN(p,i,j,km1mac(k),B3))/dx[3] \

Definition at line 354 of file global.fieldmacros.h.

#define DIVBFLUXCTSTAG (   U,
  i,
  j,
 
)
Value:
(( \
DIVBDIFFFLUXCTSTAGx(U,i,j,k)/dx[1] + DIVBDIFFFLUXCTSTAGy(U,i,j,k)/dx[2] + DIVBDIFFFLUXCTSTAGz(U,i,j,k)/dx[3] \

Definition at line 293 of file global.fieldmacros.h.

#define DIVBFLUXCTSTAGPRIM (   p,
  i,
  j,
 
)
Value:
(( \
DIVBDIFFFLUXCTSTAGPRIMx(p,i,j,k)/dx[1] + DIVBDIFFFLUXCTSTAGPRIMy(p,i,j,k)/dx[2] + DIVBDIFFFLUXCTSTAGPRIMz(p,i,j,k)/dx[3] \

Definition at line 313 of file global.fieldmacros.h.

#define DIVBFLUXCTTOTH (   U,
  i,
  j,
 
)
Value:
(( \
DIVBDIFFFLUXCTTOTHx(U,i,j,k)/dx[1] + DIVBDIFFFLUXCTTOTHy(U,i,j,k)/dx[2] + DIVBDIFFFLUXCTTOTHz(U,i,j,k)/dx[3] \

Definition at line 265 of file global.fieldmacros.h.

#define DIVBFLUXCTTOTHPRIM (   p,
  i,
  j,
 
)
Value:
(( \
DIVBDIFFFLUXCTTOTHPRIMx(p,i,j,k)/dx[1] + DIVBDIFFFLUXCTTOTHPRIMy(p,i,j,k)/dx[2] + DIVBDIFFFLUXCTTOTHPRIMz(p,i,j,k)/dx[3] \

Definition at line 238 of file global.fieldmacros.h.

#define DIVBNORMFLUXCD (   p,
  i,
  j,
 
)
Value:
(MAX(MAX(dx[1],dx[2]),dx[3])/(MYGDET(i,j,k,CENT)*fabs( \
Fg(p,ip1mac(i),j,k,B1) + Fg(p,im1mac(i),j,k,B1) \
+Fg(p,i,jp1mac(j),k,B2) + Fg(p,i,jm1mac(j),k,B2) \
+Fg(p,i,j,kp1mac(k),B3) + Fg(p,i,j,km1mac(k),B3) \
)+SMALL))

FLUXCD DIVB.

CONSERVED quantity FLUXCD divb lives at CENT

Definition at line 332 of file global.fieldmacros.h.

#define DIVBNORMFLUXCDPRIM (   p,
  i,
  j,
 
)
Value:
(MAX(MAX(dx[1],dx[2]),dx[3])/(MYGDET(i,j,k,CENT)*fabs( \
FgN(p,ip1mac(i),j,k,B1) + FgN(p,im1mac(i),j,k,B1) \
+FgN(p,i,jp1mac(j),k,B2) + FgN(p,i,jm1mac(j),k,B2) \
+FgN(p,i,j,kp1mac(k),B3) + FgN(p,i,j,km1mac(k),B3) \
)+SMALL))

PRMITIVE quantity FLUXCD divb lives at CENT.

Definition at line 348 of file global.fieldmacros.h.

#define DIVBNORMFLUXCTSTAG (   U,
  i,
  j,
 
)    (1.0/(fabs(DIVBNORMFLUXCTSTAGx(U,i,j,k)/dx[1]+DIVBNORMFLUXCTSTAGy(U,i,j,k)/dx[2]+DIVBNORMFLUXCTSTAGz(U,i,j,k)/dx[3]) +SMALL))

Definition at line 291 of file global.fieldmacros.h.

#define DIVBNORMFLUXCTSTAGPRIM (   p,
  i,
  j,
 
)    (1.0/(fabs(DIVBNORMFLUXCTSTAGPRIMx(p,i,j,k)/dx[1]+DIVBNORMFLUXCTSTAGPRIMy(p,i,j,k)/dx[2]+DIVBNORMFLUXCTSTAGPRIMz(p,i,j,k)/dx[3]) +SMALL))

keep like-dimensional things together

Definition at line 311 of file global.fieldmacros.h.

#define DIVBNORMFLUXCTSTAGPRIMx (   p,
  i,
  j,
 
)    (absNOAVGFACE_for1(p,ip1mac(i),j,k,B1)+absNOAVGFACE_for1(p,i,j,k,B1))

Definition at line 305 of file global.fieldmacros.h.

#define DIVBNORMFLUXCTSTAGPRIMy (   p,
  i,
  j,
 
)    (absNOAVGFACE_for2(p,i,jp1mac(j),k,B2)+absNOAVGFACE_for2(p,i,j,k,B2))

Definition at line 306 of file global.fieldmacros.h.

#define DIVBNORMFLUXCTSTAGPRIMz (   p,
  i,
  j,
 
)    (absNOAVGFACE_for3(p,i,j,kp1mac(k),B3)+absNOAVGFACE_for3(p,i,j,k,B3))

Definition at line 307 of file global.fieldmacros.h.

#define DIVBNORMFLUXCTSTAGx (   U,
  i,
  j,
 
)    (absNOAVGN_for1(U,ip1mac(i),j,k,B1)+absNOAVGN_for1(U,i,j,k,B1))

Definition at line 286 of file global.fieldmacros.h.

#define DIVBNORMFLUXCTSTAGy (   U,
  i,
  j,
 
)    (absNOAVGN_for2(U,i,jp1mac(j),k,B2)+absNOAVGN_for2(U,i,j,k,B2))

Definition at line 287 of file global.fieldmacros.h.

#define DIVBNORMFLUXCTSTAGz (   U,
  i,
  j,
 
)    (absNOAVGN_for3(U,i,j,kp1mac(k),B3)+absNOAVGN_for3(U,i,j,k,B3))

Definition at line 288 of file global.fieldmacros.h.

#define DIVBNORMFLUXCTTOTH (   U,
  i,
  j,
 
)    (1.0/(fabs(DIVBNORMFLUXCTTOTHx(U,i,j,k)/dx[1]+DIVBNORMFLUXCTTOTHy(U,i,j,k)/dx[2]+DIVBNORMFLUXCTTOTHz(U,i,j,k)/dx[3]) +SMALL))

the below as dividing by too many 's since MYGDET in division and inside B

Definition at line 263 of file global.fieldmacros.h.

#define DIVBNORMFLUXCTTOTHPRIM (   p,
  i,
  j,
 
)    (1.0/(fabs(DIVBNORMFLUXCTTOTHPRIMx(p,i,j,k)/dx[1]+DIVBNORMFLUXCTTOTHPRIMy(p,i,j,k)/dx[2]+DIVBNORMFLUXCTTOTHPRIMz(p,i,j,k)/dx[3]) +SMALL))

Definition at line 236 of file global.fieldmacros.h.

#define DIVBNORMFLUXCTTOTHPRIMx (   p,
  i,
  j,
 
)    (absAVG_for1(p,i,j,k,B1)+absAVG_for1(p,im1mac(i),j,k,B1))

Definition at line 228 of file global.fieldmacros.h.

#define DIVBNORMFLUXCTTOTHPRIMy (   p,
  i,
  j,
 
)    (absAVG_for2(p,i,j,k,B2)+absAVG_for2(p,i,jm1mac(j),k,B2))

Definition at line 229 of file global.fieldmacros.h.

#define DIVBNORMFLUXCTTOTHPRIMz (   p,
  i,
  j,
 
)    (absAVG_for3(p,i,j,k,B3)+absAVG_for3(p,i,j,km1mac(k),B3))

Definition at line 230 of file global.fieldmacros.h.

#define DIVBNORMFLUXCTTOTHx (   U,
  i,
  j,
 
)    (absAVGN_for1(U,i,j,k,B1)+absAVGN_for1(U,im1mac(i),j,k,B1))

Definition at line 255 of file global.fieldmacros.h.

#define DIVBNORMFLUXCTTOTHy (   U,
  i,
  j,
 
)    (absAVGN_for2(U,i,j,k,B2)+absAVGN_for2(U,i,jm1mac(j),k,B2))

Definition at line 256 of file global.fieldmacros.h.

#define DIVBNORMFLUXCTTOTHz (   U,
  i,
  j,
 
)    (absAVGN_for3(U,i,j,k,B3)+absAVGN_for3(U,i,j,km1mac(k),B3))

Definition at line 257 of file global.fieldmacros.h.

#define Fg (   F,
  i,
  j,
  k,
  pl 
)    (MACP0A1(F,i,j,k,pl)*MYGDET(i,j,k,CENT))

below macros used for divb definition (with gdet)

Definition at line 106 of file global.fieldmacros.h.

#define FgCORN (   F,
  i,
  j,
 
)    (MAC(F,i,j,k))

below 4 macros used for vpot2field() in initbase.c

Definition at line 36 of file global.fieldmacros.h.

#define Fgface (   F,
  i,
  j,
  k,
  pl 
)    (MACP0A1(F,i,j,k,pl)*MYGDET(i,j,k,FACE1+pl-B1))

Definition at line 107 of file global.fieldmacros.h.

#define FgN (   F,
  i,
  j,
  k,
  pl 
)    (MACP0A1(F,i,j,k,pl))

below macros are similar to those farther below for divb, but no gdet stuff

Definition at line 52 of file global.fieldmacros.h.

#define MYGDET (   i,
  j,
  k,
  p 
)    (GLOBALMETMACP1A0(gdet,p,0,0,0))

Definition at line 26 of file global.fieldmacros.h.

#define NOAVG_1 (   F,
  i,
  j,
  k,
  pl 
)    (Fg(F,i,j,k,pl))

Definition at line 115 of file global.fieldmacros.h.

#define NOAVG_2 (   F,
  i,
  j,
  k,
  pl 
)    (Fg(F,i,j,k,pl))

Definition at line 116 of file global.fieldmacros.h.

#define NOAVG_3 (   F,
  i,
  j,
  k,
  pl 
)    (Fg(F,i,j,k,pl))

Definition at line 117 of file global.fieldmacros.h.

#define NOAVG_for1 (   F,
  i,
  j,
  k,
  pl 
)    (NOAVG_1(F,i,j,k,pl))

Definition at line 131 of file global.fieldmacros.h.

#define NOAVG_for2 (   F,
  i,
  j,
  k,
  pl 
)    (NOAVG_2(F,i,j,k,pl))

Definition at line 132 of file global.fieldmacros.h.

#define NOAVG_for3 (   F,
  i,
  j,
  k,
  pl 
)    (NOAVG_3(F,i,j,k,pl))

Definition at line 133 of file global.fieldmacros.h.

#define NOAVGCORN_1 (   F,
  i,
  j,
 
)    (FgCORN(F,i,j,k))

do-nothing functions

Definition at line 44 of file global.fieldmacros.h.

#define NOAVGCORN_2 (   F,
  i,
  j,
 
)    (FgCORN(F,i,j,k))

Definition at line 45 of file global.fieldmacros.h.

#define NOAVGCORN_3 (   F,
  i,
  j,
 
)    (FgCORN(F,i,j,k))

Definition at line 46 of file global.fieldmacros.h.

#define NOAVGFACE_1 (   F,
  i,
  j,
  k,
  pl 
)    (Fgface(F,i,j,k,pl))

Definition at line 120 of file global.fieldmacros.h.

#define NOAVGFACE_2 (   F,
  i,
  j,
  k,
  pl 
)    (Fgface(F,i,j,k,pl))

Definition at line 121 of file global.fieldmacros.h.

#define NOAVGFACE_3 (   F,
  i,
  j,
  k,
  pl 
)    (Fgface(F,i,j,k,pl))

Definition at line 122 of file global.fieldmacros.h.

#define NOAVGFACE_for1 (   F,
  i,
  j,
  k,
  pl 
)    (NOAVGFACE_1(F,i,j,k,pl))

Definition at line 135 of file global.fieldmacros.h.

#define NOAVGFACE_for2 (   F,
  i,
  j,
  k,
  pl 
)    (NOAVGFACE_2(F,i,j,k,pl))

Definition at line 136 of file global.fieldmacros.h.

#define NOAVGFACE_for3 (   F,
  i,
  j,
  k,
  pl 
)    (NOAVGFACE_3(F,i,j,k,pl))

Definition at line 137 of file global.fieldmacros.h.

#define NOAVGN_1 (   F,
  i,
  j,
  k,
  pl 
)    (FgN(F,i,j,k,pl))

Definition at line 60 of file global.fieldmacros.h.

#define NOAVGN_2 (   F,
  i,
  j,
  k,
  pl 
)    (FgN(F,i,j,k,pl))

Definition at line 61 of file global.fieldmacros.h.

#define NOAVGN_3 (   F,
  i,
  j,
  k,
  pl 
)    (FgN(F,i,j,k,pl))

Definition at line 62 of file global.fieldmacros.h.

#define NOAVGN_for1 (   F,
  i,
  j,
  k,
  pl 
)    (NOAVGN_1(F,i,j,k,pl))

Definition at line 71 of file global.fieldmacros.h.

#define NOAVGN_for2 (   F,
  i,
  j,
  k,
  pl 
)    (NOAVGN_2(F,i,j,k,pl))

Definition at line 72 of file global.fieldmacros.h.

#define NOAVGN_for3 (   F,
  i,
  j,
  k,
  pl 
)    (NOAVGN_3(F,i,j,k,pl))

Definition at line 73 of file global.fieldmacros.h.

#define SETFDIVBFLUXCD (   divb,
  U,
  i,
  j,
 
)    {DIVBCONDITION(U,i,j,k){ divb = fabs(DIVBFLUXCD(U,i,j,k)) ;} else divb = 0.;}

Definition at line 386 of file global.fieldmacros.h.

#define SETFDIVBFLUXCDPRIM (   divb,
  p,
  i,
  j,
 
)    {DIVBCONDITION(p,i,j,k){ divb = fabs(DIVBFLUXCDPRIM(p,i,j,k)) ;} else divb = 0.;}

Definition at line 387 of file global.fieldmacros.h.

#define SETFDIVBFLUXCTSTAG (   divb,
  U,
  i,
  j,
 
)    {DIVBCONDITION(U,i,j,k){ divb = fabs(DIVBFLUXCTSTAG(U,i,j,k)) ;} else divb = 0.;}

Definition at line 382 of file global.fieldmacros.h.

#define SETFDIVBFLUXCTSTAGPRIM (   divb,
  p,
  i,
  j,
 
)    {DIVBCONDITION(p,i,j,k){ divb = fabs(DIVBFLUXCTSTAGPRIM(p,i,j,k)) ;} else divb = 0.;}

Definition at line 383 of file global.fieldmacros.h.

#define SETFDIVBFLUXCTTOTH (   divb,
  U,
  i,
  j,
 
)    {DIVBCONDITION(U,i,j,k){ divb = fabs(DIVBFLUXCTTOTHPRIM(U,i,j,k)) ;} else divb = 0.;}

SETTING MACROS for all divb methods.

                              poles defined as divb=0, can't divide due to singularity (could use

volume regularization)

Definition at line 378 of file global.fieldmacros.h.

#define SETFDIVBFLUXCTTOTHPRIM (   divb,
  p,
  i,
  j,
 
)    {DIVBCONDITION(p,i,j,k){ divb = fabs(DIVBFLUXCTTOTHPRIM(p,i,j,k)) ;} else divb = 0.;}

Definition at line 379 of file global.fieldmacros.h.