Thank you Prof. for your suggestions.
I have already tried the merge triangulation for my geometry (using step -65), but during the loading conditions the deformation of the cells is not proper and separation is occurring between them.
(The boundary conditions are applied here as the left edge is fixed and the right edge is subjected to the displacement of 1 unit). Please see the attachment.
As per my understanding, the inner cell is not connected correctly with the outer cell.
1. How to make sure that both the triangulations are united after using the merge triangulation option?
2. Is there anything wrong with my boundary Ids, material id or manifold id assignment?
GridGenerator::merge_triangulations(tria_inner, tria_outer, triangulation);
triangulation.reset_all_manifolds();
triangulation.set_all_manifold_ids(0);
for (const auto &cell : triangulation.cell_iterators())
{
for (const auto &face : cell->face_iterators())
{
if (face->at_boundary())
{
if (face->center()[0] == -1)
{
face->set_boundary_id (1);
}
if (face->center()[1] == -1)
{
face->set_boundary_id (2);
}
if (face->center()[0] == 1)
{
face->set_boundary_id (3);
}
if (face->center()[1] == 1)
{
face->set_boundary_id (4);
}
}
bool face_at_sphere_boundary = true;
for (const auto v : face->vertex_indices())
{
if (std::abs(face->vertex(v).norm_square() - 0.25) > 1e-12)
face_at_sphere_boundary = false;
}
if (face_at_sphere_boundary)
face->set_all_manifold_ids(10);
}
if (cell->center().norm_square() < 0.25)
cell->set_material_id(15);
else
cell->set_material_id(20);
}
triangulation.set_manifold(10, SphericalManifold<2>());
TransfiniteInterpolationManifold<2> transfinite_manifold;
transfinite_manifold.initialize(triangulation);
triangulation.set_manifold(0, transfinite_manifold);
triangulation.refine_global(4);