17 #include <deal.II/base/utilities.h> 18 #include <deal.II/base/mpi.h> 19 #include <deal.II/base/memory_consumption.h> 20 #include <deal.II/base/logstream.h> 21 #include <deal.II/lac/sparsity_tools.h> 22 #include <deal.II/lac/sparsity_pattern.h> 23 #include <deal.II/grid/tria.h> 24 #include <deal.II/grid/tria_accessor.h> 25 #include <deal.II/grid/tria_iterator.h> 26 #include <deal.II/grid/grid_tools.h> 27 #include <deal.II/grid/filtered_iterator.h> 28 #include <deal.II/distributed/shared_tria.h> 39 DEAL_II_NAMESPACE_OPEN
41 #ifdef DEAL_II_WITH_MPI 47 template <
int dim,
int spacedim>
49 const typename ::Triangulation<dim,spacedim>::MeshSmoothing smooth_grid,
50 const bool allow_artificial_cells):
52 allow_artificial_cells(allow_artificial_cells)
56 template <
int dim,
int spacedim>
59 ::GridTools::partition_triangulation (this->
n_subdomains, *
this);
64 typename parallel::shared::Triangulation<dim,spacedim>::active_cell_iterator
72 std_cxx11::function<bool (const typename parallel::shared::Triangulation<dim,spacedim>::active_cell_iterator &)> predicate
75 const std::vector<typename parallel::shared::Triangulation<dim,spacedim>::active_cell_iterator>
77 std::set<typename parallel::shared::Triangulation<dim,spacedim>::active_cell_iterator>
78 active_halo_layer(active_halo_layer_vector.begin(), active_halo_layer_vector.end());
80 for (
unsigned int index=0; cell != endc; cell++, index++)
85 if (cell->is_locally_owned() ==
false &&
86 active_halo_layer.find(cell) == active_halo_layer.
end())
93 for (
unsigned int index=0; cell != endc; cell++, index++)
99 template <
int dim,
int spacedim>
106 template <
int dim,
int spacedim>
107 const std::vector<unsigned int> &
113 template <
int dim,
int spacedim>
119 template <
int dim,
int spacedim>
128 template <
int dim,
int spacedim>
139 catch (
const typename ::Triangulation<dim,spacedim>::DistortedCellList &)
158 template <
int dim,
int spacedim>
163 Assert (
false, ExcNotImplemented());
166 template <
int dim,
int spacedim>
170 Assert (
false, ExcNotImplemented());
174 template <
int dim,
int spacedim>
175 const std::vector<unsigned int> &
178 Assert (
false, ExcNotImplemented());
190 #include "shared_tria.inst" 192 DEAL_II_NAMESPACE_CLOSE
unsigned int n_active_cells() const
virtual void execute_coarsening_and_refinement()
const std::vector< types::subdomain_id > & get_true_subdomain_ids_of_cells() const
types::subdomain_id my_subdomain
Triangulation(MPI_Comm mpi_communicator, const typename ::Triangulation< dim, spacedim >::MeshSmoothing=(::Triangulation< dim, spacedim >::none), const bool allow_artificial_cells=false)
std::vector< Point< spacedim > > vertices
virtual void create_triangulation(const std::vector< Point< spacedim > > &vertices, const std::vector< CellData< dim > > &cells, const SubCellData &subcelldata)
active_cell_iterator begin_active(const unsigned int level=0) const
#define AssertThrow(cond, exc)
cell_iterator end() const
virtual void execute_coarsening_and_refinement()
#define Assert(cond, exc)
virtual void update_number_cache()
const bool allow_artificial_cells
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
bool with_artificial_cells() const
types::subdomain_id n_subdomains