Defines | |
#define | CHOMBO_VERSION_MAJOR 3 |
#define | CHOMBO_VERSION_MINOR 2 |
#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_IARRAY(rank, ia,...) ia,CHF_ARRAY_X(rank, __VA_ARGS__) |
#define | CHF_CONST_IARRAY(rank, ia,...) ia,CHF_ARRAY_X(rank, __VA_ARGS__) |
#define | CHF_RARRAY(rank, ia,...) ia,CHF_ARRAY_X(rank, __VA_ARGS__) |
#define | CHF_CONST_RARRAY(rank, ia,...) ia,CHF_ARRAY_X(rank, __VA_ARGS__) |
#define | CHF_CARRAY(rank, ia,...) ia,CHF_ARRAY_X(rank, __VA_ARGS__) |
#define | CHF_CONST_CARRAY(rank, ia,...) ia,CHF_ARRAY_X(rank, __VA_ARGS__) |
#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_FIA_SHIFT(a, iv) |
#define | CHF_FRA(a) |
#define | CHF_FRA_SHIFT(a, iv) |
#define | CHF_FCA(a) |
#define | CHF_CONST_FIA(a) |
#define | CHF_CONST_FIA_SHIFT(a, iv) |
#define | CHF_CONST_FRA(a) |
#define | CHF_CONST_FRA_SHIFT(a, iv) |
#define | CHF_CONST_FCA(a) |
#define | CHF_FIA1(a, n) |
#define | CHF_FIA1_SHIFT(a, n, iv) |
#define | CHF_FRA1(a, n) |
#define | CHF_FRA1_SHIFT(a, n, iv) |
#define | CHF_FCA1(a, n) |
#define | CHF_CONST_FIA1(a, n) |
#define | CHF_CONST_FIA1_SHIFT(a, n, iv) |
#define | CHF_CONST_FRA1(a, n) |
#define | CHF_CONST_FRA1_SHIFT(a, n, iv) |
#define | CHF_CONST_FCA1(a, n) |
#define | CHF_ICHARRAY(rank, ia) ia.begin(),CHF_CHARRAY_X(rank, ia) |
#define | CHF_CONST_ICHARRAY(rank, ia) ia.begin(),CHF_CHARRAY_X(rank, ia) |
#define | CHF_RCHARRAY(rank, ra) ra.begin(),CHF_CHARRAY_X(rank, ra) |
#define | CHF_CONST_RCHARRAY(rank, ra) ra.begin(),CHF_CHARRAY_X(rank, ra) |
#define | CHF_CCHARRAY(rank, ra) ra.begin(),CHF_CHARRAY_X(rank, ra) |
#define | CHF_CONST_CCHARRAY(rank, ra) ra.begin(),CHF_CHARRAY_X(rank, ra) |
#define | CHF_VECTOR(ra) ra.begin(),CHF_CHARRAY_X(1, ra) |
#define | CHF_CONST_VECTOR(ra) ra.begin(),CHF_CHARRAY_X(1, ra) |
#define | CHF_MATRIX(ra) ra.begin(),CHF_CHARRAY_X(2, ra) |
#define | CHF_CONST_MATRIX(ra) ra.begin(),CHF_CHARRAY_X(2, ra) |
#define | CH_SPACEDIM |
#define | CH_SPACEDIM 3 |
#define CHOMBO_VERSION_MAJOR 3 |
The major version number of Chombo -- an integer.
The Chombo version number has the form:
#define CHOMBO_VERSION_MINOR 2 |
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 | ) | &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_IARRAY | ( | rank, | |||
ia, | |||||
... | ) | ia,CHF_ARRAY_X(rank, __VA_ARGS__) |
#define CHF_CONST_IARRAY | ( | rank, | |||
ia, | |||||
... | ) | ia,CHF_ARRAY_X(rank, __VA_ARGS__) |
#define CHF_RARRAY | ( | rank, | |||
ia, | |||||
... | ) | ia,CHF_ARRAY_X(rank, __VA_ARGS__) |
#define CHF_CONST_RARRAY | ( | rank, | |||
ia, | |||||
... | ) | ia,CHF_ARRAY_X(rank, __VA_ARGS__) |
#define CHF_CARRAY | ( | rank, | |||
ia, | |||||
... | ) | ia,CHF_ARRAY_X(rank, __VA_ARGS__) |
#define CHF_CONST_CARRAY | ( | rank, | |||
ia, | |||||
... | ) | ia,CHF_ARRAY_X(rank, __VA_ARGS__) |
#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_FIA_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()[3] - iv[3]), \ CHFPTR(a.loVect()[4] - iv[4]), \ CHFPTR(a.loVect()[5] - 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_FRA | ( | a | ) |
#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()[3] - iv[3]), \ CHFPTR(a.loVect()[4] - iv[4]), \ CHFPTR(a.loVect()[5] - 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_FCA | ( | a | ) |
#define CHF_CONST_FIA | ( | a | ) |
#define CHF_CONST_FIA_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()[3] - iv[3]), \ CHFPTR(a.loVect()[4] - iv[4]), \ CHFPTR(a.loVect()[5] - 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_FRA | ( | a | ) |
#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()[3] - iv[3]), \ CHFPTR(a.loVect()[4] - iv[4]), \ CHFPTR(a.loVect()[5] - 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 | ( | a | ) |
#define CHF_FIA1 | ( | a, | |||
n | ) |
#define CHF_FIA1_SHIFT | ( | a, | |||
n, | |||||
iv | ) |
Value:
a.dataPtr(n), \ D_DECL6( CHFPTR(a.loVect()[0] - iv[0]), \ CHFPTR(a.loVect()[1] - iv[1]), \ CHFPTR(a.loVect()[2] - iv[2]), \ CHFPTR(a.loVect()[3] - iv[3]), \ CHFPTR(a.loVect()[4] - iv[4]), \ CHFPTR(a.loVect()[5] - 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]) )
#define CHF_FRA1 | ( | a, | |||
n | ) |
#define CHF_FRA1_SHIFT | ( | a, | |||
n, | |||||
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()[3] - iv[3]), \ CHFPTR(a.loVect()[4] - iv[4]), \ CHFPTR(a.loVect()[5] - 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]) )
#define CHF_FCA1 | ( | a, | |||
n | ) |
#define CHF_CONST_FIA1 | ( | a, | |||
n | ) |
#define CHF_CONST_FIA1_SHIFT | ( | a, | |||
n, | |||||
iv | ) |
Value:
a.dataPtr(n), \ D_DECL6( CHFPTR(a.loVect()[0] - iv[0]), \ CHFPTR(a.loVect()[1] - iv[1]), \ CHFPTR(a.loVect()[2] - iv[2]), \ CHFPTR(a.loVect()[3] - iv[3]), \ CHFPTR(a.loVect()[4] - iv[4]), \ CHFPTR(a.loVect()[5] - 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]) )
#define CHF_CONST_FRA1 | ( | a, | |||
n | ) |
#define CHF_CONST_FRA1_SHIFT | ( | a, | |||
n, | |||||
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()[3] - iv[3]), \ CHFPTR(a.loVect()[4] - iv[4]), \ CHFPTR(a.loVect()[5] - 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]) )
#define CHF_CONST_FCA1 | ( | a, | |||
n | ) |
#define CHF_ICHARRAY | ( | rank, | |||
ia | ) | ia.begin(),CHF_CHARRAY_X(rank, ia) |
#define CHF_CONST_ICHARRAY | ( | rank, | |||
ia | ) | ia.begin(),CHF_CHARRAY_X(rank, ia) |
#define CHF_RCHARRAY | ( | rank, | |||
ra | ) | ra.begin(),CHF_CHARRAY_X(rank, ra) |
#define CHF_CONST_RCHARRAY | ( | rank, | |||
ra | ) | ra.begin(),CHF_CHARRAY_X(rank, ra) |
#define CHF_CCHARRAY | ( | rank, | |||
ra | ) | ra.begin(),CHF_CHARRAY_X(rank, ra) |
#define CHF_CONST_CCHARRAY | ( | rank, | |||
ra | ) | ra.begin(),CHF_CHARRAY_X(rank, ra) |
#define CHF_VECTOR | ( | ra | ) | ra.begin(),CHF_CHARRAY_X(1, ra) |
#define CHF_CONST_VECTOR | ( | ra | ) | ra.begin(),CHF_CHARRAY_X(1, ra) |
#define CHF_MATRIX | ( | ra | ) | ra.begin(),CHF_CHARRAY_X(2, ra) |
#define CHF_CONST_MATRIX | ( | ra | ) | ra.begin(),CHF_CHARRAY_X(2, ra) |
#define CH_SPACEDIM |
compile-time cpp macro that controls the dimensionality of the Chombo package.
Referenced by BoundaryIterator::BoundaryIterator(), dataSize(), MultiGrid< T >::define(), IVSFAB< T >::define(), LevelData< T >::degenerate(), LevelData< T >::degenerateLocalOnly(), NeumannConductivityDomainBC::fillPhiGhost(), DirichletConductivityDomainBC::fillPhiGhost(), NeumannViscousTensorDomainBC::fillVelGhost(), MixedViscousTensorDomainBC::fillVelGhost(), DirichletViscousTensorDomainBC::fillVelGhost(), FortranArrayIndex(), LevelFluxRegister::getCoarseLocations(), PolyGeom::getTangentVectors(), GraphNodeImplem::index(), inDimensionRange(), BoundaryIterator::next(), IndexType::nodeCentered(), IndexType::ok(), BoundaryIterator::ok(), IndexType::setall(), PetscSolver< T >::setup_solver(), PetscSolver< T >::solve_mfree_private(), and IndicesTransformation::transform().
#define CH_SPACEDIM 3 |
compile-time cpp macro that controls the dimensionality of the Chombo package.