BOOL            := { true; false }
REAL_SCALARS    := { double; float; long double }
COMPLEX_SCALARS := { std::complex<double>;
                     std::complex<float>;
                     std::complex<long double> }

DERIVATIVE_TENSORS := { double;
			Tensor<1,deal_II_dimension>;
			Tensor<2,deal_II_dimension> }

DEAL_II_VEC_TEMPLATES := { Vector; BlockVector }

SERIAL_VECTORS := { Vector<double>;
                    Vector<float> ;
		    Vector<long double>;

	            BlockVector<double>;
                    BlockVector<float>;
                    BlockVector<long double>;

		    parallel::distributed::Vector<double>;
		    parallel::distributed::Vector<float> ;
		    parallel::distributed::Vector<long double>;

                    parallel::distributed::BlockVector<double>;
                    parallel::distributed::BlockVector<float> ;
                    parallel::distributed::BlockVector<long double>;

		    TrilinosWrappers::Vector;
		    TrilinosWrappers::MPI::Vector;
		    PETScWrappers::Vector;
		    PETScWrappers::MPI::Vector;

		    TrilinosWrappers::BlockVector;
		    TrilinosWrappers::MPI::BlockVector;
		    PETScWrappers::BlockVector;
		    PETScWrappers::MPI::BlockVector;
                  }

VECTORS_WITH_MATRIX := { Vector<double>;
                    Vector<float> ;
		    Vector<long double>;

	            BlockVector<double>;
                    BlockVector<float>;
                    BlockVector<long double>;

		    TrilinosWrappers::Vector;
		    TrilinosWrappers::MPI::Vector;
                  }

DOFHANDLERS := { DoFHandler<deal_II_dimension>;
                 hp::DoFHandler<deal_II_dimension> }

DOFHANDLER_TEMPLATES := { DoFHandler;
                          hp::DoFHandler }

TRIANGULATION_AND_DOFHANDLER_TEMPLATES := { Triangulation;
					    DoFHandler;
					    hp::DoFHandler }

TRIANGULATION_AND_DOFHANDLERS := { Triangulation<deal_II_dimension, deal_II_space_dimension>;
                                   DoFHandler<deal_II_dimension, deal_II_space_dimension>;
                                   hp::DoFHandler<deal_II_dimension, deal_II_space_dimension> }


FEVALUES_BASES := { FEValuesBase<deal_II_dimension>;
	            FEFaceValuesBase<deal_II_dimension> }

SPARSITY_PATTERNS := { SparsityPattern;
                       CompressedSparsityPattern;
                       CompressedSetSparsityPattern;
                       CompressedSimpleSparsityPattern;
                       TrilinosWrappers::SparsityPattern;

                       BlockSparsityPattern;
                       BlockCompressedSparsityPattern;
                       BlockCompressedSetSparsityPattern;
                       BlockCompressedSimpleSparsityPattern;
                       TrilinosWrappers::BlockSparsityPattern; }

DIMENSIONS := { 1; 2; 3 }

SPACE_DIMENSIONS := { 1; 2; 3 }
