Chombo Macros


Defines

#define CHOMBO_VERSION_MAJOR   3
#define CHOMBO_VERSION_MINOR   0
#define FORTRAN_NAME(NAME,name)
 Used to declare a fortran routine in a portable way.
#define CHF_MULTIDO(box, i, j, k)
 Used in ChomboFortran to write dimension-independent loops.
#define CHF_ENDDO
#define CHF_INT(i)   &i
#define CHF_CONST_INT(i)   &i
#define CHF_REAL(r)   &r
#define CHF_CONST_REAL(r)   &r
#define CHF_COMPLEX(c)   &c
#define CHF_CONST_COMPLEX(c)   &c
#define CHF_I1D(ia, dimen)   ia,(const int*)chfptr(dimen-1)
#define CHF_CONST_I1D(ia, dimen)   ia,(const int*)chfptr(dimen-1)
#define CHF_R1D(ra, dimen)   ra,(const int*)chfptr(dimen-1)
#define CHF_CONST_R1D(ra, dimen)   ra,(const int*)chfptr(dimen-1)
#define CHF_C1D(ra, dimen)   ra,(const int*)chfptr(dimen-1)
#define CHF_CONST_C1D(ra, dimen)   ra,(const int*)chfptr(dimen-1)
#define CHF_INTVECT(a)   a.dataPtr( )
#define CHF_CONST_INTVECT(a)   a.dataPtr( )
#define CHF_REALVECT(a)   a.dataPtr( )
#define CHF_CONST_REALVECT(a)   a.dataPtr( )
#define CHF_COMPLEXVECT(a)   a.dataPtr( )
#define CHF_CONST_COMPLEXVECT(a)   a.dataPtr( )
#define CHF_VI(v)   &v[0],(const int*)chfptr(v.size()-1)
#define CHF_CONST_VI(v)   &v[0],(const int*)chfptr(v.size()-1)
#define CHF_VR(v)   &v[0],(const int*)chfptr(v.size()-1)
#define CHF_CONST_VR(v)   &v[0],(const int*)chfptr(v.size()-1)
#define CHF_VC(v)   &v[0],(const int*)chfptr(v.size()-1)
#define CHF_CONST_VC(v)   &v[0],(const int*)chfptr(v.size()-1)
#define CHF_BOX(b)
#define CHF_FIA(a)
#define CHF_FRA(a)
#define CHF_FRA_SHIFT(a, iv)
#define CHF_FCA(a)
#define CHF_CONST_FIA(a)
#define CHF_CONST_FRA(a)
#define CHF_CONST_FRA_SHIFT(a, iv)
#define CHF_CONST_FCA(a)
#define CHF_FIA1(a, n)
#define CHF_FRA1(a, n)
#define CHF_FCA1(a, n)
#define CHF_CONST_FIA1(a, n)
#define CHF_CONST_FRA1(a, n)
#define CHF_CONST_FCA1(a, n)
#define CH_SPACEDIM
#define CH_SPACEDIM   3


Define Documentation

#define CHOMBO_VERSION_MAJOR   3

The major version number of Chombo -- an integer.

The Chombo version number has the form:

CHOMBO_VERSION_MAJOR.CHOMBO_VERSION_MINOR

#define CHOMBO_VERSION_MINOR   0

The minor version number of Chombo -- an integer.

#define FORTRAN_NAME ( NAME,
name   ) 

Used to declare a fortran routine in a portable way.

#define CHF_MULTIDO ( box,
i,
j,
k   ) 

Used in ChomboFortran to write dimension-independent loops.

CHF_MULTIDO is used to iterate over a box in a dimension independent fashion by setting up nested Fortran do loops and CHF_ENDDO is used to terminate those do loops correctly. Specifically, CHF_MULTIDO[box;i;j;k] will generate a do loop for i nested inside a do loop for j and, in 3D, this will be nested inside a do loop for k. The i loop will go from first element of the low corner of box to the first element of the high corner of box. Similarly, the { j} loop will use the second element and, in 3D, the k loop will use the third element. CHF_ENDDO will end all the do loops set up by CHF_MULTIDO.

Here is an example using these macros:

      subroutine LOOP(CHF_FRA1[array],CHF_BOX[box])

      integer CHF_DDECL[i;j;k]
      integer productsum

      productsum = 0
      CHF_MULTIDO[box;i;j;k]
        productsum = productsum + i*j*k
        array(CHF_IX[i;j;k]) = productsum
      CHF_ENDDO

      return
      end

