been deprecated and that were previously already marked as
deprecated (i.e., they would have yielded warnings by the compiler whenever
you tried to use them). Specifically, these are:
- - TimeDependent::end_sweep (with an argument)
- - PointValueHistory::mark_locations
+ - TimeDependent::end_sweep (with an argument).
+ - PointValueHistory::mark_locations.
- The DataPostprocessor::compute_derived_quantities_scalar and
DataPostprocessor::compute_derived_quantities_vector functions without
evaluation points. If you have
functions of same name but with the evaluation point argument instead.
- The constructors of classes MGSmoother, MGSmootherRelaxation and
MGSmootherPrecondition that take a VectorMemory object.
+ - Deprecated variants of MeshWorker::loop and MeshWorker::integration_loop.
</ol>
<li> Removed: The config.h file no longer exports HAVE_* definitions.
#endif
}
- template<int dim, int spacedim, class DOFINFO, class INFOBOX, class ASSEMBLER, class ITERATOR>
- void loop(ITERATOR begin,
- typename identity<ITERATOR>::type end,
- DOFINFO &dinfo,
- INFOBOX &info,
- const std_cxx11::function<void (DOFINFO &, typename INFOBOX::CellInfo &)> &cell_worker,
- const std_cxx11::function<void (DOFINFO &, typename INFOBOX::CellInfo &)> &boundary_worker,
- const std_cxx11::function<void (DOFINFO &, DOFINFO &,
- typename INFOBOX::CellInfo &,
- typename INFOBOX::CellInfo &)> &face_worker,
- ASSEMBLER &assembler,
- bool cells_first,
- bool unique_faces_only = true) DEAL_II_DEPRECATED;
-
- template<int dim, int spacedim, class DOFINFO, class INFOBOX, class ASSEMBLER, class ITERATOR>
- void loop(ITERATOR begin,
- typename identity<ITERATOR>::type end,
- DOFINFO &dinfo,
- INFOBOX &info,
- const std_cxx11::function<void (DOFINFO &, typename INFOBOX::CellInfo &)> &cell_worker,
- const std_cxx11::function<void (DOFINFO &, typename INFOBOX::CellInfo &)> &boundary_worker,
- const std_cxx11::function<void (DOFINFO &, DOFINFO &,
- typename INFOBOX::CellInfo &,
- typename INFOBOX::CellInfo &)> &face_worker,
- ASSEMBLER &assembler,
- bool cells_first,
- bool unique_faces_only)
- {
- LoopControl lctrl;
- lctrl.cells_first = cells_first;
- lctrl.own_faces = (unique_faces_only)
- ? LoopControl::one
- : LoopControl::both;
-
- loop<dim,spacedim>(begin, end, dinfo, info, cell_worker, boundary_worker, face_worker, assembler, lctrl);
- }
-
- /**
- * @deprecated The simplification in this loop is insignificant. Therefore,
- * it is recommended to use loop() instead.
- *
- * Simplified interface for loop() if specialized for integration.
- *
- * @ingroup MeshWorker
- * @author Guido Kanschat, 2009
- */
- template<int dim, int spacedim, class ITERATOR, class ASSEMBLER>
- void integration_loop(ITERATOR begin,
- typename identity<ITERATOR>::type end,
- DoFInfo<dim, spacedim> &dof_info,
- IntegrationInfoBox<dim, spacedim> &box,
- const std_cxx11::function<void (DoFInfo<dim>&, IntegrationInfo<dim, spacedim>&)> &cell_worker,
- const std_cxx11::function<void (DoFInfo<dim>&, IntegrationInfo<dim, spacedim>&)> &boundary_worker,
- const std_cxx11::function<void (DoFInfo<dim> &, DoFInfo<dim> &,
- IntegrationInfo<dim, spacedim> &,
- IntegrationInfo<dim, spacedim> &)> &face_worker,
- ASSEMBLER &assembler,
- bool cells_first) DEAL_II_DEPRECATED;
-
-
- template<int dim, int spacedim, class ITERATOR, class ASSEMBLER>
- void integration_loop(ITERATOR begin,
- typename identity<ITERATOR>::type end,
- DoFInfo<dim, spacedim> &dof_info,
- IntegrationInfoBox<dim, spacedim> &box,
- const std_cxx11::function<void (DoFInfo<dim>&, IntegrationInfo<dim, spacedim>&)> &cell_worker,
- const std_cxx11::function<void (DoFInfo<dim>&, IntegrationInfo<dim, spacedim>&)> &boundary_worker,
- const std_cxx11::function<void (DoFInfo<dim> &, DoFInfo<dim> &,
- IntegrationInfo<dim, spacedim> &,
- IntegrationInfo<dim, spacedim> &)> &face_worker,
- ASSEMBLER &assembler,
- bool cells_first)
- {
- LoopControl lctrl;
-
- loop<dim, spacedim>
- (begin, end,
- dof_info,
- box,
- cell_worker,
- boundary_worker,
- face_worker,
- assembler,
- cells_first,
- lctrl);
- }
-
/**
* Simplified interface for loop() if specialized for integration, using the
* @author Guido Kanschat, 2009
*/
template<int dim, int spacedim, class ITERATOR, class ASSEMBLER>
- void integration_loop(ITERATOR begin,
- typename identity<ITERATOR>::type end,
- DoFInfo<dim, spacedim> &dof_info,
- IntegrationInfoBox<dim, spacedim> &box,
- const LocalIntegrator<dim, spacedim> &integrator,
- ASSEMBLER &assembler,
- bool cells_first)
- DEAL_II_DEPRECATED;
-
- template<int dim, int spacedim, class ITERATOR, class ASSEMBLER>
- void integration_loop(ITERATOR begin,
- typename identity<ITERATOR>::type end,
- DoFInfo<dim, spacedim> &dof_info,
- IntegrationInfoBox<dim, spacedim> &box,
- const LocalIntegrator<dim, spacedim> &integrator,
- ASSEMBLER &assembler,
- bool cells_first)
- {
- std_cxx11::function<void (DoFInfo<dim>&, IntegrationInfo<dim, spacedim>&)> cell_worker;
- std_cxx11::function<void (DoFInfo<dim>&, IntegrationInfo<dim, spacedim>&)> boundary_worker;
- std_cxx11::function<void (DoFInfo<dim> &, DoFInfo<dim> &,
- IntegrationInfo<dim, spacedim> &,
- IntegrationInfo<dim, spacedim> &)> face_worker;
- if (integrator.use_cell)
- cell_worker = std_cxx11::bind(&LocalIntegrator<dim, spacedim>::cell, &integrator, std_cxx11::_1, std_cxx11::_2);
- if (integrator.use_boundary)
- boundary_worker = std_cxx11::bind(&LocalIntegrator<dim, spacedim>::boundary, &integrator, std_cxx11::_1, std_cxx11::_2);
- if (integrator.use_face)
- face_worker = std_cxx11::bind(&LocalIntegrator<dim, spacedim>::face, &integrator, std_cxx11::_1, std_cxx11::_2, std_cxx11::_3, std_cxx11::_4);
-
- loop<dim, spacedim>
- (begin, end,
- dof_info,
- box,
- cell_worker,
- boundary_worker,
- face_worker,
- assembler,
- cells_first);
- }
-
- /**
- * As above but using LoopControl
- */
- template<int dim, int spacedim, class ITERATOR, class ASSEMBLER>
void integration_loop(ITERATOR begin,
typename identity<ITERATOR>::type end,
DoFInfo<dim, spacedim> &dof_info,
MeshWorker::Assembler::CellsAndFaces<double> assembler;
assembler.initialize(out_data, true);
+ MeshWorker::LoopControl lctrl;
+ lctrl.cells_first = true;
+ lctrl.own_faces = MeshWorker::LoopControl::one;
+
MeshWorker::loop<dim, dim, MeshWorker::DoFInfo<dim>, EmptyInfoBox>
(dofs.begin_active(), dofs.end(),
dof_info, info_box,
std_cxx11::bind (&Local<dim>::cell, local, std_cxx11::_1, std_cxx11::_2),
std_cxx11::bind (&Local<dim>::bdry, local, std_cxx11::_1, std_cxx11::_2),
std_cxx11::bind (&Local<dim>::face, local, std_cxx11::_1, std_cxx11::_2, std_cxx11::_3, std_cxx11::_4),
- assembler, true);
+ assembler, lctrl);
deallog << " Results cells";
for (unsigned int i=0; i<n_functionals; ++i)
std_cxx11::bind (&Local<dim>::cell, local, std_cxx11::_1, std_cxx11::_2),
std_cxx11::bind (&Local<dim>::bdry, local, std_cxx11::_1, std_cxx11::_2),
std_cxx11::bind (&Local<dim>::face, local, std_cxx11::_1, std_cxx11::_2, std_cxx11::_3, std_cxx11::_4),
- assembler, true);
+ assembler, lctrl);
deallog << "MGResults cells";
for (unsigned int i=0; i<n_functionals; ++i)
MeshWorker::Assembler::Functional<double> assembler;
assembler.initialize(n_functionals);
+ MeshWorker::LoopControl lctrl;
+ lctrl.cells_first = true;
+ lctrl.own_faces = MeshWorker::LoopControl::one;
+
MeshWorker::loop<dim, dim, MeshWorker::DoFInfo<dim>, EmptyInfoBox>
(dofs.begin_active(), dofs.end(),
dof_info, info_box,
std_cxx11::bind (&Local<dim>::cell, local, std_cxx11::_1, std_cxx11::_2),
std_cxx11::bind (&Local<dim>::bdry, local, std_cxx11::_1, std_cxx11::_2),
std_cxx11::bind (&Local<dim>::face, local, std_cxx11::_1, std_cxx11::_2, std_cxx11::_3, std_cxx11::_4),
- assembler, true);
+ assembler, lctrl);
deallog << " Results";
for (unsigned int i=0; i<n_functionals; ++i)
std_cxx11::bind (&Local<dim>::cell, local, std_cxx11::_1, std_cxx11::_2),
std_cxx11::bind (&Local<dim>::bdry, local, std_cxx11::_1, std_cxx11::_2),
std_cxx11::bind (&Local<dim>::face, local, std_cxx11::_1, std_cxx11::_2, std_cxx11::_3, std_cxx11::_4),
- assembler, true);
+ assembler, lctrl);
deallog << "MGResults";
for (unsigned int i=0; i<n_functionals; ++i)
assembler;
assembler.initialize(matrix, v);
+ MeshWorker::LoopControl lctrl;
+ lctrl.cells_first = true;
+ lctrl.own_faces = MeshWorker::LoopControl::one;
MeshWorker::loop<dim, dim, MeshWorker::DoFInfo<dim>, MeshWorker::IntegrationInfoBox<dim> >
(dofs.begin_active(), dofs.end(),
dof_info, info_box,
std_cxx11::bind (&Local<dim>::cell, local, std_cxx11::_1, std_cxx11::_2),
std_cxx11::bind (&Local<dim>::bdry, local, std_cxx11::_1, std_cxx11::_2),
std_cxx11::bind (&Local<dim>::face, local, std_cxx11::_1, std_cxx11::_2, std_cxx11::_3, std_cxx11::_4),
- assembler, true);
+ assembler, lctrl);
for (unsigned int i=0; i<v.size(); ++i)
deallog << ' ' << std::setprecision(3) << v(i);
data.add(rhs, "Residual");
assembler.initialize(data);
+ MeshWorker::LoopControl lctrl;
+ lctrl.cells_first = true;
+ lctrl.own_faces = MeshWorker::LoopControl::one;
+
MeshWorker::loop<dim, dim, MeshWorker::DoFInfo<dim>, MeshWorker::IntegrationInfoBox<dim> >
(dof_handler.begin_active(), dof_handler.end(),
dof_info, info_box,
this, std_cxx11::_1, std_cxx11::_2),
std_cxx11::bind(&AdvectionProblem<dim>::integrate_face_term,
this, std_cxx11::_1, std_cxx11::_2, std_cxx11::_3, std_cxx11::_4),
- assembler, true);
+ assembler, lctrl);
}//assemble_system
MeshWorker::Assembler::MatrixSimple<SparseMatrix<double> > assembler;
assembler.initialize(matrix);
+ MeshWorker::LoopControl lctrl;
+ lctrl.cells_first = true;
+ lctrl.own_faces = MeshWorker::LoopControl::one;
MeshWorker::loop<dim, dim, MeshWorker::DoFInfo<dim>, MeshWorker::IntegrationInfoBox<dim> >
(dofs.begin_active(), dofs.end(),
dof_info, info_box,
std_cxx11::bind (&Local<dim>::cell, local, std_cxx11::_1, std_cxx11::_2),
std_cxx11::bind (&Local<dim>::bdry, local, std_cxx11::_1, std_cxx11::_2),
std_cxx11::bind (&Local<dim>::face, local, std_cxx11::_1, std_cxx11::_2, std_cxx11::_3, std_cxx11::_4),
- assembler, true);
+ assembler, lctrl);
//matrix.print_formatted(deallog.get_file_stream(), 0, false, 4);
matrix.print(deallog.get_file_stream(), false, false);
FilteredIterator<typename DoFHandler<dim>::active_cell_iterator>
end(IteratorFilters::LocallyOwnedCell(), dofs.end());
+ MeshWorker::LoopControl lctrl;
+ lctrl.cells_first = true;
+ lctrl.own_faces = MeshWorker::LoopControl::one;
MeshWorker::loop<dim, dim, MeshWorker::DoFInfo<dim>, MeshWorker::IntegrationInfoBox<dim> >
(cell, end,
dof_info, info_box,
std_cxx11::bind (&Local<dim>::cell, local, std_cxx11::_1, std_cxx11::_2),
std_cxx11::bind (&Local<dim>::bdry, local, std_cxx11::_1, std_cxx11::_2),
std_cxx11::bind (&Local<dim>::face, local, std_cxx11::_1, std_cxx11::_2, std_cxx11::_3, std_cxx11::_4),
- assembler, true);
+ assembler, lctrl);
matrix.compress(VectorOperation::add);
matrix.print(deallog.get_file_stream());