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>;

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

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

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

DOFHANDLER_TEMPLATES := { DoFHandler;
                          hp::DoFHandler;
		          MGDoFHandler }

TRIANGULATION_AND_DOFHANDLERS := { Triangulation<deal_II_dimension>;
                                   DoFHandler<deal_II_dimension>;
                                   hp::DoFHandler<deal_II_dimension>;
		                   MGDoFHandler<deal_II_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; }
