Skip to content

Commit

Permalink
cell_attached_data and data_transfer are handled by Triangulation
Browse files Browse the repository at this point in the history
  • Loading branch information
pcafrica committed Jul 2, 2023
1 parent 1454b30 commit 9c54453
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 51 deletions.
2 changes: 1 addition & 1 deletion include/deal.II/grid/data_transfer.h
Original file line number Diff line number Diff line change
Expand Up @@ -597,7 +597,7 @@ template <int dim, int spacedim>
DEAL_II_CXX20_REQUIRES((concepts::is_valid_dim_spacedim<dim, spacedim>))
void DataTransfer<dim, spacedim>::unpack_data(
const std::vector<typename DataTransfer<dim, spacedim>::cell_relation_t>
& cell_relations,
&cell_relations,
const unsigned int handle,
const std::function<
void(const cell_iterator &,
Expand Down
9 changes: 1 addition & 8 deletions source/distributed/tria_base.cc
Original file line number Diff line number Diff line change
Expand Up @@ -679,21 +679,14 @@ namespace parallel
mpi_communicator,
smooth_grid,
check_for_distorted_cells)
{
this->cell_attached_data = {0, 0, {}, {}};
this->data_transfer =
std::make_unique<DataTransfer<dim, spacedim>>(mpi_communicator);
}
{}



template <int dim, int spacedim>
DEAL_II_CXX20_REQUIRES((concepts::is_valid_dim_spacedim<dim, spacedim>))
void DistributedTriangulationBase<dim, spacedim>::clear()
{
this->cell_attached_data = {0, 0, {}, {}};
this->data_transfer->clear();

dealii::Triangulation<dim, spacedim>::clear();
}

Expand Down
91 changes: 49 additions & 42 deletions source/grid/tria.cc
Original file line number Diff line number Diff line change
Expand Up @@ -444,7 +444,7 @@ namespace

void
reorder_compatibility(std::vector<CellData<3>> &cells,
SubCellData & subcelldata)
SubCellData &subcelldata)
{
unsigned int tmp[GeometryInfo<3>::vertices_per_cell];
static constexpr std::array<unsigned int,
Expand Down Expand Up @@ -663,7 +663,7 @@ namespace
const typename Triangulation<dim, spacedim>::cell_iterator &cell_2,
unsigned int n_face_1,
unsigned int n_face_2,
const std::bitset<3> & orientation,
const std::bitset<3> &orientation,
typename std::map<
std::pair<typename Triangulation<dim, spacedim>::cell_iterator,
unsigned int>,
Expand Down Expand Up @@ -1066,7 +1066,7 @@ namespace internal
* @note Used only for dim=3.
*/
void
reserve_space(TriaFaces & tria_faces,
reserve_space(TriaFaces &tria_faces,
const unsigned int new_quads_in_pairs,
const unsigned int new_quads_single)
{
Expand Down Expand Up @@ -1147,7 +1147,7 @@ namespace internal
*/

void
reserve_space(TriaLevel & tria_level,
reserve_space(TriaLevel &tria_level,
const unsigned int total_cells,
const unsigned int dimension,
const unsigned int space_dimension)
Expand Down Expand Up @@ -1258,7 +1258,7 @@ namespace internal
* should be called from the functions of the higher TriaLevel classes.
*/
void
monitor_memory(const TriaLevel & tria_level,
monitor_memory(const TriaLevel &tria_level,
const unsigned int true_dimension)
{
(void)tria_level;
Expand Down Expand Up @@ -1288,7 +1288,7 @@ namespace internal
* lines in the interior of refined cells can be stored as single lines.
*/
void
reserve_space(TriaObjects & tria_objects,
reserve_space(TriaObjects &tria_objects,
const unsigned int new_objects_in_pairs,
const unsigned int new_objects_single = 0)
{
Expand Down Expand Up @@ -1542,9 +1542,9 @@ namespace internal
*/
virtual void
delete_children(
Triangulation<dim, spacedim> & triangulation,
Triangulation<dim, spacedim> &triangulation,
typename Triangulation<dim, spacedim>::cell_iterator &cell,
std::vector<unsigned int> & line_cell_count,
std::vector<unsigned int> &line_cell_count,
std::vector<unsigned int> &quad_cell_count) = 0;

/**
Expand Down Expand Up @@ -1604,9 +1604,9 @@ namespace internal

void
delete_children(
Triangulation<dim, spacedim> & tria,
Triangulation<dim, spacedim> &tria,
typename Triangulation<dim, spacedim>::cell_iterator &cell,
std::vector<unsigned int> & line_cell_count,
std::vector<unsigned int> &line_cell_count,
std::vector<unsigned int> &quad_cell_count) override
{
T::delete_children(tria, cell, line_cell_count, quad_cell_count);
Expand Down Expand Up @@ -1761,7 +1761,7 @@ namespace internal
template <int dim, int spacedim>
static void
compute_number_cache_dim(
const Triangulation<dim, spacedim> & triangulation,
const Triangulation<dim, spacedim> &triangulation,
const unsigned int level_objects,
internal::TriangulationImplementation::NumberCache<1> &number_cache)
{
Expand Down Expand Up @@ -1849,7 +1849,7 @@ namespace internal
template <int dim, int spacedim>
static void
compute_number_cache_dim(
const Triangulation<dim, spacedim> & triangulation,
const Triangulation<dim, spacedim> &triangulation,
const unsigned int level_objects,
internal::TriangulationImplementation::NumberCache<2> &number_cache)
{
Expand Down Expand Up @@ -1956,7 +1956,7 @@ namespace internal
template <int dim, int spacedim>
static void
compute_number_cache_dim(
const Triangulation<dim, spacedim> & triangulation,
const Triangulation<dim, spacedim> &triangulation,
const unsigned int level_objects,
internal::TriangulationImplementation::NumberCache<3> &number_cache)
{
Expand Down Expand Up @@ -2049,7 +2049,7 @@ namespace internal
template <int dim, int spacedim>
static void
compute_number_cache(
const Triangulation<dim, spacedim> & triangulation,
const Triangulation<dim, spacedim> &triangulation,
const unsigned int level_objects,
internal::TriangulationImplementation::NumberCache<dim> &number_cache)
{
Expand Down Expand Up @@ -2256,9 +2256,9 @@ namespace internal
template <int dim, int spacedim>
static void
create_triangulation(const std::vector<Point<spacedim>> &vertices,
const std::vector<CellData<dim>> & cells,
const SubCellData & subcelldata,
Triangulation<dim, spacedim> & tria)
const std::vector<CellData<dim>> &cells,
const SubCellData &subcelldata,
Triangulation<dim, spacedim> &tria)
{
AssertThrow(vertices.size() > 0, ExcMessage("No vertices given"));
AssertThrow(cells.size() > 0, ExcMessage("No cells given"));
Expand Down Expand Up @@ -2308,7 +2308,7 @@ namespace internal
auto &lines_0 = tria.faces->lines; // data structure to be filled

// get connectivity between quads and lines
const auto & crs = connectivity.entity_to_entities(1, 0);
const auto &crs = connectivity.entity_to_entities(1, 0);
const unsigned int n_lines = crs.ptr.size() - 1;

// allocate memory
Expand All @@ -2329,7 +2329,7 @@ namespace internal
auto &faces = *tria.faces;

// get connectivity between quads and lines
const auto & crs = connectivity.entity_to_entities(2, 1);
const auto &crs = connectivity.entity_to_entities(2, 1);
const unsigned int n_quads = crs.ptr.size() - 1;

// allocate memory
Expand Down Expand Up @@ -2519,10 +2519,10 @@ namespace internal
template <int structdim, int spacedim, typename T>
static void
process_subcelldata(
const CRS<T> & crs,
TriaObjects & obj,
const CRS<T> &crs,
TriaObjects &obj,
const std::vector<CellData<structdim>> &boundary_objects_in,
const std::vector<Point<spacedim>> & vertex_locations)
const std::vector<Point<spacedim>> &vertex_locations)
{
AssertDimension(obj.structdim, structdim);

Expand Down Expand Up @@ -2626,7 +2626,7 @@ namespace internal


static void
reserve_space_(TriaFaces & faces,
reserve_space_(TriaFaces &faces,
const unsigned structdim,
const unsigned int size)
{
Expand All @@ -2648,7 +2648,7 @@ namespace internal


static void
reserve_space_(TriaLevel & level,
reserve_space_(TriaLevel &level,
const unsigned int spacedim,
const unsigned int size,
const bool orientation_needed)
Expand Down Expand Up @@ -3611,7 +3611,7 @@ namespace internal
static void
create_children(
Triangulation<2, spacedim> &triangulation,
unsigned int & next_unused_vertex,
unsigned int &next_unused_vertex,
typename Triangulation<2, spacedim>::raw_line_iterator
&next_unused_line,
typename Triangulation<2, spacedim>::raw_cell_iterator
Expand Down Expand Up @@ -4160,11 +4160,11 @@ namespace internal
typename Triangulation<dim, spacedim>::raw_line_iterator
next_unused_line = triangulation.begin_raw_line();

const auto create_children = [](auto & triangulation,
const auto create_children = [](auto &triangulation,
unsigned int &next_unused_vertex,
auto & next_unused_line,
auto & next_unused_cell,
const auto & cell) {
auto &next_unused_line,
auto &next_unused_cell,
const auto &cell) {
const auto ref_case = cell->refine_flag_set();
cell->clear_refine_flag();

Expand Down Expand Up @@ -11040,10 +11040,10 @@ namespace internal
template <int dim, int spacedim>
static void
delete_children(
Triangulation<dim, spacedim> & triangulation,
Triangulation<dim, spacedim> &triangulation,
typename Triangulation<dim, spacedim>::cell_iterator &cell,
std::vector<unsigned int> & line_cell_count,
std::vector<unsigned int> & quad_cell_count)
std::vector<unsigned int> &line_cell_count,
std::vector<unsigned int> &quad_cell_count)
{
AssertThrow(false, ExcNotImplemented());
(void)triangulation;
Expand Down Expand Up @@ -11130,6 +11130,10 @@ Triangulation<dim, spacedim>::Triangulation(
signals.post_refinement.connect(signals.any_change);
signals.clear.connect(signals.any_change);
signals.mesh_movement.connect(signals.any_change);

cell_attached_data = {0, 0, {}, {}};
data_transfer =
std::make_unique<DataTransfer<dim, spacedim>>(get_communicator());
}


Expand Down Expand Up @@ -11233,6 +11237,9 @@ void Triangulation<dim, spacedim>::clear()
periodic_face_pairs_level_0.clear();
periodic_face_map.clear();
reference_cells.clear();

cell_attached_data = {0, 0, {}, {}};
data_transfer->clear();
}


Expand Down Expand Up @@ -11552,8 +11559,8 @@ template <int dim, int spacedim>
DEAL_II_CXX20_REQUIRES((concepts::is_valid_dim_spacedim<dim, spacedim>))
void Triangulation<dim, spacedim>::create_triangulation_compatibility(
const std::vector<Point<spacedim>> &v,
const std::vector<CellData<dim>> & cells,
const SubCellData & subcelldata)
const std::vector<CellData<dim>> &cells,
const SubCellData &subcelldata)
{
std::vector<CellData<dim>> reordered_cells(cells); // NOLINT
SubCellData reordered_subcelldata(subcelldata); // NOLINT
Expand Down Expand Up @@ -11597,8 +11604,8 @@ template <int dim, int spacedim>
DEAL_II_CXX20_REQUIRES((concepts::is_valid_dim_spacedim<dim, spacedim>))
void Triangulation<dim, spacedim>::create_triangulation(
const std::vector<Point<spacedim>> &v,
const std::vector<CellData<dim>> & cells,
const SubCellData & subcelldata)
const std::vector<CellData<dim>> &cells,
const SubCellData &subcelldata)
{
Assert((vertices.size() == 0) && (levels.size() == 0) && (faces == nullptr),
ExcTriangulationNotEmpty(vertices.size(), levels.size()));
Expand Down Expand Up @@ -12196,7 +12203,7 @@ namespace
unsigned int dim,
std::vector<
std::unique_ptr<internal::TriangulationImplementation::TriaLevel>>
& levels,
&levels,
internal::TriangulationImplementation::TriaFaces *faces)
{
if (dim == 1)
Expand Down Expand Up @@ -12232,7 +12239,7 @@ namespace
unsigned int dim,
std::vector<
std::unique_ptr<internal::TriangulationImplementation::TriaLevel>>
& levels,
&levels,
internal::TriangulationImplementation::TriaFaces *faces)
{
if (dim == 1)
Expand Down Expand Up @@ -16559,10 +16566,10 @@ void Triangulation<dim, spacedim>::write_bool_vector(
const unsigned int magic_number1,
const std::vector<bool> &v,
const unsigned int magic_number2,
std::ostream & out)
std::ostream &out)
{
const unsigned int N = v.size();
unsigned char * flags = new unsigned char[N / 8 + 1];
unsigned char *flags = new unsigned char[N / 8 + 1];
for (unsigned int i = 0; i < N / 8 + 1; ++i)
flags[i] = 0;

Expand Down Expand Up @@ -16594,7 +16601,7 @@ void Triangulation<dim, spacedim>::read_bool_vector(
const unsigned int magic_number1,
std::vector<bool> &v,
const unsigned int magic_number2,
std::istream & in)
std::istream &in)
{
AssertThrow(in.fail() == false, ExcIO());

Expand All @@ -16606,7 +16613,7 @@ void Triangulation<dim, spacedim>::read_bool_vector(
in >> N;
v.resize(N);

unsigned char * flags = new unsigned char[N / 8 + 1];
unsigned char *flags = new unsigned char[N / 8 + 1];
unsigned short int tmp;
for (unsigned int i = 0; i < N / 8 + 1; ++i)
{
Expand Down

0 comments on commit 9c54453

Please sign in to comment.