Skip to content

Commit

Permalink
Work on tests
Browse files Browse the repository at this point in the history
  • Loading branch information
peterrum committed Jan 17, 2021
1 parent ee895a0 commit b534a6f
Show file tree
Hide file tree
Showing 17 changed files with 84 additions and 3 deletions.
19 changes: 19 additions & 0 deletions source/grid/grid_generator.cc
Original file line number Diff line number Diff line change
Expand Up @@ -2044,6 +2044,8 @@ namespace GridGenerator
tria.set_manifold(2,
CylindricalManifold<3>(Tensor<1, 3>({0., 1., 0.}),
Point<3>()));

tria.set_manifold(0, FlatManifold<3>());
TransfiniteInterpolationManifold<3> transfinite;
transfinite.initialize(tria);
tria.set_manifold(0, transfinite);
Expand Down Expand Up @@ -3428,6 +3430,7 @@ namespace GridGenerator

PolarManifold<2> polar_manifold(new_center);
tria.set_manifold(polar_manifold_id, polar_manifold);
tria.set_manifold(tfi_manifold_id, FlatManifold<2>());
TransfiniteInterpolationManifold<2> inner_manifold;
inner_manifold.initialize(tria);
tria.set_manifold(tfi_manifold_id, inner_manifold);
Expand Down Expand Up @@ -3476,8 +3479,11 @@ namespace GridGenerator
const CylindricalManifold<3> cylindrical_manifold(
direction,
/*axial_point*/ new_center);
tria.set_manifold(polar_manifold_id, FlatManifold<3>());
tria.set_manifold(tfi_manifold_id, FlatManifold<3>());
TransfiniteInterpolationManifold<3> inner_manifold;
inner_manifold.initialize(tria);

tria.set_manifold(polar_manifold_id, cylindrical_manifold);
tria.set_manifold(tfi_manifold_id, inner_manifold);
}
Expand Down Expand Up @@ -3682,6 +3688,8 @@ namespace GridGenerator
// attach manifolds
PolarManifold<2> polar_manifold(Point<2>(0.2, 0.2));
tria.set_manifold(polar_manifold_id, polar_manifold);

tria.set_manifold(tfi_manifold_id, FlatManifold<2>());
TransfiniteInterpolationManifold<2> inner_manifold;
inner_manifold.initialize(tria);
tria.set_manifold(tfi_manifold_id, inner_manifold);
Expand Down Expand Up @@ -3735,6 +3743,8 @@ namespace GridGenerator
const Point<3> axial_point(m_ptr->center[0], m_ptr->center[1], 0.0);
const Tensor<1, 3> direction{{0.0, 0.0, 1.0}};

tria.set_manifold(cylindrical_manifold_id, FlatManifold<3>());
tria.set_manifold(tfi_manifold_id, FlatManifold<3>());
const CylindricalManifold<3> cylindrical_manifold(direction, axial_point);
TransfiniteInterpolationManifold<3> inner_manifold;
inner_manifold.initialize(tria);
Expand Down Expand Up @@ -4233,6 +4243,8 @@ namespace GridGenerator
tria.set_manifold(0, SphericalManifold<2>(p));
if (internal_manifolds)
tria.set_manifold(1, SphericalManifold<2>(p));
else
tria.set_manifold(1, FlatManifold<2>());
}


Expand Down Expand Up @@ -4348,6 +4360,9 @@ namespace GridGenerator
SphericalManifold<dim> inner_manifold(inner_center);
SphericalManifold<dim> outer_manifold(outer_center);

tria.set_manifold(0, FlatManifold<dim>());
tria.set_manifold(1, FlatManifold<dim>());
tria.set_manifold(2, FlatManifold<dim>());
TransfiniteInterpolationManifold<dim> transfinite;
transfinite.initialize(tria);

Expand Down Expand Up @@ -4987,6 +5002,8 @@ namespace GridGenerator
tria.set_manifold(0, SphericalManifold<3>(p));
if (internal_manifold)
tria.set_manifold(1, SphericalManifold<3>(p));
else
tria.set_manifold(1, FlatManifold<3>());
}


