qpms/qpms/lattices_types.h

38 lines
836 B
C

/*! \file lattices_types.h
* \brief Auxiliary lattice point generator and related enum declarations.
*
* This file contains necessary declarations needed in other header files.
* In contrast to lattices.h, this one is C++ compatible.
*
* \see lattices.h
*/
#ifndef LATTICES_TYPES_H
#define LATTICES_TYPES_H
#ifdef __cplusplus
extern "C" {
#endif
typedef enum LatticeDimensionality {
LAT1D = 1,
LAT2D = 2,
LAT3D = 4,
SPACE1D = 8,
SPACE2D = 16,
SPACE3D = 32,
LAT_1D_IN_3D = 33,
LAT_2D_IN_3D = 34,
LAT_3D_IN_3D = 40,
// special coordinate arrangements (indicating possible optimisations)
LAT_ZONLY = 64,
LAT_XYONLY = 128,
LAT_1D_IN_3D_ZONLY = 97, // LAT1D | SPACE3D | 64
LAT_2D_IN_3D_XYONLY = 162 // LAT2D | SPACE3D | 128
} LatticeDimensionality;
struct PGen;
#ifdef __cplusplus
}
#endif
#endif // LATTICES_TYPES_H