for (unsigned int d = 0; d < value_type::n_independent_components; ++d)
{
- const unsigned int component = first_tensor_component + d;
+ const unsigned int component = first_tensor_component + d;
- for (unsigned int i = 0; i < fe_values.fe->dofs_per_cell; ++i) {
- const bool is_primitive = (fe_values.fe->is_primitive() ||
- fe_values.fe->is_primitive(i));
+ for (unsigned int i = 0; i < fe_values.fe->dofs_per_cell; ++i)
+ {
+ const bool is_primitive = (fe_values.fe->is_primitive() ||
+ fe_values.fe->is_primitive(i));
- if (is_primitive == true)
- shape_function_data[i].is_nonzero_shape_function_component[d]
- = (component ==
- fe_values.fe->system_to_component_index(i).first);
- else
- shape_function_data[i].is_nonzero_shape_function_component[d]
- = (fe_values.fe->get_nonzero_components(i)[component]
- == true);
+ if (is_primitive == true)
+ shape_function_data[i].is_nonzero_shape_function_component[d]
+ = (component ==
+ fe_values.fe->system_to_component_index(i).first);
+ else
+ shape_function_data[i].is_nonzero_shape_function_component[d]
+ = (fe_values.fe->get_nonzero_components(i)[component]
+ == true);
- if (shape_function_data[i].is_nonzero_shape_function_component[d]
- == true) {
- if (is_primitive == true)
- shape_function_data[i].row_index[d]
- = shape_function_to_row_table[i];
- else
- shape_function_data[i].row_index[d]
- = (shape_function_to_row_table[i]
- +
- std::count(fe_values.fe->get_nonzero_components(i).begin(),
- fe_values.fe->get_nonzero_components(i).begin() +
- component,
- true));
- } else
- shape_function_data[i].row_index[d]
- = numbers::invalid_unsigned_int;
+ if (shape_function_data[i].is_nonzero_shape_function_component[d]
+ == true)
+ {
+ if (is_primitive == true)
+ shape_function_data[i].row_index[d]
+ = shape_function_to_row_table[i];
+ else
+ shape_function_data[i].row_index[d]
+ = (shape_function_to_row_table[i]
+ +
+ std::count(fe_values.fe->get_nonzero_components(i).begin(),
+ fe_values.fe->get_nonzero_components(i).begin() +
+ component,
+ true));
+ }
+ else
+ shape_function_data[i].row_index[d]
+ = numbers::invalid_unsigned_int;
+ }
}
- }
- for (unsigned int i = 0; i < fe_values.fe->dofs_per_cell; ++i) {
- unsigned int n_nonzero_components = 0;
- for (unsigned int d = 0; d < value_type::n_independent_components; ++d)
- if (shape_function_data[i].is_nonzero_shape_function_component[d]
- == true)
- ++n_nonzero_components;
-
- if (n_nonzero_components == 0)
- shape_function_data[i].single_nonzero_component = -2;
- else if (n_nonzero_components > 1)
- shape_function_data[i].single_nonzero_component = -1;
- else {
+ for (unsigned int i = 0; i < fe_values.fe->dofs_per_cell; ++i)
+ {
+ unsigned int n_nonzero_components = 0;
for (unsigned int d = 0; d < value_type::n_independent_components; ++d)
if (shape_function_data[i].is_nonzero_shape_function_component[d]
- == true) {
- shape_function_data[i].single_nonzero_component
- = shape_function_data[i].row_index[d];
- shape_function_data[i].single_nonzero_component_index
- = d;
- break;
+ == true)
+ ++n_nonzero_components;
+
+ if (n_nonzero_components == 0)
+ shape_function_data[i].single_nonzero_component = -2;
+ else if (n_nonzero_components > 1)
+ shape_function_data[i].single_nonzero_component = -1;
+ else
+ {
+ for (unsigned int d = 0; d < value_type::n_independent_components; ++d)
+ if (shape_function_data[i].is_nonzero_shape_function_component[d]
+ == true)
+ {
+ shape_function_data[i].single_nonzero_component
+ = shape_function_data[i].row_index[d];
+ shape_function_data[i].single_nonzero_component_index
+ = d;
+ break;
+ }
}
}
- }
}
std::vector< base_tensor_type > values_in_vector_form(values.size(), base_tensor_type());
for (unsigned int shape_function = 0;
- shape_function < fe_values.fe->dofs_per_cell; ++shape_function) {
- const int snc = shape_function_data[shape_function].single_nonzero_component;
+ shape_function < fe_values.fe->dofs_per_cell; ++shape_function)
+ {
+ const int snc = shape_function_data[shape_function].single_nonzero_component;
- if (snc == -2)
- // shape function is zero for the
- // selected components
- continue;
+ if (snc == -2)
+ // shape function is zero for the
+ // selected components
+ continue;
- const double value = dof_values(shape_function);
- if (value == 0.)
- continue;
+ const double value = dof_values(shape_function);
+ if (value == 0.)
+ continue;
- if (snc != -1) {
- const unsigned int comp =
- shape_function_data[shape_function].single_nonzero_component_index;
- const double * shape_value_ptr = &fe_values.shape_values(snc, 0);
- for (unsigned int q_point = 0; q_point < fe_values.n_quadrature_points; ++q_point)
- values_in_vector_form[q_point][comp] += value * *shape_value_ptr++;
- } else
- for (unsigned int d = 0; d < value_type::n_independent_components; ++d)
- if (shape_function_data[shape_function].is_nonzero_shape_function_component[d]) {
- const double * shape_value_ptr =
- &fe_values.shape_values(shape_function_data[shape_function].row_index[d], 0);
+ if (snc != -1)
+ {
+ const unsigned int comp =
+ shape_function_data[shape_function].single_nonzero_component_index;
+ const double * shape_value_ptr = &fe_values.shape_values(snc, 0);
for (unsigned int q_point = 0; q_point < fe_values.n_quadrature_points; ++q_point)
- values_in_vector_form[q_point][d] += value * *shape_value_ptr++;
+ values_in_vector_form[q_point][comp] += value * *shape_value_ptr++;
}
- }
+ else
+ {
+ for (unsigned int d = 0; d < value_type::n_independent_components; ++d)
+ if (shape_function_data[shape_function].is_nonzero_shape_function_component[d])
+ {
+ const double * shape_value_ptr =
+ &fe_values.shape_values(shape_function_data[shape_function].row_index[d], 0);
+ for (unsigned int q_point = 0; q_point < fe_values.n_quadrature_points; ++q_point)
+ values_in_vector_form[q_point][d] += value * *shape_value_ptr++;
+ }
+ }
+ }
// copy entries in std::vector to an array as there is no constructor
// for a second order tensor that take a std::vector
double values_array[value_type::n_independent_components];
- for (unsigned int q_point = 0; q_point < fe_values.n_quadrature_points; ++q_point) {
- for (unsigned int d = 0; d < value_type::n_independent_components; d++)
- values_array[d] = values_in_vector_form[q_point][d];
+ for (unsigned int q_point = 0; q_point < fe_values.n_quadrature_points; ++q_point)
+ {
+ for (unsigned int d = 0; d < value_type::n_independent_components; d++)
+ values_array[d] = values_in_vector_form[q_point][d];
- values[q_point] = dealii::SymmetricTensor<2, dim>(values_array);
- }
+ values[q_point] = dealii::SymmetricTensor<2, dim>(values_array);
+ }
}
std::fill(divergences.begin(), divergences.end(), divergence_type());
for (unsigned int shape_function = 0;
- shape_function < fe_values.fe->dofs_per_cell; ++shape_function) {
- const int snc = shape_function_data[shape_function].single_nonzero_component;
+ shape_function < fe_values.fe->dofs_per_cell; ++shape_function)
+ {
+ const int snc = shape_function_data[shape_function].single_nonzero_component;
- if (snc == -2)
- // shape function is zero for the
- // selected components
- continue;
+ if (snc == -2)
+ // shape function is zero for the
+ // selected components
+ continue;
- const double value = dof_values(shape_function);
- if (value == 0.)
- continue;
+ const double value = dof_values(shape_function);
+ if (value == 0.)
+ continue;
- if (snc != -1) {
- const unsigned int comp =
- shape_function_data[shape_function].single_nonzero_component_index;
-
- const Tensor < 1, spacedim> * shape_gradient_ptr =
- &fe_values.shape_gradients[snc][0];
- for (unsigned int q_point = 0; q_point < fe_values.n_quadrature_points;
- ++q_point, ++shape_gradient_ptr) {
- for (unsigned int j = 0; j < dim; ++j) {
- const unsigned int vector_component = value_type::unrolled_index (TableIndices<2>(comp,j));
- divergences[q_point][vector_component] += value * (*shape_gradient_ptr)[j];
- }
- }
- } else
- for (unsigned int d = 0; d < value_type::n_independent_components; ++d)
- if (shape_function_data[shape_function].is_nonzero_shape_function_component[d]) {
+ if (snc != -1)
+ {
const unsigned int comp =
shape_function_data[shape_function].single_nonzero_component_index;
const Tensor < 1, spacedim> * shape_gradient_ptr =
- &fe_values.shape_gradients[shape_function_data[shape_function].
- row_index[d]][0];
+ &fe_values.shape_gradients[snc][0];
for (unsigned int q_point = 0; q_point < fe_values.n_quadrature_points;
++q_point, ++shape_gradient_ptr) {
for (unsigned int j = 0; j < dim; ++j) {
const unsigned int vector_component = value_type::unrolled_index (TableIndices<2>(comp,j));
- divergences[q_point][vector_component] += value * (*shape_gradient_ptr++)[j];
+ divergences[q_point][vector_component] += value * (*shape_gradient_ptr)[j];
}
}
}
- }
+ else
+ {
+ for (unsigned int d = 0; d < value_type::n_independent_components; ++d)
+ if (shape_function_data[shape_function].is_nonzero_shape_function_component[d])
+ {
+ const unsigned int comp =
+ shape_function_data[shape_function].single_nonzero_component_index;
+
+ const Tensor < 1, spacedim> * shape_gradient_ptr =
+ &fe_values.shape_gradients[shape_function_data[shape_function].
+ row_index[d]][0];
+ for (unsigned int q_point = 0; q_point < fe_values.n_quadrature_points;
+ ++q_point, ++shape_gradient_ptr) {
+ for (unsigned int j = 0; j < dim; ++j)
+ {
+ const unsigned int vector_component = value_type::unrolled_index (TableIndices<2>(comp,j));
+ divergences[q_point][vector_component] += value * (*shape_gradient_ptr++)[j];
+ }
+ }
+ }
+ }
+ }
}
}
new (&vectors[component])
dealii::FEValuesViews::Vector<dim,spacedim>(fe_values,
component);
- }
+ }
- const unsigned int n_symmetric_second_order_tensors = (fe.n_components() >= 0.5*(dim*dim + dim) ?
- fe.n_components() - 0.5*(dim*dim + dim) + 1 :
- 0);
- symmetric_second_order_tensors.resize(n_symmetric_second_order_tensors);
- for (unsigned int component = 0; component < n_symmetric_second_order_tensors; ++component)
- {
- typedef dealii::FEValuesViews::SymmetricTensor<2, dim, spacedim> SymmetricTensorView;
- symmetric_second_order_tensors[component].SymmetricTensorView::~SymmetricTensorView();
- new (&symmetric_second_order_tensors[component])
- dealii::FEValuesViews::SymmetricTensor<2, dim, spacedim > (fe_values,
- component);
- }
+ const unsigned int n_symmetric_second_order_tensors = (fe.n_components() >= 0.5*(dim*dim + dim) ?
+ fe.n_components() - 0.5*(dim*dim + dim) + 1 :
+ 0);
+ symmetric_second_order_tensors.resize(n_symmetric_second_order_tensors);
+ for (unsigned int component = 0; component < n_symmetric_second_order_tensors; ++component)
+ {
+ typedef dealii::FEValuesViews::SymmetricTensor<2, dim, spacedim> SymmetricTensorView;
+ symmetric_second_order_tensors[component].SymmetricTensorView::~SymmetricTensorView();
+ new (&symmetric_second_order_tensors[component])
+ dealii::FEValuesViews::SymmetricTensor<2, dim, spacedim > (fe_values,
+ component);
+ }
}
}
}
template <int dim, int spacedim>
template <typename CI>
FEValuesBase<dim,spacedim>::CellIterator<CI>::CellIterator (const CI &cell)
- :
- cell(cell)
+ :
+ cell(cell)
{}
void
FEValuesBase<dim,spacedim>::CellIterator<CI>::
get_interpolated_dof_values (const Vector<double> &in,
- Vector<double> &out) const
+ Vector<double> &out) const
{
cell->get_interpolated_dof_values (in, out);
}
void
FEValuesBase<dim,spacedim>::CellIterator<CI>::
get_interpolated_dof_values (const Vector<float> &in,
- Vector<float> &out) const
+ Vector<float> &out) const
{
cell->get_interpolated_dof_values (in, out);
}
void
FEValuesBase<dim,spacedim>::CellIterator<CI>::
get_interpolated_dof_values (const Vector<long double> &in,
- Vector<long double> &out) const
+ Vector<long double> &out) const
{
cell->get_interpolated_dof_values (in, out);
}
void
FEValuesBase<dim,spacedim>::CellIterator<CI>::
get_interpolated_dof_values (const BlockVector<double> &in,
- Vector<double> &out) const
+ Vector<double> &out) const
{
cell->get_interpolated_dof_values (in, out);
}
void
FEValuesBase<dim,spacedim>::CellIterator<CI>::
get_interpolated_dof_values (const BlockVector<float> &in,
- Vector<float> &out) const
+ Vector<float> &out) const
{
cell->get_interpolated_dof_values (in, out);
}
void
FEValuesBase<dim,spacedim>::CellIterator<CI>::
get_interpolated_dof_values (const BlockVector<long double> &in,
- Vector<long double> &out) const
+ Vector<long double> &out) const
{
cell->get_interpolated_dof_values (in, out);
}
void
FEValuesBase<dim,spacedim>::CellIterator<CI>::
get_interpolated_dof_values (const PETScWrappers::Vector &in,
- Vector<PetscScalar> &out) const
+ Vector<PetscScalar> &out) const
{
cell->get_interpolated_dof_values (in, out);
}
void
FEValuesBase<dim,spacedim>::CellIterator<CI>::
get_interpolated_dof_values (const PETScWrappers::BlockVector &in,
- Vector<PetscScalar> &out) const
+ Vector<PetscScalar> &out) const
{
cell->get_interpolated_dof_values (in, out);
}
void
FEValuesBase<dim,spacedim>::CellIterator<CI>::
get_interpolated_dof_values (const TrilinosWrappers::Vector &in,
- Vector<TrilinosScalar> &out) const
+ Vector<TrilinosScalar> &out) const
{
cell->get_interpolated_dof_values (in, out);
}
void
FEValuesBase<dim,spacedim>::CellIterator<CI>::
get_interpolated_dof_values (const TrilinosWrappers::BlockVector &in,
- Vector<TrilinosScalar> &out) const
+ Vector<TrilinosScalar> &out) const
{
cell->get_interpolated_dof_values (in, out);
}
void
FEValuesBase<dim, spacedim>::CellIterator<CI>::
get_interpolated_dof_values (const TrilinosWrappers::MPI::Vector &in,
- Vector<TrilinosScalar> &out) const
+ Vector<TrilinosScalar> &out) const
{
cell->get_interpolated_dof_values (in, out);
}
void
FEValuesBase<dim, spacedim>::CellIterator<CI>::
get_interpolated_dof_values (const TrilinosWrappers::MPI::BlockVector &in,
- Vector<TrilinosScalar> &out) const
+ Vector<TrilinosScalar> &out) const
{
cell->get_interpolated_dof_values (in, out);
}
template <int dim, int spacedim>
FEValuesBase<dim,spacedim>::TriaCellIterator::
TriaCellIterator (const typename Triangulation<dim,spacedim>::cell_iterator &cell)
- :
- cell(cell)
+ :
+ cell(cell)
{}
void
FEValuesBase<dim,spacedim>::TriaCellIterator::
get_interpolated_dof_values (const Vector<double> &,
- Vector<double> &) const
+ Vector<double> &) const
{
Assert (false, ExcMessage (message_string));
}
void
FEValuesBase<dim,spacedim>::TriaCellIterator::
get_interpolated_dof_values (const Vector<float> &,
- Vector<float> &) const
+ Vector<float> &) const
{
Assert (false, ExcMessage (message_string));
}
void
FEValuesBase<dim,spacedim>::TriaCellIterator::
get_interpolated_dof_values (const Vector<long double> &,
- Vector<long double> &) const
+ Vector<long double> &) const
{
Assert (false, ExcMessage (message_string));
}
void
FEValuesBase<dim,spacedim>::TriaCellIterator::
get_interpolated_dof_values (const BlockVector<double> &,
- Vector<double> &) const
+ Vector<double> &) const
{
Assert (false, ExcMessage (message_string));
}
void
FEValuesBase<dim,spacedim>::TriaCellIterator::
get_interpolated_dof_values (const BlockVector<float> &,
- Vector<float> &) const
+ Vector<float> &) const
{
Assert (false, ExcMessage (message_string));
}
void
FEValuesBase<dim,spacedim>::TriaCellIterator::
get_interpolated_dof_values (const BlockVector<long double> &,
- Vector<long double> &) const
+ Vector<long double> &) const
{
Assert (false, ExcMessage (message_string));
}
void
FEValuesBase<dim,spacedim>::TriaCellIterator::
get_interpolated_dof_values (const PETScWrappers::Vector &,
- Vector<PetscScalar> &) const
+ Vector<PetscScalar> &) const
{
Assert (false, ExcMessage (message_string));
}
void
FEValuesBase<dim,spacedim>::TriaCellIterator::
get_interpolated_dof_values (const PETScWrappers::BlockVector &,
- Vector<PetscScalar> &) const
+ Vector<PetscScalar> &) const
{
Assert (false, ExcMessage (message_string));
}
void
FEValuesBase<dim,spacedim>::TriaCellIterator::
get_interpolated_dof_values (const TrilinosWrappers::Vector &,
- Vector<TrilinosScalar> &) const
+ Vector<TrilinosScalar> &) const
{
Assert (false, ExcMessage (message_string));
}
void
FEValuesBase<dim,spacedim>::TriaCellIterator::
get_interpolated_dof_values (const TrilinosWrappers::BlockVector &,
- Vector<TrilinosScalar> &) const
+ Vector<TrilinosScalar> &) const
{
Assert (false, ExcMessage (message_string));
}
void
FEValuesBase<dim, spacedim>::TriaCellIterator::
get_interpolated_dof_values (const TrilinosWrappers::MPI::Vector &,
- Vector<TrilinosScalar> &) const
+ Vector<TrilinosScalar> &) const
{
Assert (false, ExcMessage (message_string));
}
void
FEValuesBase<dim,spacedim>::TriaCellIterator::
get_interpolated_dof_values (const TrilinosWrappers::MPI::BlockVector &,
- Vector<TrilinosScalar> &) const
+ Vector<TrilinosScalar> &) const
{
Assert (false, ExcMessage (message_string));
}
if (flags & update_gradients)
this->shape_gradients.resize (n_nonzero_shape_components,
- std::vector<Tensor<1,spacedim> > (n_quadrature_points));
+ std::vector<Tensor<1,spacedim> > (n_quadrature_points));
if (flags & update_hessians)
this->shape_hessians.resize (n_nonzero_shape_components,
typedef FEValuesBase<dim,spacedim> FEVB;
Assert (static_cast<const FiniteElementData<dim>&>(*this->fe) ==
- static_cast<const FiniteElementData<dim>&>(cell->get_fe()),
+ static_cast<const FiniteElementData<dim>&>(cell->get_fe()),
typename FEVB::ExcFEDontMatch());
check_cell_similarity(cell);
- // set new cell. auto_ptr will take
- // care that old object gets
- // destroyed and also that this
- // object gets destroyed in the
- // destruction of this class
+ // set new cell. auto_ptr will take
+ // care that old object gets
+ // destroyed and also that this
+ // object gets destroyed in the
+ // destruction of this class
this->present_cell.reset
(new typename FEValuesBase<dim,spacedim>::template
CellIterator<typename DoFHandler<dim,spacedim>::cell_iterator> (cell));
- // this was the part of the work
- // that is dependent on the actual
- // data type of the iterator. now
- // pass on to the function doing
- // the real work.
+ // this was the part of the work
+ // that is dependent on the actual
+ // data type of the iterator. now
+ // pass on to the function doing
+ // the real work.
do_reinit ();
}
check_cell_similarity(cell);
- // set new cell. auto_ptr will take
- // care that old object gets
- // destroyed and also that this
- // object gets destroyed in the
- // destruction of this class
+ // set new cell. auto_ptr will take
+ // care that old object gets
+ // destroyed and also that this
+ // object gets destroyed in the
+ // destruction of this class
this->present_cell.reset
(new typename FEValuesBase<dim,spacedim>::template
CellIterator<typename hp::DoFHandler<dim,spacedim>::cell_iterator> (cell));
- // this was the part of the work
- // that is dependent on the actual
- // data type of the iterator. now
- // pass on to the function doing
- // the real work.
+ // this was the part of the work
+ // that is dependent on the actual
+ // data type of the iterator. now
+ // pass on to the function doing
+ // the real work.
do_reinit ();
}
check_cell_similarity(cell);
- // set new cell. auto_ptr will take
- // care that old object gets
- // destroyed and also that this
- // object gets destroyed in the
- // destruction of this class
+ // set new cell. auto_ptr will take
+ // care that old object gets
+ // destroyed and also that this
+ // object gets destroyed in the
+ // destruction of this class
this->present_cell.reset
(new typename FEValuesBase<dim,spacedim>::template
CellIterator<typename MGDoFHandler<dim,spacedim>::cell_iterator> (cell));
- // this was the part of the work
- // that is dependent on the actual
- // data type of the iterator. now
- // pass on to the function doing
- // the real work.
+ // this was the part of the work
+ // that is dependent on the actual
+ // data type of the iterator. now
+ // pass on to the function doing
+ // the real work.
do_reinit ();
}
template <int dim, int spacedim>
void FEValues<dim,spacedim>::reinit (const typename Triangulation<dim,spacedim>::cell_iterator &cell)
{
- // no FE in this cell, so no assertion
- // necessary here
+ // no FE in this cell, so no assertion
+ // necessary here
check_cell_similarity(cell);
- // set new cell. auto_ptr will take
- // care that old object gets
- // destroyed and also that this
- // object gets destroyed in the
- // destruction of this class
+ // set new cell. auto_ptr will take
+ // care that old object gets
+ // destroyed and also that this
+ // object gets destroyed in the
+ // destruction of this class
this->present_cell.reset
(new typename FEValuesBase<dim,spacedim>::TriaCellIterator (cell));
- // this was the part of the work
- // that is dependent on the actual
- // data type of the iterator. now
- // pass on to the function doing
- // the real work.
+ // this was the part of the work
+ // that is dependent on the actual
+ // data type of the iterator. now
+ // pass on to the function doing
+ // the real work.
do_reinit ();
}
update_default,
mapping,
fe),
- quadrature(quadrature)
+ quadrature(quadrature)
{}
Assert (face_no < GeometryInfo<dim>::faces_per_cell,
ExcIndexRange (face_no, 0, GeometryInfo<dim>::faces_per_cell));
- // set new cell. auto_ptr will take
- // care that old object gets
- // destroyed and also that this
- // object gets destroyed in the
- // destruction of this class
+ // set new cell. auto_ptr will take
+ // care that old object gets
+ // destroyed and also that this
+ // object gets destroyed in the
+ // destruction of this class
this->present_cell.reset
(new typename FEValuesBase<dim,spacedim>::template
CellIterator<typename DoFHandler<dim,spacedim>::cell_iterator> (cell));
- // this was the part of the work
- // that is dependent on the actual
- // data type of the iterator. now
- // pass on to the function doing
- // the real work.
+ // this was the part of the work
+ // that is dependent on the actual
+ // data type of the iterator. now
+ // pass on to the function doing
+ // the real work.
do_reinit (face_no);
}
Assert (face_no < GeometryInfo<dim>::faces_per_cell,
ExcIndexRange (face_no, 0, GeometryInfo<dim>::faces_per_cell));
- // set new cell. auto_ptr will take
- // care that old object gets
- // destroyed and also that this
- // object gets destroyed in the
- // destruction of this class
+ // set new cell. auto_ptr will take
+ // care that old object gets
+ // destroyed and also that this
+ // object gets destroyed in the
+ // destruction of this class
this->present_cell.reset
(new typename FEValuesBase<dim,spacedim>::template
CellIterator<typename hp::DoFHandler<dim,spacedim>::cell_iterator> (cell));
- // this was the part of the work
- // that is dependent on the actual
- // data type of the iterator. now
- // pass on to the function doing
- // the real work.
+ // this was the part of the work
+ // that is dependent on the actual
+ // data type of the iterator. now
+ // pass on to the function doing
+ // the real work.
do_reinit (face_no);
}
Assert (face_no < GeometryInfo<dim>::faces_per_cell,
ExcIndexRange (face_no, 0, GeometryInfo<dim>::faces_per_cell));
- // set new cell. auto_ptr will take
- // care that old object gets
- // destroyed and also that this
- // object gets destroyed in the
- // destruction of this class
+ // set new cell. auto_ptr will take
+ // care that old object gets
+ // destroyed and also that this
+ // object gets destroyed in the
+ // destruction of this class
this->present_cell.reset
(new typename FEValuesBase<dim,spacedim>::template
CellIterator<typename MGDoFHandler<dim,spacedim>::cell_iterator> (cell));
- // this was the part of the work
- // that is dependent on the actual
- // data type of the iterator. now
- // pass on to the function doing
- // the real work.
+ // this was the part of the work
+ // that is dependent on the actual
+ // data type of the iterator. now
+ // pass on to the function doing
+ // the real work.
do_reinit (face_no);
}
Assert (face_no < GeometryInfo<dim>::faces_per_cell,
ExcIndexRange (face_no, 0, GeometryInfo<dim>::faces_per_cell));
- // set new cell. auto_ptr will take
- // care that old object gets
- // destroyed and also that this
- // object gets destroyed in the
- // destruction of this class
+ // set new cell. auto_ptr will take
+ // care that old object gets
+ // destroyed and also that this
+ // object gets destroyed in the
+ // destruction of this class
this->present_cell.reset
(new typename FEValuesBase<dim,spacedim>::TriaCellIterator (cell));
- // this was the part of the work
- // that is dependent on the actual
- // data type of the iterator. now
- // pass on to the function doing
- // the real work.
+ // this was the part of the work
+ // that is dependent on the actual
+ // data type of the iterator. now
+ // pass on to the function doing
+ // the real work.
do_reinit (face_no);
}
ExcIndexRange (subface_no, 0, cell->face(face_no)->number_of_children()));
Assert (cell->has_children() == false,
- ExcMessage ("You can't use subface data for cells that are "
- "already refined. Iterate over their children "
- "instead in these cases."));
-
- // set new cell. auto_ptr will take
- // care that old object gets
- // destroyed and also that this
- // object gets destroyed in the
- // destruction of this class
+ ExcMessage ("You can't use subface data for cells that are "
+ "already refined. Iterate over their children "
+ "instead in these cases."));
+
+ // set new cell. auto_ptr will take
+ // care that old object gets
+ // destroyed and also that this
+ // object gets destroyed in the
+ // destruction of this class
this->present_cell.reset
(new typename FEValuesBase<dim,spacedim>::template
CellIterator<typename DoFHandler<dim,spacedim>::cell_iterator> (cell));
- // this was the part of the work
- // that is dependent on the actual
- // data type of the iterator. now
- // pass on to the function doing
- // the real work.
+ // this was the part of the work
+ // that is dependent on the actual
+ // data type of the iterator. now
+ // pass on to the function doing
+ // the real work.
do_reinit (face_no, subface_no);
}
Assert (subface_no < cell->face(face_no)->number_of_children(),
ExcIndexRange (subface_no, 0, cell->face(face_no)->number_of_children()));
Assert (cell->has_children() == false,
- ExcMessage ("You can't use subface data for cells that are "
- "already refined. Iterate over their children "
- "instead in these cases."));
-
- // set new cell. auto_ptr will take
- // care that old object gets
- // destroyed and also that this
- // object gets destroyed in the
- // destruction of this class
+ ExcMessage ("You can't use subface data for cells that are "
+ "already refined. Iterate over their children "
+ "instead in these cases."));
+
+ // set new cell. auto_ptr will take
+ // care that old object gets
+ // destroyed and also that this
+ // object gets destroyed in the
+ // destruction of this class
this->present_cell.reset
(new typename FEValuesBase<dim,spacedim>::template
CellIterator<typename hp::DoFHandler<dim,spacedim>::cell_iterator> (cell));
- // this was the part of the work
- // that is dependent on the actual
- // data type of the iterator. now
- // pass on to the function doing
- // the real work.
+ // this was the part of the work
+ // that is dependent on the actual
+ // data type of the iterator. now
+ // pass on to the function doing
+ // the real work.
do_reinit (face_no, subface_no);
}
Assert (subface_no < cell->face(face_no)->number_of_children(),
ExcIndexRange (subface_no, 0, cell->face(face_no)->number_of_children()));
Assert (cell->has_children() == false,
- ExcMessage ("You can't use subface data for cells that are "
- "already refined. Iterate over their children "
- "instead in these cases."));
-
- // set new cell. auto_ptr will take
- // care that old object gets
- // destroyed and also that this
- // object gets destroyed in the
- // destruction of this class
+ ExcMessage ("You can't use subface data for cells that are "
+ "already refined. Iterate over their children "
+ "instead in these cases."));
+
+ // set new cell. auto_ptr will take
+ // care that old object gets
+ // destroyed and also that this
+ // object gets destroyed in the
+ // destruction of this class
this->present_cell.reset
(new typename FEValuesBase<dim,spacedim>::template
CellIterator<typename MGDoFHandler<dim,spacedim>::cell_iterator> (cell));
- // this was the part of the work
- // that is dependent on the actual
- // data type of the iterator. now
- // pass on to the function doing
- // the real work.
+ // this was the part of the work
+ // that is dependent on the actual
+ // data type of the iterator. now
+ // pass on to the function doing
+ // the real work.
do_reinit (face_no, subface_no);
}
Assert (subface_no < cell->face(face_no)->n_children(),
ExcIndexRange (subface_no, 0, cell->face(face_no)->n_children()));
- // set new cell. auto_ptr will take
- // care that old object gets
- // destroyed and also that this
- // object gets destroyed in the
- // destruction of this class
+ // set new cell. auto_ptr will take
+ // care that old object gets
+ // destroyed and also that this
+ // object gets destroyed in the
+ // destruction of this class
this->present_cell.reset
(new typename FEValuesBase<dim,spacedim>::TriaCellIterator (cell));
- // this was the part of the work
- // that is dependent on the actual
- // data type of the iterator. now
- // pass on to the function doing
- // the real work.
+ // this was the part of the work
+ // that is dependent on the actual
+ // data type of the iterator. now
+ // pass on to the function doing
+ // the real work.
do_reinit (face_no, subface_no);
}
template <int dim, int spacedim>
void FESubfaceValues<dim,spacedim>::do_reinit (const unsigned int face_no,
- const unsigned int subface_no)
+ const unsigned int subface_no)
{
// first of all, set the present_face_index
// (if available)
// now ask the mapping and the finite element
// to do the actual work
this->get_mapping().fill_fe_subface_values(*this->present_cell,
- face_no, subface_no,
+ face_no, subface_no,
this->quadrature,
*this->mapping_data,
this->quadrature_points,
this->get_fe().fill_fe_subface_values(this->get_mapping(),
*this->present_cell,
- face_no, subface_no,
+ face_no, subface_no,
this->quadrature,
*this->mapping_data,
*this->fe_data,