see the section of the Chombo Design document about Chombo Fortran for a more detailed use of macros in Fortran

#define CHF_ENDDO

#define CHF_INT ( i   )     &i

#define CHF_CONST_INT ( i   )     &i

#define CHF_REAL (  )     &r

#define CHF_CONST_REAL (  )     &r

#define CHF_COMPLEX (  )     &c

#define CHF_CONST_COMPLEX (  )     &c

#define CHF_I1D ( ia,
dimen   )     ia,(const int*)chfptr(dimen-1)

#define CHF_CONST_I1D ( ia,
dimen   )     ia,(const int*)chfptr(dimen-1)

#define CHF_R1D ( ra,
dimen   )     ra,(const int*)chfptr(dimen-1)

#define CHF_CONST_R1D ( ra,
dimen   )     ra,(const int*)chfptr(dimen-1)

#define CHF_C1D ( ra,
dimen   )     ra,(const int*)chfptr(dimen-1)

#define CHF_CONST_C1D ( ra,
dimen   )     ra,(const int*)chfptr(dimen-1)

#define CHF_INTVECT (  )     a.dataPtr( )

#define CHF_CONST_INTVECT (  )     a.dataPtr( )

#define CHF_REALVECT (  )     a.dataPtr( )

#define CHF_CONST_REALVECT (  )     a.dataPtr( )

#define CHF_COMPLEXVECT (  )     a.dataPtr( )

#define CHF_CONST_COMPLEXVECT (  )     a.dataPtr( )

#define CHF_VI (  )     &v[0],(const int*)chfptr(v.size()-1)

#define CHF_CONST_VI (  )     &v[0],(const int*)chfptr(v.size()-1)

#define CHF_VR (  )     &v[0],(const int*)chfptr(v.size()-1)

#define CHF_CONST_VR (  )     &v[0],(const int*)chfptr(v.size()-1)

#define CHF_VC (  )     &v[0],(const int*)chfptr(v.size()-1)

#define CHF_CONST_VC (  )     &v[0],(const int*)chfptr(v.size()-1)

#define CHF_BOX (  ) 

Value:

D_DECL6( &b.loVect()[0] \
                             ,&b.loVect()[1] \
                             ,&b.loVect()[2] \
                             ,&b.loVect()[3] \
                             ,&b.loVect()[4] \
                             ,&b.loVect()[5] ) \
                    ,D_DECL6( &b.hiVect()[0] \
                             ,&b.hiVect()[1] \
                             ,&b.hiVect()[2] \
                             ,&b.hiVect()[3] \
                             ,&b.hiVect()[4] \
                             ,&b.hiVect()[5] )

#define CHF_FIA (  ) 

Value:

a.dataPtr( 0 ) \
                     ,D_DECL6( &a.loVect()[0] \
                             ,&a.loVect()[1] \
                             ,&a.loVect()[2] \
                             ,&a.loVect()[3] \
                             ,&a.loVect()[4] \
                             ,&a.loVect()[5] ) \
                     ,D_DECL6( &a.hiVect()[0] \
                             ,&a.hiVect()[1] \
                             ,&a.hiVect()[2] \
                             ,&a.hiVect()[3] \
                             ,&a.hiVect()[4] \
                             ,&a.hiVect()[5] ) \
                     ,a.nCompPtr()

#define CHF_FRA (  ) 

Value:

a.dataPtr( 0 ) \
                     ,D_DECL6( &a.loVect()[0] \
                             ,&a.loVect()[1] \
                             ,&a.loVect()[2] \
                             ,&a.loVect()[3] \
                             ,&a.loVect()[4] \
                             ,&a.loVect()[5] ) \
                     ,D_DECL6( &a.hiVect()[0] \
                             ,&a.hiVect()[1] \
                             ,&a.hiVect()[2] \
                             ,&a.hiVect()[3] \
                             ,&a.hiVect()[4] \
                             ,&a.hiVect()[5] ) \
                     ,a.nCompPtr()

#define CHF_FRA_SHIFT ( a,
iv   ) 

Value:

