]> https://gitweb.dealii.org/ - dealii-svn.git/commitdiff
Move instantiations to the .inst.in mechanism. This prevents the almost complete...
authorbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 29 Mar 2010 02:47:17 +0000 (02:47 +0000)
committerbangerth <bangerth@0785d39b-7218-0410-832d-ea1e28bc413d>
Mon, 29 Mar 2010 02:47:17 +0000 (02:47 +0000)
git-svn-id: https://svn.dealii.org/trunk@20913 0785d39b-7218-0410-832d-ea1e28bc413d

deal.II/deal.II/source/numerics/data_out.cc
deal.II/deal.II/source/numerics/data_out.inst.in [new file with mode: 0644]

index 668eeb2a6d8d0b0570e884185f994dd90d734413..d56923130d759875cd6ed042f9d891095f03fc74 100644 (file)
@@ -2,7 +2,7 @@
 //    $Id$
 //    Version: $Name$
 //
-//    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by the deal.II authors
+//    Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 by the deal.II authors
 //
 //    This file is subject to QPL and may not be  distributed
 //    without copyright and license information. Please refer
@@ -19,6 +19,8 @@
 #include <lac/block_vector.h>
 #include <lac/petsc_vector.h>
 #include <lac/petsc_block_vector.h>
+#include <lac/trilinos_vector.h>
+#include <lac/trilinos_block_vector.h>
 #include <numerics/data_out.h>
 #include <grid/tria.h>
 #include <dofs/dof_handler.h>
@@ -1104,87 +1106,6 @@ DataOut<dim,DH>::next_cell (const typename DataOut<dim,DH>::cell_iterator &cell)
 
 
 // explicit instantiations
-
-#define INSTANTIATE(DH,D0,D1,D2,D3,V)          \
-template void \
-DataOut_DoFData<DH<D0,D1>,D2,D3>::         \
-add_data_vector<V > (const V             &, \
-                     const std::string   &, \
-                     const DataVectorType,  \
-                    const std::vector<DataComponentInterpretation::DataComponentInterpretation> &); \
-\
-template void \
- DataOut_DoFData<DH<D0,D1>,D2,D3>::                   \
-add_data_vector<V > (const V                        &, \
-                     const std::vector<std::string> &, \
-                     const DataVectorType,  \
-                    const std::vector<DataComponentInterpretation::DataComponentInterpretation> &); \
-\
-template void \
- DataOut_DoFData<DH<D0,D1>,D2,D3>::             \
-add_data_vector<V > (const V                  &, \
-                    const DataPostprocessor<DH<D0,D1>::space_dimension> &)
-
-#ifndef DEAL_II_USE_PETSC
-# define INSTANTIATE_VECTORS(DH,D0,D1,D2,D3)   \
-    INSTANTIATE(DH,D0,D1,D2,D3,Vector<double>); \
-    INSTANTIATE(DH,D0,D1,D2,D3,Vector<float>); \
-    INSTANTIATE(DH,D0,D1,D2,D3,BlockVector<double>) ; \
-    INSTANTIATE(DH,D0,D1,D2,D3,BlockVector<float>); \
-    INSTANTIATE(DH,D0,D1,D2,D3,Vector<long double>); \
-    INSTANTIATE(DH,D0,D1,D2,D3,BlockVector<long double>)
-#else
-# define INSTANTIATE_VECTORS(DH,D0,D1,D2,D3)    \
-    INSTANTIATE(DH,D0,D1,D2,D3,Vector<double>); \
-    INSTANTIATE(DH,D0,D1,D2,D3,Vector<float>); \
-    INSTANTIATE(DH,D0,D1,D2,D3,BlockVector<double>) ; \
-    INSTANTIATE(DH,D0,D1,D2,D3,BlockVector<float>); \
-    INSTANTIATE(DH,D0,D1,D2,D3,PETScWrappers::Vector);         \
-    INSTANTIATE(DH,D0,D1,D2,D3,PETScWrappers::BlockVector)
-#endif
-
-// now do actual instantiations, first for DoFHandler...
-template class DataOut_DoFData<DoFHandler<deal_II_dimension>,deal_II_dimension>;
-template class DataOut_DoFData<DoFHandler<deal_II_dimension>,deal_II_dimension+1>;
-INSTANTIATE_VECTORS(DoFHandler,deal_II_dimension,deal_II_dimension,deal_II_dimension,deal_II_dimension);
-INSTANTIATE_VECTORS(DoFHandler,deal_II_dimension,deal_II_dimension,deal_II_dimension+1,deal_II_dimension+1);
-
-// for 3d, also generate an extra class
-#if deal_II_dimension >= 2
-template class DataOut_DoFData<DoFHandler<deal_II_dimension>,deal_II_dimension-1,deal_II_dimension>;
-INSTANTIATE_VECTORS(DoFHandler,deal_II_dimension,deal_II_dimension,deal_II_dimension-1,deal_II_dimension);
-#endif
-
-template class DataOut<deal_II_dimension, DoFHandler<deal_II_dimension> >;
-
-
-// ...and now for hp::DoFHandler
-template class DataOut_DoFData<hp::DoFHandler<deal_II_dimension>,deal_II_dimension>;
-template class DataOut_DoFData<hp::DoFHandler<deal_II_dimension>,deal_II_dimension+1>;
-INSTANTIATE_VECTORS(hp::DoFHandler,deal_II_dimension,deal_II_dimension,deal_II_dimension,deal_II_dimension);
-INSTANTIATE_VECTORS(hp::DoFHandler,deal_II_dimension,deal_II_dimension,deal_II_dimension+1,deal_II_dimension+1);
-
-#if deal_II_dimension >= 2
-template class DataOut_DoFData<hp::DoFHandler<deal_II_dimension>,deal_II_dimension-1,deal_II_dimension>;
-INSTANTIATE_VECTORS(hp::DoFHandler,deal_II_dimension,deal_II_dimension,deal_II_dimension-1,deal_II_dimension);
-#endif
-
-template class DataOut<deal_II_dimension, hp::DoFHandler<deal_II_dimension> >;
-
-
-#if deal_II_dimension == 2 || deal_II_dimension ==1
-// now do actual instantiations, first for DoFHandler...
-template class DataOut_DoFData<DoFHandler<deal_II_dimension,deal_II_dimension+1>,deal_II_dimension, deal_II_dimension+1>;
-template class DataOut_DoFData<DoFHandler<deal_II_dimension,deal_II_dimension+1>,deal_II_dimension+1, deal_II_dimension+1>;
-
-INSTANTIATE_VECTORS(DoFHandler,deal_II_dimension,deal_II_dimension+1,deal_II_dimension,deal_II_dimension+1);
-INSTANTIATE_VECTORS(DoFHandler,deal_II_dimension,deal_II_dimension+1,deal_II_dimension+1,deal_II_dimension+1);
-
-template class DataOut<deal_II_dimension, DoFHandler<deal_II_dimension,deal_II_dimension+1> >;
-#endif
-
-
-#undef INSTANTIATE
-#undef INSTANTIATE_VECTORS
+#include "data_out.inst"
 
 DEAL_II_NAMESPACE_CLOSE