Expand Down Expand Up @@ -5421,6 +5438,8 @@ namespace GridGenerator
else
cell->set_all_manifold_ids(numbers::flat_manifold_id);

tria.set_manifold(1, FlatManifold<dim>());

tria.set_all_manifold_ids_on_boundary(0);
tria.set_manifold(0, SphericalManifold<dim>(p));
}
Expand Down
13 changes: 10 additions & 3 deletions source/grid/tria.cc
Original file line number Diff line number Diff line change
Expand Up @@ -10228,15 +10228,21 @@ Triangulation<dim, spacedim>::reset_manifold(const types::manifold_id m_number)
AssertIndexRange(m_number, numbers::flat_manifold_id);

// delete the entry located at number.
manifold.erase(m_number);
manifold[m_number] =
internal::TriangulationImplementation::get_default_flat_manifold<dim,
spacedim>()
.clone();
}


template <int dim, int spacedim>
void
Triangulation<dim, spacedim>::reset_all_manifolds()
{
manifold.clear();
for (auto &m : manifold)
m.second = internal::TriangulationImplementation::
get_default_flat_manifold<dim, spacedim>()
.clone();
}


Expand Down Expand Up @@ -10336,7 +10342,8 @@ Triangulation<dim, spacedim>::get_manifold(
Assert(
false,
ExcMessage(
"No manifold of given manifold id has been attached to the triangulation. "
"No manifold of the manifold id " + std::to_string(m_number) +
" has been attached to the triangulation. "
"Please attach the right manifold with Triangulation::set_manifold()."));

return internal::TriangulationImplementation::
Expand Down
3 changes: 3 additions & 0 deletions tests/fe/cell_similarity_08.cc
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,9 @@ test()
GridGenerator::subdivided_hyper_rectangle(tr, subdivisions, p1, p2);
GridTools::copy_boundary_to_manifold_id(tr);

for (const auto bid : tr.get_boundary_ids())
tr.set_manifold(bid, FlatManifold<dim>());

static const SphericalManifold<dim> boundary(tr.begin_active()->center());
tr.set_manifold(1, boundary);

Expand Down
3 changes: 3 additions & 0 deletions tests/grid/extrude_copy_manifold.cc
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

#include <deal.II/grid/grid_generator.h>
#include <deal.II/grid/grid_out.h>
#include <deal.II/grid/manifold.h>
#include <deal.II/grid/manifold_lib.h>
#include <deal.II/grid/tria.h>

Expand Down Expand Up @@ -47,6 +48,8 @@ test()
Triangulation<3> triangulation_3;
GridGenerator::extrude_triangulation(
triangulation_2, 3, 1.0, triangulation_3, true);
triangulation_3.set_manifold(0, FlatManifold<3>());
triangulation_3.set_manifold(1, FlatManifold<3>());
TransfiniteInterpolationManifold<3> tfi_manifold;
tfi_manifold.initialize(triangulation_3);
CylindricalManifold<3> cylinder_manifold(2);
Expand Down
13 changes: 13 additions & 0 deletions tests/grid/get_coarse_mesh_description_01.cc
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
#include <deal.II/grid/grid_generator.h>
#include <deal.II/grid/grid_out.h>
#include <deal.II/grid/grid_tools.h>
#include <deal.II/grid/manifold.h>
#include <deal.II/grid/tria.h>

#include "../tests.h"
Expand All @@ -37,6 +38,10 @@ void setup_tria(Triangulation<1> &tria)
for (auto &cell : tria.active_cell_iterators())
cell->set_manifold_id(
static_cast<types::material_id>(10.0 * (2.0 + cell->center()[0])));

for (const auto bid : tria.get_manifold_ids())
if (bid != numbers::flat_manifold_id)
tria.set_manifold(bid, FlatManifold<1>());
}


