<h3>Specific improvements</h3>
<ol>
+<li> New: The parallel::distributed::Triangulation::n_global_levels()
+function returns the maximal refinement level over all involved
+processors.
+<br>
+(Timo Heister, 2012/11/04)
+
<li> New: In addition to the regular subdomain ids (see
@ref GlossSubdomainId) there is now a second set of flags called
"level subdomain ids" that also assigns a subdomain to every cell
*/
unsigned int n_global_active_cells () const;
+ /**
+ * Returns the global maximum level. This may be bigger than n_levels.
+ */
+ virtual unsigned int n_global_levels () const;
+
/**
* Return the number of
* active cells owned by each
{
std::vector<unsigned int> n_locally_owned_active_cells;
unsigned int n_global_active_cells;
+ unsigned int n_global_levels;
};
NumberCache number_cache;
* distributed triangulation.
*/
unsigned int n_global_active_cells () const;
+ virtual unsigned int n_global_levels () const;
/**
* Returns a permutation vector for the order the coarse
= std::accumulate (number_cache.n_locally_owned_active_cells.begin(),
number_cache.n_locally_owned_active_cells.end(),
0);
+ number_cache.n_global_levels = Utilities::MPI::max(this->n_levels(), mpi_communicator);
}
+ template <int dim, int spacedim>
+ unsigned int
+ Triangulation<dim,spacedim>::n_global_levels () const
+ {
+ return number_cache.n_global_levels;
+ }
+
+
+
template <int dim, int spacedim>
const std::vector<unsigned int> &
Triangulation<dim,spacedim>::n_locally_owned_active_cells_per_processor () const
+ MemoryConsumption::memory_consumption(triangulation_has_content)
+ MemoryConsumption::memory_consumption(number_cache.n_locally_owned_active_cells)
+ MemoryConsumption::memory_consumption(number_cache.n_global_active_cells)
+ + MemoryConsumption::memory_consumption(number_cache.n_global_levels)
+ MemoryConsumption::memory_consumption(connectivity)
+ MemoryConsumption::memory_consumption(parallel_forest)
+ MemoryConsumption::memory_consumption(refinement_in_progress)
}
+ template <>
+ unsigned int
+ Triangulation<1,1>::n_global_levels () const
+ {
+ Assert (false, ExcNotImplemented());
+ return 0;
+ }
+
+
template <>
MPI_Comm
Triangulation<1,1>::get_communicator () const
}
+ template <>
+ unsigned int
+ Triangulation<1,2>::n_global_levels () const
+ {
+ Assert (false, ExcNotImplemented());
+ return 0;
+ }
+
+
template <>
MPI_Comm
Triangulation<1,2>::get_communicator () const
}
+ template <>
+ unsigned int
+ Triangulation<1,3>::n_global_levels () const
+ {
+ Assert (false, ExcNotImplemented());
+ return 0;
+ }
+
+
template <>
MPI_Comm
Triangulation<1,3>::get_communicator () const