a.dataPtr( 0 ),               \
                     D_DECL6( CHFPTR(a.loVect()[0] - iv[0]),  \
                             CHFPTR(a.loVect()[1] - iv[1]),   \
                             CHFPTR(a.loVect()[2] - iv[2]),   \
                             CHFPTR(a.loVect()[0] - iv[3]),  \
                             CHFPTR(a.loVect()[1] - iv[4]),   \
                             CHFPTR(a.loVect()[2] - iv[5]))   \
                    ,D_DECL6( CHFPTR(a.hiVect()[0] - iv[0]),  \
                             CHFPTR(a.hiVect()[1] - iv[1]),   \
                             CHFPTR(a.hiVect()[2] - iv[2]),   \
                             CHFPTR(a.hiVect()[0] - iv[3]),  \
                             CHFPTR(a.hiVect()[1] - iv[4]),   \
                             CHFPTR(a.hiVect()[2] - iv[5]))   \
                     ,a.nCompPtr()

#define CHF_FCA (  ) 

Value:

a.dataPtr( 0 ) \
                     ,D_DECL6( &a.loVect()[0] \
                             ,&a.loVect()[1] \
                             ,&a.loVect()[2] \
                             ,&a.loVect()[3] \
                             ,&a.loVect()[4] \
                             ,&a.loVect()[5] ) \
                     ,D_DECL6( &a.hiVect()[0] \
                             ,&a.hiVect()[1] \
                             ,&a.hiVect()[2] \
                             ,&a.hiVect()[3] \
                             ,&a.hiVect()[4] \
                             ,&a.hiVect()[5] ) \
                     ,a.nCompPtr()

#define CHF_CONST_FIA (  ) 

Value:

a.dataPtr( 0 ) \
                     ,D_DECL6( &a.loVect()[0] \
                             ,&a.loVect()[1] \
                             ,&a.loVect()[2]  \
                             ,&a.loVect()[3] \
                             ,&a.loVect()[4] \
                             ,&a.loVect()[5] ) \
                     ,D_DECL6( &a.hiVect()[0] \
                             ,&a.hiVect()[1] \
                             ,&a.hiVect()[2] \
                             ,&a.hiVect()[3] \
                             ,&a.hiVect()[4] \
                             ,&a.hiVect()[5] ) \
                     ,a.nCompPtr()

#define CHF_CONST_FRA (  ) 

Value:

a.dataPtr( 0 ) \
                     ,D_DECL6( &a.loVect()[0] \
                             ,&a.loVect()[1] \
                             ,&a.loVect()[2] \
                             ,&a.loVect()[3] \
                             ,&a.loVect()[4] \
                             ,&a.loVect()[5] ) \
                     ,D_DECL6( &a.hiVect()[0] \
                             ,&a.hiVect()[1] \
                             ,&a.hiVect()[2] \
                             ,&a.hiVect()[3] \
                             ,&a.hiVect()[4] \
                             ,&a.hiVect()[5] ) \
                     ,a.nCompPtr()

#define CHF_CONST_FRA_SHIFT ( a,
iv   ) 

Value:

a.dataPtr( 0 ),          \
                     D_DECL6( CHFPTR(a.loVect()[0] - iv[0]),  \
                             CHFPTR(a.loVect()[1] - iv[1]),   \
                             CHFPTR(a.loVect()[2] - iv[2]),   \
                             CHFPTR(a.loVect()[0] - iv[3]),   \
                             CHFPTR(a.loVect()[1] - iv[4]),   \
                             CHFPTR(a.loVect()[2] - iv[5]))   \
                    ,D_DECL6( CHFPTR(a.hiVect()[0] - iv[0]),  \
                             CHFPTR(a.hiVect()[1] - iv[1]),   \
                             CHFPTR(a.hiVect()[2] - iv[2]),   \
                             CHFPTR(a.hiVect()[3] - iv[3]),  \
                             CHFPTR(a.hiVect()[4] - iv[4]),   \
                             CHFPTR(a.hiVect()[5] - iv[5]))   \
                     ,a.nCompPtr()

#define CHF_CONST_FCA (  ) 

Value:

a.dataPtr( 0 ) \
                     ,D_DECL6( &a.loVect()[0] \
                             ,&a.loVect()[1] \
                             ,&a.loVect()[2] \
                             ,&a.loVect()[3] \
                             ,&a.loVect()[4] \
                             ,&a.loVect()[5] ) \
                     ,D_DECL6( &a.hiVect()[0] \
                             ,&a.hiVect()[1] \
                             ,&a.hiVect()[2] \
                             ,&a.hiVect()[3] \
                             ,&a.hiVect()[4] \
                             ,&a.hiVect()[5] ) \
                     ,a.nCompPtr()