diff --git a/deal.II/deal.II/source/numerics/data_out.inst.in b/deal.II/deal.II/source/numerics/data_out.inst.in
new file mode 100644 (file)
index 0000000..63002e6
--- /dev/null
@@ -0,0 +1,74 @@
+//---------------------------------------------------------------------------
+//    $Id$
+//    Version: $Name$
+//
+//    Copyright (C) 2010 by the deal.II authors
+//
+//    This file is subject to QPL and may not be  distributed
+//    without copyright and license information. Please refer
+//    to the file deal.II/doc/license.html for the  text  and
+//    further information on this license.
+//
+//---------------------------------------------------------------------------
+
+for (VEC : SERIAL_VECTORS; DH : DOFHANDLER_TEMPLATES)
+{
+// codim=0
+
+  template void 
+  DataOut_DoFData<DH<deal_II_dimension,deal_II_dimension>,deal_II_dimension,deal_II_dimension>::
+  add_data_vector<VEC> (const VEC            &, 
+                       const std::string   &, 
+                       const DataVectorType,  
+                    const std::vector<DataComponentInterpretation::DataComponentInterpretation> &); 
+
+  template void 
+  DataOut_DoFData<DH<deal_II_dimension,deal_II_dimension>,deal_II_dimension,deal_II_dimension>::
+  add_data_vector<VEC> (const VEC                       &, 
+                     const std::vector<std::string> &, 
+                     const DataVectorType,  
+                    const std::vector<DataComponentInterpretation::DataComponentInterpretation> &); 
+
+  template void 
+  DataOut_DoFData<DH<deal_II_dimension,deal_II_dimension>,deal_II_dimension,deal_II_dimension>::
+  add_data_vector<VEC> (const VEC                 &, 
+                     const DataPostprocessor<DH<deal_II_dimension,deal_II_dimension>::space_dimension> &);
+
+// codim=1
+
+  template void 
+  DataOut_DoFData<DH<deal_II_dimension,deal_II_dimension>,deal_II_dimension+1,deal_II_dimension+1>::
+  add_data_vector<VEC> (const VEC            &, 
+                       const std::string   &, 
+                       const DataVectorType,  
+                    const std::vector<DataComponentInterpretation::DataComponentInterpretation> &); 
+
+  template void 
+  DataOut_DoFData<DH<deal_II_dimension,deal_II_dimension>,deal_II_dimension+1,deal_II_dimension+1>::
+  add_data_vector<VEC> (const VEC                       &, 
+                     const std::vector<std::string> &, 
+                     const DataVectorType,  
+                    const std::vector<DataComponentInterpretation::DataComponentInterpretation> &); 
+
+  template void 
+  DataOut_DoFData<DH<deal_II_dimension,deal_II_dimension>,deal_II_dimension+1,deal_II_dimension+1>::
+  add_data_vector<VEC> (const VEC                 &, 
+                     const DataPostprocessor<DH<deal_II_dimension,deal_II_dimension>::space_dimension> &);
+
+}
+
+
+for (DH : DOFHANDLER_TEMPLATES)
+{
+  template class DataOut_DoFData<DH<deal_II_dimension>,deal_II_dimension>;
+  template class DataOut_DoFData<DH<deal_II_dimension>,deal_II_dimension+1>;
+
+  #if deal_II_dimension < 3
+  template class DataOut_DoFData<DH<deal_II_dimension>,deal_II_dimension,deal_II_dimension+1>;
+  #endif
+
+  template class DataOut<deal_II_dimension, DH<deal_II_dimension> >;
+  #if deal_II_dimension < 3
+  template class DataOut<deal_II_dimension, DH<deal_II_dimension,deal_II_dimension+1> >;
+  #endif
+}

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.