17 #include <deal.II/base/utilities.h> 18 #include <deal.II/base/mpi.h> 19 #include <deal.II/grid/tria.h> 20 #include <deal.II/grid/tria_accessor.h> 21 #include <deal.II/grid/tria_iterator.h> 22 #include <deal.II/grid/grid_tools.h> 23 #include <deal.II/grid/filtered_iterator.h> 24 #include <deal.II/distributed/shared_tria.h> 25 #include <deal.II/distributed/tria.h> 28 DEAL_II_NAMESPACE_OPEN
30 #ifdef DEAL_II_WITH_MPI 36 template <
int dim,
int spacedim>
38 const typename ::Triangulation<dim,spacedim>::MeshSmoothing smooth_grid,
39 const bool allow_artificial_cells):
41 allow_artificial_cells(allow_artificial_cells)
46 template <
int dim,
int spacedim>
49 ::GridTools::partition_triangulation (this->
n_subdomains, *
this);
54 typename parallel::shared::Triangulation<dim,spacedim>::active_cell_iterator
62 std_cxx11::function<bool (const typename parallel::shared::Triangulation<dim,spacedim>::active_cell_iterator &)> predicate
65 const std::vector<typename parallel::shared::Triangulation<dim,spacedim>::active_cell_iterator>
67 std::set<typename parallel::shared::Triangulation<dim,spacedim>::active_cell_iterator>
68 active_halo_layer(active_halo_layer_vector.begin(), active_halo_layer_vector.end());
70 for (
unsigned int index=0; cell != endc; cell++, index++)
75 if (cell->is_locally_owned() ==
false &&
76 active_halo_layer.find(cell) == active_halo_layer.
end())
83 for (
unsigned int index=0; cell != endc; cell++, index++)
91 template <
int dim,
int spacedim>
100 template <
int dim,
int spacedim>
101 const std::vector<types::subdomain_id> &
109 template <
int dim,
int spacedim>
115 template <
int dim,
int spacedim>
126 template <
int dim,
int spacedim>
137 catch (
const typename ::Triangulation<dim,spacedim>::DistortedCellList &)
149 template <
int dim,
int spacedim>
154 Assert ((
dynamic_cast<const ::parallel::distributed::Triangulation<dim,spacedim> *
>(&other_tria) == NULL),
155 ExcMessage(
"Cannot use this function on parallel::distributed::Triangulation."));
171 template <
int dim,
int spacedim>
181 template <
int dim,
int spacedim>
191 template <
int dim,
int spacedim>
192 const std::vector<unsigned int> &
207 #include "shared_tria.inst" 209 DEAL_II_NAMESPACE_CLOSE
virtual void execute_coarsening_and_refinement()
cell_iterator end() const
types::subdomain_id my_subdomain
virtual void copy_triangulation(const ::Triangulation< dim, spacedim > &old_tria)
std::vector< Point< spacedim > > vertices
const std::vector< types::subdomain_id > & get_true_subdomain_ids_of_cells() const
virtual void create_triangulation(const std::vector< Point< spacedim > > &vertices, const std::vector< CellData< dim > > &cells, const SubCellData &subcelldata)
unsigned int n_active_cells() const
virtual void execute_coarsening_and_refinement()
static::ExceptionBase & ExcMessage(std::string arg1)
virtual void copy_triangulation(const ::Triangulation< dim, spacedim > &other_tria)
Triangulation(MPI_Comm mpi_communicator, const typename::Triangulation< dim, spacedim >::MeshSmoothing=(::Triangulation< dim, spacedim >::none), const bool allow_artificial_cells=false)
#define Assert(cond, exc)
virtual void update_number_cache()
const bool allow_artificial_cells
bool with_artificial_cells() const
virtual void create_triangulation(const std::vector< Point< spacedim > > &vertices, const std::vector< CellData< dim > > &cells, const SubCellData &subcelldata)
const types::subdomain_id artificial_subdomain_id
std::vector< types::subdomain_id > true_subdomain_ids_of_cells
static::ExceptionBase & ExcNotImplemented()
active_cell_iterator begin_active(const unsigned int level=0) const
types::subdomain_id n_subdomains
static::ExceptionBase & ExcInternalError()