#define CHF_FIA1 ( a,
 ) 

Value:

a.dataPtr( n ) \
                     ,D_DECL6( &a.loVect()[0] \
                             ,&a.loVect()[1] \
                             ,&a.loVect()[2] \
                             ,&a.loVect()[3] \
                             ,&a.loVect()[4] \
                             ,&a.loVect()[5] ) \
                     ,D_DECL6( &a.hiVect()[0] \
                             ,&a.hiVect()[1] \
                             ,&a.hiVect()[2] \
                             ,&a.hiVect()[3] \
                             ,&a.hiVect()[4] \
                             ,&a.hiVect()[5] )

#define CHF_FRA1 ( a,
 ) 

Value:

a.dataPtr( n ) \
                     ,D_DECL6( &a.loVect()[0] \
                             ,&a.loVect()[1] \
                             ,&a.loVect()[2] \
                             ,&a.loVect()[3] \
                             ,&a.loVect()[4] \
                             ,&a.loVect()[5] ) \
                     ,D_DECL6( &a.hiVect()[0] \
                             ,&a.hiVect()[1] \
                             ,&a.hiVect()[2] \
                             ,&a.hiVect()[3] \
                             ,&a.hiVect()[4] \
                             ,&a.hiVect()[5] )

#define CHF_FCA1 ( a,
 ) 

Value:

a.dataPtr( n ) \
                     ,D_DECL6( &a.loVect()[0] \
                             ,&a.loVect()[1] \
                             ,&a.loVect()[2] \
                             ,&a.loVect()[3] \
                             ,&a.loVect()[4] \
                             ,&a.loVect()[5] ) \
                     ,D_DECL6( &a.hiVect()[0] \
                             ,&a.hiVect()[1] \
                             ,&a.hiVect()[2] \
                             ,&a.hiVect()[3] \
                             ,&a.hiVect()[4] \
                             ,&a.hiVect()[5] )

#define CHF_CONST_FIA1 ( a,
 ) 

Value:

a.dataPtr( n ) \
                     ,D_DECL6( &a.loVect()[0] \
                             ,&a.loVect()[1] \
                             ,&a.loVect()[2] \
                             ,&a.loVect()[3] \
                             ,&a.loVect()[4] \
                             ,&a.loVect()[5] ) \
                     ,D_DECL6( &a.hiVect()[0] \
                             ,&a.hiVect()[1] \
                             ,&a.hiVect()[2] \
                             ,&a.hiVect()[3] \
                             ,&a.hiVect()[4] \
                             ,&a.hiVect()[5] )

#define CHF_CONST_FRA1 ( a,
 ) 

Value:

a.dataPtr( n ) \
                     ,D_DECL6( &a.loVect()[0] \
                             ,&a.loVect()[1] \
                             ,&a.loVect()[2] \
                             ,&a.loVect()[3] \
                             ,&a.loVect()[4] \
                             ,&a.loVect()[5] ) \
                     ,D_DECL6( &a.hiVect()[0] \
                             ,&a.hiVect()[1] \
                             ,&a.hiVect()[2] \
                             ,&a.hiVect()[3] \
                             ,&a.hiVect()[4] \
                             ,&a.hiVect()[5] )

#define CHF_CONST_FCA1 ( a,
 ) 

Value:

a.dataPtr( n ) \
                     ,D_DECL6( &a.loVect()[0] \
                             ,&a.loVect()[1] \
                             ,&a.loVect()[2] \
                             ,&a.loVect()[0] \
                             ,&a.loVect()[1] \
                             ,&a.loVect()[2] ) \
                     ,D_DECL6( &a.hiVect()[0] \
                             ,&a.hiVect()[1] \
                             ,&a.hiVect()[2] \
                             ,&a.hiVect()[3] \
                             ,&a.hiVect()[4] \
                             ,&a.hiVect()[5] )

#define CH_SPACEDIM

compile-time cpp macro that controls the dimensionality of the Chombo package.

Referenced by MultiGrid< T >::define(), IVSFAB< T >::define(), LevelData< T >::degenerate(), GraphNodeImplem::index(), IndexType::nodeCentered(), IndexType::ok(), and IndexType::setall().

#define CH_SPACEDIM   3

compile-time cpp macro that controls the dimensionality of the Chombo package.


Generated on Tue Apr 14 14:22:45 2009 for Chombo + EB by  doxygen 1.5.5