Expand Down Expand Up @@ -70,6 +75,10 @@ setup_tria(Triangulation<dim> &tria)
cell->set_manifold_id(
static_cast<types::material_id>(361 - angle * 180.0 / numbers::PI));
}

for (const auto bid : tria.get_manifold_ids())
if (bid != numbers::flat_manifold_id)
tria.set_manifold(bid, FlatManifold<dim>());
}


Expand All @@ -92,6 +101,10 @@ test()
tria_2.create_triangulation(vertices, cells, subcell_data);
Assert(GridTools::have_same_coarse_mesh(tria, tria_2), ExcInternalError());

for (const auto bid : tria_2.get_manifold_ids())
if (bid != numbers::flat_manifold_id)
tria_2.set_manifold(bid, FlatManifold<dim>());

GridOut grid_out;
deallog << "Original Triangulation:" << std::endl;
grid_out.write_vtk(tria, deallog.get_file_stream());
Expand Down
4 changes: 4 additions & 0 deletions tests/grid/grid_hyper_shell.cc
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ check(double r1, double r2, unsigned int n)
tria.reset_manifold(0);
tria.set_all_manifold_ids(numbers::flat_manifold_id);
GridTools::copy_boundary_to_manifold_id(tria);

for (const auto bid : tria.get_boundary_ids())
tria.set_manifold(bid, FlatManifold<dim>());

if (dim == 3)
for (typename Triangulation<dim>::active_cell_iterator c =
tria.begin_active();
Expand Down
3 changes: 3 additions & 0 deletions tests/grid/grid_tools_regularize_02.cc
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ main()

GridTools::copy_boundary_to_manifold_id(tria);

for (const auto bid : tria.get_boundary_ids())
tria.set_manifold(bid, FlatManifold<2>());

tria.set_manifold(0, m0);
tria.set_manifold(1, m1);

Expand Down
1 change: 1 addition & 0 deletions tests/grid/merge_triangulations_04.cc
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ main()

PolarManifold<2> polar_manifold(Point<2>(0.2, 0.2));
result_2.set_manifold(polar_id, polar_manifold);
result_2.set_manifold(tfi_id, FlatManifold<2>());
TransfiniteInterpolationManifold<2> inner_manifold;
inner_manifold.initialize(result_2);
result_2.set_manifold(tfi_id, inner_manifold);
Expand Down
6 changes: 6 additions & 0 deletions tests/grid/move_constructor.cc
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,14 @@ template <int dim>
void
print_tria_info(const Triangulation<dim> &tria)
{
const std::vector<types::manifold_id> bids =
tria.n_active_cells() == 0 ? std::vector<types::manifold_id>() :
tria.get_manifold_ids();

const bool manifold_0_is_flat =
(std::find(bids.begin(), bids.end(), 0) == bids.end()) ||
dynamic_cast<const FlatManifold<dim> *>(&tria.get_manifold(0)) != nullptr;

deallog << (tria.n_active_cells() != 0) << ", " << (tria.n_active_hexs() != 0)
<< ", " << (tria.n_active_quads() != 0) << ", "
<< (tria.n_active_lines() != 0) << ", " << (tria.n_levels() != 0)
Expand Down
2 changes: 2 additions & 0 deletions tests/manifold/manifold_id_02.cc
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,8 @@ test(unsigned int ref = 1)
typename Triangulation<dim, spacedim>::active_cell_iterator cell;

tria.begin_active()->set_all_manifold_ids(1);
tria.set_manifold(1, FlatManifold<dim, spacedim>());

tria.refine_global(ref);

for (cell = tria.begin_active(); cell != tria.end(); ++cell)
Expand Down
1 change: 1 addition & 0 deletions tests/manifold/manifold_id_03.cc
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ test(unsigned int ref = 1)


tria.begin_active()->set_manifold_id(1);
tria.set_manifold(1, FlatManifold<dim, spacedim>());

tria.refine_global(1);

Expand Down
4 changes: 4 additions & 0 deletions tests/manifold/manifold_id_04.cc
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@ test(unsigned int ref = 1)
for (const unsigned int f : GeometryInfo<dim>::face_indices())
tria.begin_active()->face(f)->set_manifold_id(2);

tria.set_manifold(1, FlatManifold<dim, spacedim>());
tria.set_manifold(2, FlatManifold<dim, spacedim>());
tria.set_manifold(3, FlatManifold<dim, spacedim>());

tria.refine_global(1);

for (cell = tria.begin_active(); cell != tria.end(); ++cell)
Expand Down
1 change: 1 addition & 0 deletions tests/manifold/polar_manifold_04.cc
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ test(unsigned int ref = 1)
cell->set_all_manifold_ids(0);
}

tria.set_manifold(0, FlatManifold<dim, spacedim>());
tria.set_manifold(1, manifold);
tria.refine_global(2);

Expand Down
3 changes: 3 additions & 0 deletions tests/mappings/mapping_q_mixed_manifolds_02.cc
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,7 @@ void create_triangulation(Triangulation<2> &tria)
if (Point<2>(X_C, Y_C).distance(cell->center()) <= R_2)
cell->set_all_manifold_ids(MANIFOLD_ID);
}
tria.set_manifold(MANIFOLD_ID, FlatManifold<2>());
}

