// implemented so far
continue;
- const unsigned int nc =
- GeometryInfo<dim>::n_children(RefinementCase<dim>(ref_case));
+ const unsigned int nc = this->reference_cell().template n_children<dim>(
+ RefinementCase<dim>(ref_case));
for (unsigned int i = 0; i < nc; ++i)
{
this->prolongation[ref_case - 1][i].reinit(n_dofs, n_dofs);
Assert(refinement_case != RefinementCase<dim>::no_refinement,
ExcMessage(
"Prolongation matrices are only available for refined cells!"));
- AssertIndexRange(child, GeometryInfo<dim>::n_children(refinement_case));
+ AssertIndexRange(
+ child, this->reference_cell().template n_children<dim>(refinement_case));
// initialization upon first request
if (this->prolongation[refinement_case - 1][child].n() == 0)
std::vector<std::vector<FullMatrix<double>>> isotropic_matrices(
RefinementCase<dim>::isotropic_refinement);
isotropic_matrices.back().resize(
- GeometryInfo<dim>::n_children(RefinementCase<dim>(refinement_case)),
+ this->reference_cell().template n_children<dim>(
+ RefinementCase<dim>(refinement_case)),
FullMatrix<double>(this->n_dofs_per_cell(),
this->n_dofs_per_cell()));
if (dim == spacedim)
Assert(refinement_case != RefinementCase<dim>::no_refinement,
ExcMessage(
"Restriction matrices are only available for refined cells!"));
- AssertIndexRange(child, GeometryInfo<dim>::n_children(refinement_case));
+ AssertIndexRange(
+ child, this->reference_cell().template n_children<dim>(refinement_case));
// initialization upon first request
if (this->restriction[refinement_case - 1][child].n() == 0)
std::vector<std::vector<FullMatrix<double>>> isotropic_matrices(
RefinementCase<dim>::isotropic_refinement);
isotropic_matrices.back().resize(
- GeometryInfo<dim>::n_children(RefinementCase<dim>(refinement_case)),
+ this->reference_cell().template n_children<dim>(
+ RefinementCase<dim>(refinement_case)),
FullMatrix<double>(this->n_dofs_per_cell(),
this->n_dofs_per_cell()));
if (dim == spacedim)
Assert(refinement_case != RefinementCase<dim>::no_refinement,
ExcMessage(
"Prolongation matrices are only available for refined cells!"));
- AssertIndexRange(child, GeometryInfo<dim>::n_children(refinement_case));
+ AssertIndexRange(
+ child, this->reference_cell().template n_children<dim>(refinement_case));
// initialization upon first request
if (this->prolongation[refinement_case - 1][child].n() == 0)
Assert(refinement_case != RefinementCase<dim>::no_refinement,
ExcMessage(
"Restriction matrices are only available for refined cells!"));
- AssertIndexRange(
- child, GeometryInfo<dim>::n_children(RefinementCase<dim>(refinement_case)));
+ AssertIndexRange(child,
+ this->reference_cell().template n_children<dim>(
+ RefinementCase<dim>(refinement_case)));
// initialization upon first request
if (this->restriction[refinement_case - 1][child].n() == 0)
Assert(refinement_case != RefinementCase<dim>::no_refinement,
ExcMessage(
"Prolongation matrices are only available for refined cells!"));
- AssertIndexRange(child, GeometryInfo<dim>::n_children(refinement_case));
+ AssertIndexRange(
+ child, this->reference_cell().template n_children<dim>(refinement_case));
// initialization upon first request
if (this->prolongation[refinement_case - 1][child].n() == 0)
Assert(refinement_case != RefinementCase<dim>::no_refinement,
ExcMessage(
"Prolongation matrices are only available for refined cells!"));
- AssertIndexRange(child, GeometryInfo<dim>::n_children(refinement_case));
+ AssertIndexRange(
+ child, this->reference_cell().template n_children<dim>(refinement_case));
// initialization upon first request
if (this->prolongation[refinement_case - 1][child].n() == 0)
Assert(refinement_case != RefinementCase<dim>::no_refinement,
ExcMessage(
"Restriction matrices are only available for refined cells!"));
- AssertIndexRange(child, GeometryInfo<dim>::n_children(refinement_case));
+ AssertIndexRange(
+ child, this->reference_cell().template n_children<dim>(refinement_case));
// initialization upon first request
if (this->restriction[refinement_case - 1][child].n() == 0)
if (q_dofs_per_cell < this->n_dofs_per_cell())
my_restriction(this->n_dofs_per_cell() - 1,
this->n_dofs_per_cell() - 1) =
- 1. / GeometryInfo<dim>::n_children(
+ 1. / this->reference_cell().template n_children<dim>(
RefinementCase<dim>(refinement_case));
}
++ref_case)
{
const unsigned int nc =
- GeometryInfo<dim>::n_children(RefinementCase<dim>(ref_case));
+ fe.reference_cell().template n_children<dim>(
+ RefinementCase<dim>(ref_case));
for (unsigned int i = 0; i < nc; ++i)
{
Assert(refinement_case != RefinementCase<dim>::no_refinement,
ExcMessage(
"Prolongation matrices are only available for refined cells!"));
- AssertIndexRange(child, GeometryInfo<dim>::n_children(refinement_case));
+ AssertIndexRange(
+ child, this->reference_cell().template n_children<dim>(refinement_case));
Assert(this->prolongation[refinement_case - 1][child].n() != 0,
ExcMessage("This prolongation matrix has not been computed yet!"));
Assert(refinement_case != RefinementCase<dim>::no_refinement,
ExcMessage(
"Restriction matrices are only available for refined cells!"));
- AssertIndexRange(child, GeometryInfo<dim>::n_children(refinement_case));
+ AssertIndexRange(
+ child, this->reference_cell().template n_children<dim>(refinement_case));
Assert(this->restriction[refinement_case - 1][child].n() != 0,
ExcMessage("This restriction matrix has not been computed yet!"));
ExcMessage(
"Prolongation matrices are only available for isotropic refinement!"));
- AssertIndexRange(child, GeometryInfo<dim>::n_children(refinement_case));
+ AssertIndexRange(
+ child, this->reference_cell().template n_children<dim>(refinement_case));
return this->prolongation[refinement_case - 1][child];
}
QProjector<dim>::project_to_all_faces(this->reference_cell(),
face_points);
- for (; current < GeometryInfo<dim>::faces_per_cell * n_face_points;
+ for (; current < this->reference_cell().n_faces() * n_face_points;
++current)
{
// Enter the support point into the vector
Assert(refinement_case != RefinementCase<dim>::no_refinement,
ExcMessage(
"Prolongation matrices are only available for refined cells!"));
- AssertIndexRange(child, GeometryInfo<dim>::n_children(refinement_case));
+ AssertIndexRange(
+ child, this->reference_cell().template n_children<dim>(refinement_case));
// initialization upon first request
if (this->prolongation[refinement_case - 1][child].n() == 0)
std::vector<std::vector<FullMatrix<double>>> isotropic_matrices(
RefinementCase<dim>::isotropic_refinement);
isotropic_matrices.back().resize(
- GeometryInfo<dim>::n_children(RefinementCase<dim>(refinement_case)),
+ this->reference_cell().template n_children<dim>(
+ RefinementCase<dim>(refinement_case)),
FullMatrix<double>(this->n_dofs_per_cell(),
this->n_dofs_per_cell()));
FETools::compute_embedding_matrices(*this, isotropic_matrices, true);
Assert(refinement_case != RefinementCase<dim>::no_refinement,
ExcMessage(
"Restriction matrices are only available for refined cells!"));
- AssertIndexRange(child, GeometryInfo<dim>::n_children(refinement_case));
+ AssertIndexRange(
+ child, this->reference_cell().template n_children<dim>(refinement_case));
// initialization upon first request
if (this->restriction[refinement_case - 1][child].n() == 0)
std::vector<std::vector<FullMatrix<double>>> isotropic_matrices(
RefinementCase<dim>::isotropic_refinement);
isotropic_matrices.back().resize(
- GeometryInfo<dim>::n_children(RefinementCase<dim>(refinement_case)),
+ this->reference_cell().template n_children<dim>(
+ RefinementCase<dim>(refinement_case)),
FullMatrix<double>(this->n_dofs_per_cell(),
this->n_dofs_per_cell()));
FETools::compute_projection_matrices(*this, isotropic_matrices, true);
RefinementCase<dim>::all_refinement_cases())
if (ref_case != RefinementCase<dim>::no_refinement)
{
- const unsigned int nc =
- GeometryInfo<dim>::n_children(RefinementCase<dim>(ref_case));
+ const unsigned int nc = this->reference_cell().template n_children<dim>(
+ RefinementCase<dim>(ref_case));
for (unsigned int i = 0; i < nc; ++i)
this->prolongation[ref_case - 1][i].reinit(n_dofs, n_dofs);
Assert(face_no < GeometryInfo<dim>::faces_per_cell, ExcInternalError());
std::fill(normal_vectors.begin(),
normal_vectors.end(),
- GeometryInfo<dim>::unit_normal_vector[face_no]);
+ ReferenceCells::get_hypercube<dim>()
+ .template face_normal_vector<dim>(face_no));
}
}