* objects that can later be retrieved after refinement, coarsening and
* repartitioning.
*/
- void pack_callback(const typename Triangulation<dim,dim>::cell_iterator &cell,
- const typename Triangulation<dim,dim>::CellStatus status,
+ void pack_callback(const typename Triangulation<dim,DoFHandlerType::space_dimension>::cell_iterator &cell,
+ const typename Triangulation<dim,DoFHandlerType::space_dimension>::CellStatus status,
void *data);
/**
* has been packed up previously on the mesh before refinement,
* coarsening and repartitioning.
*/
- void unpack_callback(const typename Triangulation<dim,dim>::cell_iterator &cell,
- const typename Triangulation<dim,dim>::CellStatus status,
+ void unpack_callback(const typename Triangulation<dim,DoFHandlerType::space_dimension>::cell_iterator &cell,
+ const typename Triangulation<dim,DoFHandlerType::space_dimension>::CellStatus status,
const void *data,
std::vector<VectorType *> &all_out);
Assert(size > 0, ExcMessage("Please transfer at least one vector!"));
//TODO: casting away constness is bad
- parallel::distributed::Triangulation<dim> *tria
- = (dynamic_cast<parallel::distributed::Triangulation<dim>*>
- (const_cast<dealii::Triangulation<dim>*>
+ parallel::distributed::Triangulation<dim,DoFHandlerType::space_dimension> *tria
+ = (dynamic_cast<parallel::distributed::Triangulation<dim,DoFHandlerType::space_dimension>*>
+ (const_cast<dealii::Triangulation<dim,DoFHandlerType::space_dimension>*>
(&dof_handler->get_tria())));
Assert (tria != 0, ExcInternalError());
ExcDimensionMismatch(input_vectors.size(), all_out.size()) );
//TODO: casting away constness is bad
- parallel::distributed::Triangulation<dim> *tria
- = (dynamic_cast<parallel::distributed::Triangulation<dim>*>
- (const_cast<dealii::Triangulation<dim>*>
+ parallel::distributed::Triangulation<dim,DoFHandlerType::space_dimension> *tria
+ = (dynamic_cast<parallel::distributed::Triangulation<dim,DoFHandlerType::space_dimension>*>
+ (const_cast<dealii::Triangulation<dim,DoFHandlerType::space_dimension>*>
(&dof_handler->get_tria())));
Assert (tria != 0, ExcInternalError());
template<int dim, typename VectorType, typename DoFHandlerType>
void
SolutionTransfer<dim, VectorType, DoFHandlerType>::
- pack_callback(const typename Triangulation<dim,dim>::cell_iterator &cell_,
- const typename Triangulation<dim,dim>::CellStatus /*status*/,
+ pack_callback(const typename Triangulation<dim,DoFHandlerType::space_dimension>::cell_iterator &cell_,
+ const typename Triangulation<dim,DoFHandlerType::space_dimension>::CellStatus /*status*/,
void *data)
{
typename VectorType::value_type *data_store = reinterpret_cast<typename VectorType::value_type *>(data);
template<int dim, typename VectorType, typename DoFHandlerType>
void
SolutionTransfer<dim, VectorType, DoFHandlerType>::unpack_callback
- (const typename Triangulation<dim,dim>::cell_iterator &cell_,
- const typename Triangulation<dim,dim>::CellStatus /*status*/,
+ (const typename Triangulation<dim,DoFHandlerType::space_dimension>::cell_iterator &cell_,
+ const typename Triangulation<dim,DoFHandlerType::space_dimension>::CellStatus /*status*/,
const void *data,
std::vector<VectorType *> &all_out)
{
-for (deal_II_dimension : DIMENSIONS)
+for (deal_II_dimension : DIMENSIONS; deal_II_space_dimension : SPACE_DIMENSIONS)
{
namespace parallel
\{
namespace distributed
\{
#if deal_II_dimension > 1
- template class SolutionTransfer<deal_II_dimension,::dealii::Vector<double>, DoFHandler<deal_II_dimension> >;
- template class SolutionTransfer<deal_II_dimension,::dealii::parallel::distributed::Vector<double>, DoFHandler<deal_II_dimension> >;
- template class SolutionTransfer<deal_II_dimension,::dealii::parallel::distributed::Vector<float>, DoFHandler<deal_II_dimension> >;
- template class SolutionTransfer<deal_II_dimension,::dealii::parallel::distributed::BlockVector<double>, DoFHandler<deal_II_dimension> >;
- template class SolutionTransfer<deal_II_dimension,::dealii::parallel::distributed::BlockVector<float>, DoFHandler<deal_II_dimension> >;
+#if deal_II_dimension <= deal_II_space_dimension
+ template class SolutionTransfer<deal_II_dimension,::dealii::Vector<double>, DoFHandler<deal_II_dimension,deal_II_space_dimension> >;
+ template class SolutionTransfer<deal_II_dimension,::dealii::parallel::distributed::Vector<double>, DoFHandler<deal_II_dimension,deal_II_space_dimension> >;
+ template class SolutionTransfer<deal_II_dimension,::dealii::parallel::distributed::Vector<float>, DoFHandler<deal_II_dimension,deal_II_space_dimension> >;
+ template class SolutionTransfer<deal_II_dimension,::dealii::parallel::distributed::BlockVector<double>, DoFHandler<deal_II_dimension,deal_II_space_dimension> >;
+ template class SolutionTransfer<deal_II_dimension,::dealii::parallel::distributed::BlockVector<float>, DoFHandler<deal_II_dimension,deal_II_space_dimension> >;
#ifdef DEAL_II_WITH_PETSC
- template class SolutionTransfer<deal_II_dimension, PETScWrappers::Vector, DoFHandler<deal_II_dimension> >;
+ template class SolutionTransfer<deal_II_dimension, PETScWrappers::Vector, DoFHandler<deal_II_dimension,deal_II_space_dimension> >;
- template class SolutionTransfer<deal_II_dimension, PETScWrappers::BlockVector, DoFHandler<deal_II_dimension> >;
+ template class SolutionTransfer<deal_II_dimension, PETScWrappers::BlockVector, DoFHandler<deal_II_dimension,deal_II_space_dimension> >;
- template class SolutionTransfer<deal_II_dimension, PETScWrappers::MPI::Vector, DoFHandler<deal_II_dimension> >;
+ template class SolutionTransfer<deal_II_dimension, PETScWrappers::MPI::Vector, DoFHandler<deal_II_dimension,deal_II_space_dimension> >;
- template class SolutionTransfer<deal_II_dimension, PETScWrappers::MPI::BlockVector, DoFHandler<deal_II_dimension> >;
+ template class SolutionTransfer<deal_II_dimension, PETScWrappers::MPI::BlockVector, DoFHandler<deal_II_dimension,deal_II_space_dimension> >;
#endif
#ifdef DEAL_II_WITH_TRILINOS
- template class SolutionTransfer<deal_II_dimension, TrilinosWrappers::Vector, DoFHandler<deal_II_dimension> >;
+ template class SolutionTransfer<deal_II_dimension, TrilinosWrappers::Vector, DoFHandler<deal_II_dimension,deal_II_space_dimension> >;
- template class SolutionTransfer<deal_II_dimension, TrilinosWrappers::BlockVector, DoFHandler<deal_II_dimension> >;
+ template class SolutionTransfer<deal_II_dimension, TrilinosWrappers::BlockVector, DoFHandler<deal_II_dimension,deal_II_space_dimension> >;
- template class SolutionTransfer<deal_II_dimension, TrilinosWrappers::MPI::Vector, DoFHandler<deal_II_dimension> >;
+ template class SolutionTransfer<deal_II_dimension, TrilinosWrappers::MPI::Vector, DoFHandler<deal_II_dimension,deal_II_space_dimension> >;
- template class SolutionTransfer<deal_II_dimension, TrilinosWrappers::MPI::BlockVector, DoFHandler<deal_II_dimension> >;
+ template class SolutionTransfer<deal_II_dimension, TrilinosWrappers::MPI::BlockVector, DoFHandler<deal_II_dimension,deal_II_space_dimension> >;
+#endif
+
#endif
#endif
\}