void create_triangulation(Triangulation<3> &tria)
Expand All @@ -180,6 +181,8 @@ void create_triangulation(Triangulation<3> &tria)
if (Point<3>(X_C, Y_C, cell->center()[2]).distance(cell->center()) <= R_2)
cell->set_all_manifold_ids(MANIFOLD_ID);
}
tria.set_manifold(0, FlatManifold<3>());
tria.set_manifold(MANIFOLD_ID, FlatManifold<3>());
}

template <int dim>
Expand Down
4 changes: 4 additions & 0 deletions tests/mpi/periodicity_02.cc
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@

#include <deal.II/grid/grid_generator.h>
#include <deal.II/grid/grid_tools.h>
#include <deal.II/grid/manifold.h>
#include <deal.II/grid/manifold_lib.h>

#include <deal.II/lac/affine_constraints.h>
Expand Down Expand Up @@ -768,6 +769,9 @@ namespace Step22
triangulation.set_all_manifold_ids(numbers::flat_manifold_id);
GridTools::copy_boundary_to_manifold_id(triangulation);

for (const auto bid : triangulation.get_boundary_ids())
triangulation.set_manifold(bid, FlatManifold<dim>());

#ifdef PERIODIC
std::vector<GridTools::PeriodicFacePair<
typename parallel::distributed::Triangulation<dim>::cell_iterator>>
Expand Down
4 changes: 4 additions & 0 deletions tests/numerics/no_flux_10.cc
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
#include <deal.II/grid/grid_generator.h>
#include <deal.II/grid/grid_out.h>
#include <deal.II/grid/grid_tools.h>
#include <deal.II/grid/manifold.h>
#include <deal.II/grid/manifold_lib.h>
#include <deal.II/grid/tria.h>

Expand Down Expand Up @@ -205,6 +206,9 @@ run()
sixty_deg_hyper_shell(triangulation, Point<dim>(), 0.5, 1.0);
GridTools::copy_boundary_to_manifold_id(triangulation);

for (unsigned int d = 0; d < 2 * dim; ++d)
triangulation.set_manifold(d, FlatManifold<dim>());

static SphericalManifold<dim> boundary((Point<dim>()));
triangulation.set_manifold(0, boundary);

Expand Down
3 changes: 3 additions & 0 deletions tests/simplex/step-02.cc
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,9 @@ void make_grid(Triangulation<2> &triangulation)

GridGenerator::convert_hypercube_to_simplex_mesh(triangulation_temp,
triangulation);
for (const auto i : triangulation_temp.get_manifold_ids())
if (i != numbers::flat_manifold_id)
triangulation.set_manifold(i, triangulation_temp.get_manifold(i));

triangulation.refine_global(); // WARNING: no local refinement is performed
}
Expand Down

0 comments on commit b534a6f

Please sign in to comment.