// ---------------------------------------------------------------------
//
// Copyright (C) 2010 - 2014 by the deal.II authors
//
// This file is part of the deal.II library.
//
// The deal.II library is free software; you can use it, redistribute
// it, and/or modify it under the terms of the GNU Lesser General
// Public License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
// The full text of the license can be found in the file LICENSE at
// the top level of the deal.II distribution.
//
// ---------------------------------------------------------------------


for (deal_II_dimension : DIMENSIONS)
{
namespace MeshWorker
\{
  template class IntegrationInfo<deal_II_dimension, deal_II_dimension>;
  template class IntegrationInfoBox<deal_II_dimension, deal_II_dimension>;

  template class DoFInfo<deal_II_dimension,deal_II_dimension,float>;
  template class DoFInfoBox<deal_II_dimension,
                            DoFInfo<deal_II_dimension,deal_II_dimension,float> >;

  template void IntegrationInfo<deal_II_dimension>::fill_local_data(
    const DoFInfo<deal_II_dimension, deal_II_dimension, float>&, bool);

  template class DoFInfo<deal_II_dimension,deal_II_dimension,double>;
  template class DoFInfoBox<deal_II_dimension,
                            DoFInfo<deal_II_dimension,deal_II_dimension,double> >;

  template void IntegrationInfo<deal_II_dimension>::fill_local_data(
    const DoFInfo<deal_II_dimension, deal_II_dimension, double>&, bool);

  template class DoFInfo<deal_II_dimension,deal_II_dimension,long double>;
  template class DoFInfoBox<deal_II_dimension,
                            DoFInfo<deal_II_dimension,deal_II_dimension,long double> >;

  template void IntegrationInfo<deal_II_dimension>::fill_local_data(
    const DoFInfo<deal_II_dimension, deal_II_dimension, long double>&, bool);

//   template void IntegrationInfo<deal_II_dimension>
//   ::initialize<FEValues<deal_II_dimension> >(
//     const FiniteElement<deal_II_dimension>&, const Mapping<deal_II_dimension>&,
//     const Quadrature<FEValues<deal_II_dimension>::integral_dimension>&, const UpdateFlags, const BlockInfo*);
//   template void IntegrationInfo<deal_II_dimension>
//   ::initialize<FEFaceValues<deal_II_dimension> >(
//     const FiniteElement<deal_II_dimension>&, const Mapping<deal_II_dimension>&,
//     const Quadrature<FEFaceValues<deal_II_dimension>::integral_dimension>&, const UpdateFlags, const BlockInfo*);
//   template void IntegrationInfo<deal_II_dimension>
//   ::initialize<FESubfaceValues<deal_II_dimension> >(
//     const FiniteElement<deal_II_dimension>&, const Mapping<deal_II_dimension>&,
//     const Quadrature<FESubfaceValues<deal_II_dimension>::integral_dimension>&, const UpdateFlags, const BlockInfo*);
\}
}
