// Author: Wolfgang Bangerth, 2007
-#include <algorithm>
+#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <map>
// @sect3{Include files}
-// The most fundamental class in the library is the Triangulation class, which
-// is declared here:
-#include <deal.II/grid/tria.h>
// We need the following two includes for loops over cells and/or faces:
#include <deal.II/grid/tria_accessor.h>
#include <deal.II/grid/tria_iterator.h>
#include <deal.II/grid/grid_generator.h>
// Output of grids in various graphics formats:
#include <deal.II/grid/grid_out.h>
-
// This is needed for C++ output:
#include <iostream>
#include <fstream>
*/
-// As usual, the program starts with a rather long list of include files which
-// you are probably already used to by now:
-#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/function.h>
#include <deal.II/base/logstream.h>
#include <deal.II/base/table_handler.h>
#include <deal.II/fe/mapping_q.h>
#include <deal.II/numerics/vector_tools.h>
#include <deal.II/numerics/matrix_tools.h>
-
// Just this one is new: it declares a class
// DynamicSparsityPattern, which we will use and explain
// further down below.
#include <deal.II/lac/dynamic_sparsity_pattern.h>
-
// We will make use of the std::find algorithm of the C++ standard library, so
// we have to include the following file for its declaration:
#include <algorithm>
*/
-// The first few files have already been covered in previous examples and will
-// thus not be further commented on:
-#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/function.h>
#include <deal.II/lac/vector.h>
#include <deal.II/lac/dynamic_sparsity_pattern.h>
#include <deal.II/lac/precondition_block.h>
// We are going to use gradients as refinement indicator.
#include <deal.II/numerics/derivative_approximation.h>
-
// Here come the new include files for using the MeshWorker framework. The first
// contains the class MeshWorker::DoFInfo, which provides local integrators with
// a mapping between local and global degrees of freedom. It stores the results
#include <deal.II/meshworker/integration_info.h>
#include <deal.II/meshworker/simple.h>
#include <deal.II/meshworker/loop.h>
-
// Like in all programs, we finish this section by including the needed C++
// headers and declaring we want to use objects in the dealii namespace without
// prefix.
#include <deal.II/numerics/matrix_tools.h>
#include <deal.II/numerics/data_out.h>
#include <deal.II/numerics/error_estimator.h>
-
#include <iostream>
#include <fstream>
#include <list>
#include <algorithm>
#include <numeric>
+#include "deal.II/base/types.h"
+
// The last step is as in all previous programs:
namespace Step14
{
// @sect3{Include files}
-// Again, the first few include files are already known, so we won't comment
-// on them:
-#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/function.h>
#include <deal.II/base/logstream.h>
#include <deal.II/base/utilities.h>
-
#include <deal.II/lac/affine_constraints.h>
#include <deal.II/lac/vector.h>
#include <deal.II/lac/full_matrix.h>
#include <deal.II/lac/sparse_matrix.h>
#include <deal.II/lac/solver_cg.h>
#include <deal.II/lac/precondition.h>
-
#include <deal.II/grid/tria.h>
#include <deal.II/grid/tria_accessor.h>
#include <deal.II/grid/tria_iterator.h>
#include <deal.II/grid/grid_generator.h>
#include <deal.II/grid/grid_refinement.h>
-
#include <deal.II/dofs/dof_accessor.h>
#include <deal.II/dofs/dof_tools.h>
-
#include <deal.II/fe/fe_q.h>
#include <deal.II/fe/fe_values.h>
-
#include <deal.II/numerics/vector_tools.h>
#include <deal.II/numerics/data_out.h>
#include <deal.II/numerics/error_estimator.h>
-
// These, now, are the include necessary for the multilevel methods. The first
// one declares how to handle Dirichlet boundary conditions on each of the
// levels of the multigrid method. For the actual description of the degrees
#include <deal.II/multigrid/mg_coarse.h>
#include <deal.II/multigrid/mg_smoother.h>
#include <deal.II/multigrid/mg_matrix.h>
-
// We will be using MeshWorker::mesh_loop to loop over the cells, so include it
// here:
#include <deal.II/meshworker/mesh_loop.h>
-
-
// This is C++:
#include <iostream>
#include <fstream>
// @sect3{Include files}
-// Again, the first few include files are already known, so we won't comment
-// on them:
-#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/function.h>
#include <deal.II/base/logstream.h>
#include <deal.II/base/utilities.h>
-
#include <deal.II/lac/affine_constraints.h>
#include <deal.II/lac/vector.h>
#include <deal.II/lac/full_matrix.h>
#include <deal.II/lac/sparse_matrix.h>
#include <deal.II/lac/solver_cg.h>
#include <deal.II/lac/precondition.h>
-
#include <deal.II/grid/tria.h>
#include <deal.II/grid/tria_accessor.h>
#include <deal.II/grid/tria_iterator.h>
#include <deal.II/grid/grid_generator.h>
#include <deal.II/grid/grid_refinement.h>
-
#include <deal.II/dofs/dof_accessor.h>
#include <deal.II/dofs/dof_tools.h>
-
#include <deal.II/fe/fe_q.h>
#include <deal.II/fe/fe_values.h>
-
#include <deal.II/numerics/vector_tools.h>
#include <deal.II/numerics/data_out.h>
#include <deal.II/numerics/error_estimator.h>
-
// These, now, are the include necessary for the multilevel methods. The first
// one declares how to handle Dirichlet boundary conditions on each of the
// levels of the multigrid method. For the actual description of the degrees
#include <deal.II/multigrid/mg_coarse.h>
#include <deal.II/multigrid/mg_smoother.h>
#include <deal.II/multigrid/mg_matrix.h>
-
// Finally we include the MeshWorker framework. This framework through its
// function loop() and integration_loop(), automates loops over cells and
// assembling of data into vectors, matrices, etc. It obeys constraints
#include <deal.II/meshworker/simple.h>
#include <deal.II/meshworker/output.h>
#include <deal.II/meshworker/loop.h>
-
// In order to save effort, we use the pre-implemented Laplacian found in
#include <deal.II/integrators/laplace.h>
#include <deal.II/integrators/l2.h>
-
// This is C++:
#include <iostream>
#include <fstream>
*/
-// The first few includes are just like in the previous program, so do not
-// require additional comments:
-#include <deal.II/grid/tria.h>
#include <deal.II/grid/tria_accessor.h>
#include <deal.II/grid/tria_iterator.h>
#include <deal.II/grid/grid_generator.h>
#include <deal.II/grid/manifold_lib.h>
-
// However, the next file is new. We need this include file for the
// association of degrees of freedom ("DoF"s) to vertices, lines, and cells:
#include <deal.II/dofs/dof_handler.h>
-
// The following include contains the description of the bilinear finite
// element, including the facts that it has one degree of freedom on each
// vertex of the triangulation, but none on faces and none in the interior of
// We will also need to use an intermediate sparsity pattern structure, which
// is found in this file:
#include <deal.II/lac/dynamic_sparsity_pattern.h>
-
// We will want to use a special algorithm to renumber degrees of freedom. It
// is declared here:
#include <deal.II/dofs/dof_renumbering.h>
-
// And this is again needed for C++ output:
#include <fstream>
// @sect3{Include files}
-// We start with the usual assortment of include files that we've seen in so
-// many of the previous tests:
-#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/function.h>
#include <deal.II/base/logstream.h>
-
#include <deal.II/lac/vector.h>
#include <deal.II/lac/full_matrix.h>
#include <deal.II/lac/sparse_matrix.h>
#include <deal.II/lac/solver_cg.h>
#include <deal.II/lac/precondition.h>
#include <deal.II/lac/affine_constraints.h>
-
#include <deal.II/grid/tria.h>
#include <deal.II/grid/grid_generator.h>
#include <deal.II/grid/tria_accessor.h>
#include <deal.II/grid/tria_iterator.h>
-
#include <deal.II/dofs/dof_handler.h>
#include <deal.II/dofs/dof_accessor.h>
#include <deal.II/dofs/dof_tools.h>
-
#include <deal.II/fe/fe_q.h>
#include <deal.II/fe/fe_values.h>
-
#include <deal.II/numerics/data_out.h>
-
-#include <fstream>
-#include <iostream>
-
// Here are the only three include files of some new interest: The first one
// is already used, for example, for the
// VectorTools::interpolate_boundary_values and
// code. However, we're too lazy to do that here, so simply use a library
// function:
#include <deal.II/numerics/vector_tools.h>
-
// In a very similar vein, we are also too lazy to write the code to assemble
// mass and Laplace matrices, although it would have only taken copying the
// relevant code from any number of previous tutorial programs. Rather, we
// therefore use the MatrixCreator::create_mass_matrix and
// MatrixCreator::create_laplace_matrix functions. They are declared here:
#include <deal.II/numerics/matrix_tools.h>
-
// Finally, here is an include file that contains all sorts of tool functions
// that one sometimes needs. In particular, we need the
// Utilities::int_to_string class that, given an integer argument, returns a
// denotes the number of the time step and always consists of three digits
// even if we are still in the single or double digit time steps.
#include <deal.II/base/utilities.h>
+#include <deal.II/base/config.h>
+#include <fstream>
+#include <iostream>
// The last step is as in all previous programs:
namespace Step23
#include <deal.II/numerics/vector_tools.h>
#include <deal.II/numerics/matrix_tools.h>
#include <deal.II/numerics/data_out.h>
-
+#include <deal.II/base/config.h>
#include <fstream>
#include <iostream>
*/
-// The program starts with the usual include files, all of which you should
-// have seen before by now:
-#include <deal.II/base/utilities.h>
#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/function.h>
#include <deal.II/base/logstream.h>
#include <deal.II/numerics/error_estimator.h>
#include <deal.II/numerics/solution_transfer.h>
#include <deal.II/numerics/matrix_tools.h>
-
#include <fstream>
#include <iostream>
// The following header files are unchanged from step-7 and have been
// discussed before:
-#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/function.h>
#include <deal.II/base/logstream.h>
-
#include <deal.II/lac/vector.h>
#include <deal.II/lac/full_matrix.h>
#include <deal.II/lac/sparse_matrix.h>
#include <deal.II/lac/dynamic_sparsity_pattern.h>
-
#include <deal.II/grid/tria.h>
#include <deal.II/grid/grid_generator.h>
#include <deal.II/grid/tria_accessor.h>
#include <deal.II/grid/tria_iterator.h>
#include <deal.II/grid/manifold_lib.h>
-
#include <deal.II/dofs/dof_handler.h>
#include <deal.II/dofs/dof_accessor.h>
#include <deal.II/dofs/dof_tools.h>
-
#include <deal.II/fe/fe_q.h>
#include <deal.II/fe/fe_values.h>
-
#include <deal.II/numerics/matrix_tools.h>
#include <deal.II/numerics/data_out.h>
#include <deal.II/numerics/vector_tools.h>
-
-#include <iostream>
-#include <fstream>
-
// This header file contains the necessary declarations for the
// ParameterHandler class that we will use to read our parameters from a
// configuration file:
#include <deal.II/base/parameter_handler.h>
-
// For solving the linear system, we'll use the sparse LU-decomposition
// provided by UMFPACK (see the SparseDirectUMFPACK class), for which the
// following header file is needed. Note that in order to compile this
// tutorial program, the deal.II-library needs to be built with UMFPACK
// support, which is enabled by default:
#include <deal.II/lac/sparse_direct.h>
-
// The FESystem class allows us to stack several FE-objects to one compound,
// vector-valued finite element field. The necessary declarations for this
// class are provided in this header file:
#include <deal.II/fe/fe_system.h>
-
// Finally, include the header file that declares the Timer class that we will
// use to determine how much time each of the operations of our program takes:
#include <deal.II/base/timer.h>
+#include <iostream>
+#include <fstream>
// As the last step at the beginning of this program, we put everything that
// is in this program into its namespace and, within it, make everything that
// @sect3{Many new include files}
-// These include files are already known to you. They declare the classes
-// which handle triangulations and enumeration of degrees of freedom:
-#include <deal.II/grid/tria.h>
#include <deal.II/dofs/dof_handler.h>
// And this is the file in which the functions are declared that create grids:
#include <deal.II/grid/grid_generator.h>
-
// The next three files contain classes which are needed for loops over all
// cells and to get the information from the cell objects. The first two have
// been used before to get geometric information from cells; the last one is
#include <deal.II/grid/tria_accessor.h>
#include <deal.II/grid/tria_iterator.h>
#include <deal.II/dofs/dof_accessor.h>
-
// This file contains the description of the Lagrange interpolation finite
// element:
#include <deal.II/fe/fe_q.h>
-
// And this file is needed for the creation of sparsity patterns of sparse
// matrices, as shown in previous examples:
#include <deal.II/dofs/dof_tools.h>
-
// The next two files are needed for assembling the matrix using quadrature on
// each cell. The classes declared in them will be explained below:
#include <deal.II/fe/fe_values.h>
#include <deal.II/base/quadrature_lib.h>
-
// The following three include files we need for the treatment of boundary
// values:
#include <deal.II/base/function.h>
#include <deal.II/numerics/vector_tools.h>
#include <deal.II/numerics/matrix_tools.h>
-
// We're now almost to the end. The second to last group of include files is
// for the linear algebra which we employ to solve the system of equations
// arising from the finite element discretization of the Laplace equation. We
#include <deal.II/lac/dynamic_sparsity_pattern.h>
#include <deal.II/lac/solver_cg.h>
#include <deal.II/lac/precondition.h>
-
// Finally, this is for output to a file and to the console:
#include <deal.II/numerics/data_out.h>
#include <fstream>
// @sect3{Include files}
-// The program starts with including a bunch of include files that we will use
-// in the various parts of the program. Most of them have been discussed in
-// previous tutorials already:
-#include <deal.II/base/smartpointer.h>
#include <deal.II/base/convergence_table.h>
#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/quadrature_selector.h>
#include <deal.II/base/parsed_function.h>
#include <deal.II/base/utilities.h>
-
#include <deal.II/lac/full_matrix.h>
#include <deal.II/lac/vector.h>
#include <deal.II/lac/solver_control.h>
#include <deal.II/lac/solver_gmres.h>
#include <deal.II/lac/precondition.h>
-
#include <deal.II/grid/tria.h>
#include <deal.II/grid/tria_iterator.h>
#include <deal.II/grid/tria_accessor.h>
#include <deal.II/grid/grid_in.h>
#include <deal.II/grid/grid_out.h>
#include <deal.II/grid/manifold_lib.h>
-
#include <deal.II/dofs/dof_handler.h>
#include <deal.II/dofs/dof_accessor.h>
#include <deal.II/dofs/dof_tools.h>
-
#include <deal.II/fe/fe_q.h>
#include <deal.II/fe/fe_values.h>
#include <deal.II/fe/mapping_q.h>
-
#include <deal.II/numerics/data_out.h>
#include <deal.II/numerics/vector_tools.h>
-
// And here are a few C++ standard header files that we will need:
#include <cmath>
#include <iostream>
*/
-// First include the necessary files from the deal.II library.
-#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/function.h>
#include <deal.II/base/timer.h>
-
#include <deal.II/lac/affine_constraints.h>
#include <deal.II/lac/solver_cg.h>
#include <deal.II/lac/la_parallel_vector.h>
#include <deal.II/lac/precondition.h>
-
#include <deal.II/fe/fe_q.h>
-
#include <deal.II/grid/tria.h>
#include <deal.II/grid/grid_generator.h>
-
#include <deal.II/multigrid/multigrid.h>
#include <deal.II/multigrid/mg_transfer_matrix_free.h>
#include <deal.II/multigrid/mg_tools.h>
#include <deal.II/multigrid/mg_coarse.h>
#include <deal.II/multigrid/mg_smoother.h>
#include <deal.II/multigrid/mg_matrix.h>
-
#include <deal.II/numerics/data_out.h>
#include <deal.II/numerics/vector_tools.h>
-
// This includes the data structures for the efficient implementation of
// matrix-free methods or more generic finite element operators with the class
// MatrixFree.
#include <deal.II/matrix_free/matrix_free.h>
#include <deal.II/matrix_free/operators.h>
#include <deal.II/matrix_free/fe_evaluation.h>
-
#include <iostream>
#include <fstream>
+#include "deal.II/base/config.h"
+
namespace Step37
{
// @sect3{Include files}
-// The first few (many?) include files have already been used in the previous
-// example, so we will not explain their meaning here again.
-#include <deal.II/grid/tria.h>
#include <deal.II/dofs/dof_handler.h>
#include <deal.II/grid/grid_generator.h>
#include <deal.II/grid/tria_accessor.h>
#include <deal.II/lac/dynamic_sparsity_pattern.h>
#include <deal.II/lac/solver_cg.h>
#include <deal.II/lac/precondition.h>
-
#include <deal.II/numerics/data_out.h>
-#include <fstream>
-#include <iostream>
-
// This is new, however: in the previous example we got some unwanted output
// from the linear solvers. If we want to suppress it, we have to include this
// file and add a single line somewhere to the program (see the main()
// function below for that):
#include <deal.II/base/logstream.h>
+#include <fstream>
+#include <iostream>
// The final step, as in previous programs, is to import all the deal.II class
// and function names into the global namespace:
#include <deal.II/base/work_stream.h>
#include <deal.II/dofs/dof_renumbering.h>
#include <deal.II/dofs/dof_tools.h>
-
// This header gives us the functionality to store
// data at quadrature points
#include <deal.II/base/quadrature_point_data.h>
-
#include <deal.II/grid/grid_generator.h>
#include <deal.II/grid/grid_tools.h>
#include <deal.II/grid/grid_in.h>
#include <deal.II/grid/tria.h>
-
#include <deal.II/fe/fe_dgp_monomial.h>
#include <deal.II/fe/fe_q.h>
#include <deal.II/fe/fe_system.h>
#include <deal.II/fe/fe_tools.h>
#include <deal.II/fe/fe_values.h>
#include <deal.II/fe/mapping_q_eulerian.h>
-
#include <deal.II/lac/block_sparse_matrix.h>
#include <deal.II/lac/block_vector.h>
#include <deal.II/lac/dynamic_sparsity_pattern.h>
#include <deal.II/lac/solver_selector.h>
#include <deal.II/lac/sparse_direct.h>
#include <deal.II/lac/affine_constraints.h>
-
// Here are the headers necessary to use the LinearOperator class.
// These are also all conveniently packaged into a single
// header file, namely <deal.II/lac/linear_operator_tools.h>
// of transparency.
#include <deal.II/lac/linear_operator.h>
#include <deal.II/lac/packaged_operation.h>
-
#include <deal.II/numerics/data_out.h>
#include <deal.II/numerics/vector_tools.h>
-
// Defined in these two headers are some operations that are pertinent to
// finite strain elasticity. The first will help us compute some kinematic
// quantities, and the second provides some stanard tensor definitions.
#include <deal.II/physics/elasticity/kinematics.h>
#include <deal.II/physics/elasticity/standard_tensors.h>
-
#include <iostream>
#include <fstream>
+#include "deal.II/base/types.h"
+
// We then stick everything that relates to this tutorial program into a
// namespace of its own, and import all the deal.II function and class names
// quadrature points:
struct PerTaskData_K;
struct ScratchData_K;
-
struct PerTaskData_RHS;
struct ScratchData_RHS;
-
struct PerTaskData_SC;
struct ScratchData_SC;
-
struct PerTaskData_UQPH;
struct ScratchData_UQPH;
#include <deal.II/base/logstream.h>
#include <deal.II/base/function.h>
#include <deal.II/base/utilities.h>
-
#include <deal.II/lac/vector.h>
#include <deal.II/lac/full_matrix.h>
#include <deal.II/lac/sparse_matrix.h>
#include <deal.II/lac/sparse_direct.h>
#include <deal.II/lac/affine_constraints.h>
-
#include <deal.II/grid/tria.h>
#include <deal.II/grid/grid_generator.h>
#include <deal.II/grid/tria_accessor.h>
#include <deal.II/grid/tria_iterator.h>
#include <deal.II/grid/grid_refinement.h>
-
#include <deal.II/dofs/dof_tools.h>
#include <deal.II/dofs/dof_accessor.h>
-
#include <deal.II/fe/fe_q.h>
#include <deal.II/fe/fe_nothing.h>
#include <deal.II/fe/fe_system.h>
#include <deal.II/fe/fe_values.h>
-
#include <deal.II/hp/dof_handler.h>
#include <deal.II/hp/fe_collection.h>
#include <deal.II/hp/fe_values.h>
-
#include <deal.II/numerics/vector_tools.h>
#include <deal.II/numerics/data_out.h>
#include <deal.II/numerics/error_estimator.h>
-
+#include <deal.II/base/config.h>
#include <iostream>
#include <fstream>
*/
-// The necessary files from the deal.II library.
-#include <deal.II/base/logstream.h>
#include <deal.II/base/utilities.h>
#include <deal.II/base/function.h>
#include <deal.II/base/conditional_ostream.h>
#include <deal.II/numerics/vector_tools.h>
#include <deal.II/numerics/data_out.h>
#include <deal.II/distributed/tria.h>
-
// This includes the data structures for the efficient implementation of
// matrix-free methods.
#include <deal.II/lac/la_parallel_vector.h>
#include <deal.II/matrix_free/matrix_free.h>
#include <deal.II/matrix_free/fe_evaluation.h>
-
+#include <deal.II/base/config.h>
#include <fstream>
#include <iostream>
#include <iomanip>
// @sect3{Include files}
-#include <deal.II/grid/tria.h>
#include <deal.II/grid/tria_accessor.h>
#include <deal.II/grid/tria_iterator.h>
#include <deal.II/grid/grid_generator.h>
#include <deal.II/grid/manifold_lib.h>
#include <deal.II/grid/grid_out.h>
#include <deal.II/grid/grid_in.h>
-
#include <iostream>
#include <fstream>
-
#include <map>
using namespace dealii;
// deal.II library files and some C++ header files.
#include <deal.II/base/function.h>
#include <deal.II/base/quadrature_lib.h>
-
#include <deal.II/grid/grid_generator.h>
#include <deal.II/grid/tria_accessor.h>
#include <deal.II/grid/tria_iterator.h>
#include <deal.II/grid/tria.h>
#include <deal.II/grid/grid_out.h>
-
#include <deal.II/dofs/dof_handler.h>
#include <deal.II/dofs/dof_accessor.h>
#include <deal.II/dofs/dof_tools.h>
-
#include <deal.II/fe/fe_q.h>
#include <deal.II/fe/fe_values.h>
-
#include <deal.II/lac/affine_constraints.h>
#include <deal.II/lac/sparse_direct.h>
-
#include <deal.II/numerics/vector_tools.h>
#include <deal.II/numerics/data_out.h>
-
+// This is the only include file that is new: It includes all the Runge-Kutta
+// methods.
+#include <deal.II/base/time_stepping.h>
+#include <deal.II/base/config.h>
#include <fstream>
#include <iostream>
#include <cmath>
#include <map>
-// This is the only include file that is new: It includes all the Runge-Kutta
-// methods.
-#include <deal.II/base/time_stepping.h>
+namespace dealii
+{
+ template <typename number>
+ class Vector;
+} // namespace dealii
// The next step is like in all previous tutorial programs: We put everything
* D. Sarah Stamps, MIT, 2014
*/
-// Let us start with the include files we need here. Obviously, we need the
-// ones that describe the triangulation (<code>tria.h</code>), and that allow
-// us to create and output triangulations (<code>grid_generator.h</code> and
-// <code>grid_out.h</code>). Furthermore, we need the header file that
-// declares the Manifold and ChartManifold classes that we will need to
-// describe the geometry (<code>manifold.h</code>). We will then also need
-// the GridTools::transform() function from the last of the following header
-// files; the purpose for this function will become discussed at the point
-// where we use it.
-#include <deal.II/grid/tria.h>
#include <deal.II/grid/grid_generator.h>
#include <deal.II/grid/grid_out.h>
#include <deal.II/grid/manifold.h>
#include <deal.II/grid/grid_tools.h>
-
// The remainder of the include files relate to reading the topography data.
// As explained in the introduction, we will read it from a file and then use
// the Functions::InterpolatedUniformGridData class that is declared in the
// read from is stored as gzip compressed data and we make use of some
// BOOST-provided functionality to read directly from gzipped data.
#include <deal.II/base/function_lib.h>
-
#include <boost/iostreams/filtering_stream.hpp>
#include <boost/iostreams/filter/gzip.hpp>
#include <boost/iostreams/device/file.hpp>
-
// The last include file is required because we will be using a feature that is
// not part of the C++11 standard. As some of the C++14 features are very
// useful, we provide their implementation in an internal namespace, if the
// compiler does not support them:
#include <deal.II/base/std_cxx14/memory.h>
-
#include <iostream>
#include <fstream>
#include <deal.II/base/function.h>
#include <deal.II/base/logstream.h>
#include <deal.II/base/timer.h>
-
#include <deal.II/lac/affine_constraints.h>
#include <deal.II/lac/full_matrix.h>
#include <deal.II/lac/solver_cg.h>
#include <deal.II/lac/la_parallel_vector.h>
#include <deal.II/lac/precondition.h>
#include <deal.II/lac/tensor_product_matrix.h>
-
#include <deal.II/fe/fe_dgq.h>
#include <deal.II/fe/fe_tools.h>
-
#include <deal.II/grid/tria.h>
#include <deal.II/grid/tria_accessor.h>
#include <deal.II/grid/tria_iterator.h>
#include <deal.II/grid/grid_generator.h>
#include <deal.II/grid/grid_tools.h>
-
#include <deal.II/multigrid/multigrid.h>
#include <deal.II/multigrid/mg_transfer_matrix_free.h>
#include <deal.II/multigrid/mg_tools.h>
#include <deal.II/multigrid/mg_coarse.h>
#include <deal.II/multigrid/mg_smoother.h>
#include <deal.II/multigrid/mg_matrix.h>
-
#include <deal.II/numerics/vector_tools.h>
-
#include <deal.II/matrix_free/matrix_free.h>
#include <deal.II/matrix_free/fe_evaluation.h>
-
+#include <deal.II/base/config.h>
#include <iostream>
#include <fstream>
+#include "deal.II/base/types.h"
+
namespace Step59
{
*/
-// Just as in previous examples, we have to include several files of which the
-// meaning has already been discussed:
-#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/function.h>
#include <deal.II/base/logstream.h>
#include <deal.II/lac/vector.h>
#include <deal.II/numerics/data_out.h>
#include <deal.II/fe/fe_q.h>
#include <deal.II/grid/grid_out.h>
-
// The following two files provide classes and information for multithreaded
// programs. In the first one, the classes and functions are declared which we
// need to do assembly in parallel (i.e. the
// how many threads to start in parallel.
#include <deal.II/base/work_stream.h>
#include <deal.II/base/multithread_info.h>
-
// The next new include file declares a base class <code>TensorFunction</code>
// not unlike the <code>Function</code> class, but with the difference that
// TensorFunction::value returns a Tensor instead of a scalar.
#include <deal.II/base/tensor_function.h>
-
#include <deal.II/numerics/error_estimator.h>
-
// This is C++, as we want to write some output to disk:
#include <fstream>
#include <iostream>
#ifndef dealii_time_step_control_h
#define dealii_time_step_control_h
+#include "deal.II/base/config.h"
+
#include <deal.II/base/smartpointer.h>
#include <deal.II/base/subscriptor.h>
#include <deal.II/numerics/data_component_interpretation.h>
+#include <cstddef>
#include <limits>
#include <string>
#include <tuple>
# include "TECIO.h"
#endif
+#include "deal.II/base/types.h"
+
#include <ostream>
DEAL_II_NAMESPACE_OPEN
#include <deal.II/base/config.h>
+#include <cstddef>
#include <exception>
#include <ostream>
#include <string>
// https://stackoverflow.com/questions/13842468/comma-in-c-c-macro
template <typename T>
struct argument_type;
+
template <typename T, typename U>
struct argument_type<T(U)>
{
#include <deal.II/base/exceptions.h>
#include <deal.II/base/point.h>
+#include <cstddef>
#include <cstdint>
vertex_to_face{{{{0, 2}}, {{1, 2}}, {{0, 3}}, {{1, 3}}}};
};
+
template <>
struct Initializers<3>
{
#include <deal.II/base/config.h>
+#include "deal.II/base/types.h"
#include <deal.II/base/exceptions.h>
#include <deal.II/base/thread_management.h>
#include <deal.II/base/utilities.h>
#include <boost/serialization/vector.hpp>
#include <algorithm>
+#include <cstddef>
#include <iterator>
#include <vector>
# include <deal.II/base/config.h>
+# include "deal.II/base/types.h"
# include <deal.II/base/exceptions.h>
# include <deal.II/base/types.h>
+# include <cstddef>
+
DEAL_II_NAMESPACE_OPEN
/**
#ifndef dealii_parsed_function_h
#define dealii_parsed_function_h
+#include "deal.II/base/config.h"
+
#include <deal.II/base/auto_derivative_function.h>
#include <deal.II/base/function_parser.h>
#include <deal.II/base/parameter_handler.h>
* component you want to have evaluated; it defaults to zero, i.e. the
* first component.
*/
+
virtual double
value(const Point<dim> &p, const unsigned int component = 0) const override;
#include <deal.II/base/config.h>
+#include "deal.II/base/types.h"
#include <deal.II/base/array_view.h>
#include <deal.II/base/index_set.h>
#include <deal.II/base/memory_consumption.h>
#include <deal.II/lac/vector.h>
#include <deal.II/lac/vector_operation.h>
+#include <cstddef>
#include <limits>
#ifndef dealii_polynomials_adini_h
#define dealii_polynomials_adini_h
+#include "deal.II/base/config.h"
+
#include <deal.II/base/point.h>
#include <deal.II/base/table.h>
#include <deal.II/base/tensor.h>
#define dealii_polynomials_bernstein_h
+#include "deal.II/base/config.h"
+
#include <deal.II/base/polynomial.h>
#include <fstream>
return this->compute_index(n);
}
+
DEAL_II_NAMESPACE_CLOSE
#endif
* A variable storing the index of the current polynomial in the range of
* intervals.
*/
+
unsigned int interval;
/**
#include <cmath>
+namespace dealii
+{
+ template <typename Number>
+ class VectorizedArray;
+ template <typename T>
+ struct EnableIfScalar;
+} // namespace dealii
+
// Note:
// The flag DEAL_II_COMPILER_VECTORIZATION_LEVEL is essentially constructed
// according to the following scheme
#ifndef dealii_block_info_h
#define dealii_block_info_h
+#include "deal.II/base/config.h"
+
+#include "deal.II/base/types.h"
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/subscriptor.h>
#include <deal.II/lac/block_indices.h>
+#include <cstddef>
#include <iomanip>
DEAL_II_NAMESPACE_OPEN
template <int dim, int spacedim>
class DoFHandler;
+
namespace hp
{
template <int dim, int spacedim>
#include <deal.II/base/config.h>
+#include "deal.II/base/types.h"
+
#include <deal.II/dofs/dof_handler.h>
#include <deal.II/grid/tria_accessor.h>
class Vector;
template <typename number>
class AffineConstraints;
-
template <typename Accessor>
class TriaRawIterator;
-
template <int, int>
class FiniteElement;
namespace DoFHandlerImplementation
{
struct Implementation;
+
namespace Policy
{
struct Implementation;
#include <deal.II/base/config.h>
+#include "deal.II/base/types.h"
#include <deal.II/base/exceptions.h>
#include <deal.II/base/memory_consumption.h>
+#include <cstddef>
#include <iosfwd>
#include <vector>
#include <deal.II/base/config.h>
+#include "deal.II/base/types.h"
#include <deal.II/base/exceptions.h>
#include <deal.II/base/memory_consumption.h>
+#include <cstddef>
#include <iosfwd>
#include <vector>
#include <array>
#include <cmath>
+#include <cstddef>
#include <memory>
DEAL_II_NAMESPACE_OPEN
#include <deal.II/base/config.h>
+#include "deal.II/base/types.h"
#include <deal.II/base/exceptions.h>
#include <deal.II/base/index_set.h>
#include <deal.II/base/subscriptor.h>
#include <boost/range/iterator_range.hpp>
+#include <cstddef>
#include <set>
#include <utility>
#include <vector>
#include <deal.II/base/config.h>
+#include "deal.II/base/types.h"
#include <deal.II/base/subscriptor.h>
#include <deal.II/base/table.h>
#define dealii_block_sparse_matrix_ez_h
-// TODO: Derive BlockSparseMatrixEZ from BlockMatrixBase, like all the
-// other block matrices as well; this would allow to instantiate a few
-// functions with this template argument as well (in particular
-// AffineConstraints::distribute_local_to_global)
-
#include <deal.II/base/config.h>
+#include "deal.II/base/types.h"
#include <deal.II/base/exceptions.h>
#include <deal.II/base/smartpointer.h>
#include <deal.II/base/subscriptor.h>
#include <deal.II/lac/block_indices.h>
#include <deal.II/lac/sparse_matrix_ez.h>
+// TODO: Derive BlockSparseMatrixEZ from BlockMatrixBase, like all the
+// other block matrices as well; this would allow to instantiate a few
+// functions with this template argument as well (in particular
+// AffineConstraints::distribute_local_to_global)
+
+
DEAL_II_NAMESPACE_OPEN
template <typename Number>
#include <deal.II/base/config.h>
+#include "deal.II/base/types.h"
#include <deal.II/base/exceptions.h>
#include <deal.II/base/subscriptor.h>
#include <deal.II/base/vector_slice.h>
#include <deal.II/lac/sparsity_pattern.h>
+#include <cstddef>
#include <iostream>
#include <vector>
#include <deal.II/base/config.h>
+#include "deal.II/base/types.h"
#include <deal.II/base/memory_space.h>
#include <deal.II/base/mpi.h>
#include <deal.II/base/numbers.h>
#include <deal.II/lac/vector_space_vector.h>
#include <deal.II/lac/vector_type_traits.h>
+#include <cstddef>
#include <iomanip>
#include <memory>
# include <deal.II/base/config.h>
+# include "deal.II/base/types.h"
# include <deal.II/base/data_out_base.h>
# include <deal.II/lac/block_sparse_matrix.h>
#include <deal.II/base/config.h>
+#include "deal.II/base/types.h"
#include <deal.II/base/index_set.h>
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/mpi.h>
#include <deal.II/lac/vector_operation.h>
+#include <cstddef>
#include <cstdlib>
#include <cstring>
#include <iomanip>
namespace LinearAlgebra
{
class CommunicationPatternBase;
+
namespace distributed
{
template <typename, typename>
#include <deal.II/base/config.h>
+#include "deal.II/base/types.h"
#include <deal.II/base/exceptions.h>
#include <deal.II/base/subscriptor.h>
#ifndef dealii_matrix_free_evaluation_selector_h
#define dealii_matrix_free_evaluation_selector_h
+#include "deal.II/base/config.h"
+
#include <deal.II/matrix_free/evaluation_kernels.h>
DEAL_II_NAMESPACE_OPEN
+#include "deal.II/base/config.h"
+
#include <deal.II/base/point.h>
#include <deal.II/base/subscriptor.h>
#include <deal.II/base/tensor.h>
* to the vector of points, and generates some helper functions for nanoflann.
*/
struct PointCloudAdaptor
+
{
/**
* An alias used by nanoflann.
#ifndef dealii_particles_particle_h
#define dealii_particles_particle_h
+#include "deal.II/base/config.h"
+
#include <deal.II/base/array_view.h>
#include <deal.II/base/point.h>
#include <deal.II/base/types.h>
#include <deal.II/particles/property_pool.h>
+#include <cstddef>
+
DEAL_II_NAMESPACE_OPEN
namespace types
#ifndef dealii_particles_particle_accessor_h
#define dealii_particles_particle_accessor_h
+#include "deal.II/base/config.h"
+
#include <deal.II/base/array_view.h>
#include <deal.II/grid/tria.h>
#include <deal.II/particles/particle.h>
+#include <cstddef>
+
DEAL_II_NAMESPACE_OPEN
namespace Particles
#include <deal.II/particles/particle_accessor.h>
+#include <cstddef>
+
DEAL_II_NAMESPACE_OPEN
namespace Particles
#ifndef dealii_particles_property_pool_h
#define dealii_particles_property_pool_h
+#include "deal.II/base/config.h"
+
#include <deal.II/base/array_view.h>
+#include <cstddef>
+
DEAL_II_NAMESPACE_OPEN
namespace Particles
#define dealii_elasticity_kinematics_h
+#include "deal.II/base/config.h"
+
#include <deal.II/base/numbers.h>
#include <deal.II/base/symmetric_tensor.h>
#include <deal.II/base/tensor.h>
#ifndef dealii_transformations_h
#define dealii_transformations_h
+#include "deal.II/base/config.h"
+
#include <deal.II/base/point.h>
#include <deal.II/base/symmetric_tensor.h>
#include <deal.II/base/tensor.h>
// ---------------------------------------------------------------------
-#include <deal.II/algorithms/newton.templates.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/algorithms/operator.templates.h>
#include <deal.II/algorithms/theta_timestepping.templates.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/exceptions.h"
#include <deal.II/base/auto_derivative_function.h>
#include <deal.II/base/point.h>
return vol;
}
+#include "deal.II/base/config.h"
+
#include "bounding_box.inst"
+
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/conditional_ostream.h>
DEAL_II_NAMESPACE_OPEN
#include <deal.II/base/config.h>
+#include "deal.II/base/numbers.h"
+
#include <cmath>
#include <complex>
#include <limits>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/convergence_table.h>
#include <cmath>
#include <memory>
#include <set>
#include <sstream>
-
// we use uint32_t and uint8_t below, which are declared here:
+#include "deal.II/base/config.h"
+
#include <cstdint>
#ifdef DEAL_II_WITH_ZLIB
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/event.h>
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/exceptions.h>
#include <deal.II/base/logstream.h>
#include <deal.II/base/mpi.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/flow_function.h>
#include <deal.II/base/point.h>
#include <deal.II/base/tensor.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/function.templates.h>
-
DEAL_II_NAMESPACE_OPEN
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "function.inst"
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/function_cspline.h>
#include <deal.II/base/point.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/function_derivative.h>
#include <deal.II/base/point.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/function_bessel.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/function_lib.h>
#include <deal.II/base/numbers.h>
#include <deal.II/base/point.h>
#include <cmath>
+namespace dealii
+{
+ namespace Functions
+ {
+ template <int dim>
+ class Bessel1;
+ } // namespace Functions
+} // namespace dealii
+
DEAL_II_NAMESPACE_OPEN
template class SquareFunction<1>;
template class SquareFunction<2>;
template class SquareFunction<3>;
- template class Q1WedgeFunction<1>;
- template class Q1WedgeFunction<2>;
- template class Q1WedgeFunction<3>;
- template class PillowFunction<1>;
- template class PillowFunction<2>;
- template class PillowFunction<3>;
- template class CosineFunction<1>;
- template class CosineFunction<2>;
- template class CosineFunction<3>;
- template class CosineGradFunction<1>;
- template class CosineGradFunction<2>;
- template class CosineGradFunction<3>;
- template class ExpFunction<1>;
- template class ExpFunction<2>;
- template class ExpFunction<3>;
- template class JumpFunction<1>;
- template class JumpFunction<2>;
- template class JumpFunction<3>;
- template class FourierCosineFunction<1>;
- template class FourierCosineFunction<2>;
- template class FourierCosineFunction<3>;
- template class FourierSineFunction<1>;
- template class FourierSineFunction<2>;
- template class FourierSineFunction<3>;
- template class FourierCosineSum<1>;
- template class FourierCosineSum<2>;
- template class FourierCosineSum<3>;
- template class FourierSineSum<1>;
- template class FourierSineSum<2>;
- template class FourierSineSum<3>;
- template class SlitSingularityFunction<2>;
- template class SlitSingularityFunction<3>;
- template class Monomial<1>;
- template class Monomial<2>;
- template class Monomial<3>;
template class Bessel1<1>;
template class Bessel1<2>;
template class Bessel1<3>;
- template class InterpolatedTensorProductGridData<1>;
- template class InterpolatedTensorProductGridData<2>;
- template class InterpolatedTensorProductGridData<3>;
- template class InterpolatedUniformGridData<1>;
- template class InterpolatedUniformGridData<2>;
- template class InterpolatedUniformGridData<3>;
- template class Polynomial<1>;
- template class Polynomial<2>;
- template class Polynomial<3>;
} // namespace Functions
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/function_lib.h>
#include <deal.II/base/point.h>
#include <deal.II/base/tensor.h>
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/function_parser.h>
#include <deal.II/base/patterns.h>
#include <deal.II/base/thread_management.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/function_spherical.h>
#include <deal.II/base/geometric_utilities.h>
#include <deal.II/base/point.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/function_time.templates.h>
-
DEAL_II_NAMESPACE_OPEN
// explicit instantiation
+#include "deal.II/base/config.h"
+
#include "function_time.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/exceptions.h>
#include <deal.II/base/geometric_utilities.h>
+#include <cstddef>
+
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/geometry_info.h>
#include <deal.II/base/tensor.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/graph_coloring.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/index_set.h>
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/mpi.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/job_identifier.h>
#include <ctime>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/job_identifier.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/logstream.h>
#include <deal.II/base/thread_management.h>
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/exceptions.h>
#include <deal.II/base/mpi.h>
#include <deal.II/base/mpi.templates.h>
# include <sys/types.h>
#endif
+#include "deal.II/base/config.h"
+
#include <algorithm>
#ifdef DEAL_II_WITH_THREADS
//
// ---------------------------------------------------------------------
-#include <deal.II/algorithms/any_data.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/algorithms/named_selection.h>
DEAL_II_NAMESPACE_OPEN
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/parallel.h>
//
//-----------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/parameter_acceptor.h>
#include <deal.II/base/path_search.h>
#include <deal.II/base/utilities.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/logstream.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/parameter_handler.h>
#include <deal.II/base/path_search.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/auto_derivative_function.h"
+#include "deal.II/base/exceptions.h"
#include <deal.II/base/parsed_function.h>
#include <deal.II/base/utilities.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/partitioner.h>
#include <deal.II/base/partitioner.templates.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/logstream.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/path_search.h>
#include <deal.II/base/utilities.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/logstream.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/path_search.h>
#include <deal.II/base/patterns.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/exceptions.h>
#include <deal.II/base/point.h>
#include <deal.II/base/polynomial.h>
template void
Polynomial<double>::shift(const long double offset);
- template class Monomial<float>;
- template class Monomial<double>;
- template class Monomial<long double>;
} // namespace Polynomials
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/exceptions.h>
#include <deal.II/base/polynomial_space.h>
#include <deal.II/base/table.h>
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/polynomials_abf.h>
#include <deal.II/base/quadrature_lib.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/geometry_info.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/polynomial_space.h>
#include <deal.II/base/polynomials_bdm.h>
#include <deal.II/base/quadrature_lib.h>
// ---------------------------------------------------------------------
+#include "deal.II/base/geometry_info.h"
#include <deal.II/base/polynomials_bernardi_raugel.h>
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
+#include "deal.II/base/polynomial.h"
#include <deal.II/base/polynomials_bernstein.h>
#include <boost/math/special_functions/binomial.hpp>
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/polynomials_integrated_legendre_sz.h>
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
-#include <deal.II/base/geometry_info.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/polynomial.h>
#include <deal.II/base/polynomials_nedelec.h>
#include <deal.II/base/quadrature_lib.h>
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/polynomials_p.h>
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/polynomials_piecewise.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/geometry_info.h>
#include <deal.II/base/polynomials_rannacher_turek.h>
DEAL_II_NAMESPACE_OPEN
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "polynomials_rannacher_turek.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/polynomials_raviart_thomas.h>
#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/thread_management.h>
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include "deal.II/base/polynomials_rt_bubbles.h"
#include <deal.II/base/quadrature_lib.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/geometry_info.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/qprojector.h>
#include <deal.II/base/quadrature.h>
template class Quadrature<1>;
template class Quadrature<2>;
template class Quadrature<3>;
-template class QAnisotropic<1>;
-template class QAnisotropic<2>;
-template class QAnisotropic<3>;
-template class QIterated<1>;
-template class QIterated<2>;
-template class QIterated<3>;
-template class QProjector<1>;
-template class QProjector<2>;
-template class QProjector<3>;
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
-#include <deal.II/base/geometry_info.h>
+#include "deal.II/base/config.h"
+#include <deal.II/base/config.h>
+
#include <deal.II/base/polynomial.h>
#include <deal.II/base/quadrature_lib.h>
// explicit specialization
// note that 1d formulae are specialized by implementation above
template class QGauss<2>;
-template class QGaussLobatto<2>;
-template class QMidpoint<2>;
-template class QTrapez<2>;
-template class QSimpson<2>;
-template class QMilne<2>;
-template class QWeddle<2>;
-
-template class QGauss<3>;
-template class QGaussLobatto<3>;
-template class QMidpoint<3>;
-template class QTrapez<3>;
-template class QSimpson<3>;
-template class QMilne<3>;
-template class QWeddle<3>;
+
template class QSorted<1>;
template class QSorted<2>;
template class QSorted<3>;
-template class QTelles<1>;
-template class QTelles<2>;
-template class QTelles<3>;
-
-template class QGaussChebyshev<1>;
-template class QGaussChebyshev<2>;
-template class QGaussChebyshev<3>;
-
-template class QGaussRadauChebyshev<1>;
-template class QGaussRadauChebyshev<2>;
-template class QGaussRadauChebyshev<3>;
-
-template class QGaussLobattoChebyshev<1>;
-template class QGaussLobattoChebyshev<2>;
-template class QGaussLobattoChebyshev<3>;
-
-template class QSimplex<1>;
-template class QSimplex<2>;
-template class QSimplex<3>;
-template class QSplit<1>;
-template class QSplit<2>;
-template class QSplit<3>;
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
-#include <deal.II/base/quadrature_lib.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/quadrature_selector.h>
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
-#include <deal.II/base/logstream.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/subscriptor.h>
#include <deal.II/base/thread_management.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/table_handler.h>
#include <boost/io/ios_state.hpp>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/tensor_function.templates.h>
-
DEAL_II_NAMESPACE_OPEN
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "tensor_function.inst"
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/exceptions.h>
#include <deal.II/base/polynomials_piecewise.h>
#include <deal.II/base/tensor_product_polynomials.h>
3,
Polynomials::PiecewisePolynomial<double>>;
-template class AnisotropicPolynomials<1>;
-template class AnisotropicPolynomials<2>;
-template class AnisotropicPolynomials<3>;
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/exceptions.h>
#include <deal.II/base/tensor_product_polynomials_bubbles.h>
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/exceptions.h>
#include <deal.II/base/tensor_product_polynomials_const.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/thread_management.h>
#include <atomic>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/time_stepping.templates.h>
+#include "deal.II/base/config.h"
#include <deal.II/lac/block_vector.h>
#include <deal.II/lac/la_parallel_block_vector.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/exceptions.h>
#include <deal.II/base/mpi.h>
#include <deal.II/base/signaling_nan.h>
# include <winsock2.h>
#endif
+#include "deal.II/base/types.h"
#include <deal.II/base/exceptions.h>
#include <deal.II/base/mpi.h>
#include <deal.II/base/thread_local_storage.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/vectorization.h>
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
-#include <deal.II/base/config.h>
-
#if defined(DEAL_II_WITH_ADOLC) || defined(DEAL_II_TRILINOS_WITH_SACADO)
# include <deal.II/differentiation/ad/ad_drivers.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/config.h>
-
#ifdef DEAL_II_WITH_ADOLC
# include <deal.II/differentiation/ad/ad_number_traits.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/config.h>
-
#ifdef DEAL_II_TRILINOS_WITH_SACADO
# include <deal.II/differentiation/ad/sacado_number_types.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/config.h>
-
#ifdef DEAL_II_WITH_P4EST
# include <deal.II/distributed/active_fe_indices_transfer.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/utilities.h>
-
#include <deal.II/lac/block_vector.h>
#include <deal.II/lac/trilinos_parallel_block_vector.h>
#include <deal.II/lac/trilinos_vector.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/distributed/p4est_wrappers.h>
#include <deal.II/distributed/tria.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/mpi.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/utilities.h>
#include <deal.II/distributed/shared_tria.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/config.h>
-
#ifdef DEAL_II_WITH_P4EST
# include <deal.II/distributed/solution_transfer.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/logstream.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/utilities.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/logstream.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/utilities.h>
// --------------------------------------------------------------------------
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "dof_accessor.inst"
DEAL_II_NAMESPACE_CLOSE
// --------------------------------------------------------------------------
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "dof_accessor_get.inst"
+namespace dealii
+{
+ template <int, int>
+ class FiniteElement;
+ template <typename number>
+ class Vector;
+} // namespace dealii
+
DEAL_II_NAMESPACE_CLOSE
// --------------------------------------------------------------------------
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "dof_accessor_set.inst"
+namespace dealii
+{
+ template <int, int>
+ class FiniteElement;
+ template <typename number>
+ class Vector;
+} // namespace dealii
+
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
-#include <deal.II/base/exceptions.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/memory_consumption.h>
#include <deal.II/dofs/dof_faces.h>
+#include <cstddef>
+
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
-#include <deal.II/base/geometry_info.h>
+#include "deal.II/base/config.h"
+
+#include "deal.II/base/types.h"
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/std_cxx14/memory.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/geometry_info.h>
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/partitioner.h>
#include <deal.II/base/thread_management.h>
# include <boost/serialization/array.hpp>
#endif
+#include "deal.II/base/config.h"
+
+#include "deal.II/base/types.h"
+
#include <algorithm>
#include <memory>
#include <numeric>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/exceptions.h>
#include <deal.II/base/memory_consumption.h>
#include <deal.II/fe/fe.h>
+#include <cstddef>
+
DEAL_II_NAMESPACE_OPEN
namespace internal
//
// ---------------------------------------------------------------------
-#include <deal.II/base/quadrature_lib.h>
+#include "deal.II/base/config.h"
+
+#include "deal.II/base/types.h"
#include <deal.II/base/template_constraints.h>
#include <deal.II/base/thread_management.h>
#include <deal.II/base/types.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/quadrature_lib.h>
+#include "deal.II/base/config.h"
+
+#include "deal.II/base/types.h"
#include <deal.II/base/table.h>
#include <deal.II/base/template_constraints.h>
#include <deal.II/base/thread_management.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/table.h>
#include <deal.II/base/template_constraints.h>
#include <deal.II/base/thread_management.h>
#include <deal.II/base/utilities.h>
# include <deal.II/lac/la_parallel_vector.h>
#endif
+#include "deal.II/base/config.h"
+
+#include "deal.II/base/types.h"
#include <deal.II/base/std_cxx14/memory.h>
#include <algorithm>
};
- template <int dim, int spacedim>
- struct DoFHandlerSupportsDifferentFEs<dealii::DoFHandler<dim, spacedim>>
{
static const bool value = false;
};
//
// ---------------------------------------------------------------------
-#include <deal.II/base/quadrature_lib.h>
+#include "deal.II/base/config.h"
+
+#include "deal.II/base/types.h"
#include <deal.II/base/table.h>
#include <deal.II/base/template_constraints.h>
#include <deal.II/base/thread_management.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/memory_consumption.h>
+#include "deal.II/base/config.h"
#include <deal.II/dofs/number_cache.h>
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/fe/block_mask.h>
#include <iostream>
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/fe/component_mask.h>
#include <iostream>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/qprojector.h>
#include <deal.II/base/quadrature.h>
/*------------------------------- Explicit Instantiations -------------*/
+#include "deal.II/base/config.h"
+
#include "fe.inst"
// ---------------------------------------------------------------------
-#include <deal.II/base/qprojector.h>
#include <deal.II/base/quadrature.h>
#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/std_cxx14/memory.h>
/*-------------- Explicit Instantiations -------------------------------*/
+#include "deal.II/base/config.h"
+
#include "fe_abf.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/base/polynomials_p.h>
#include <deal.II/base/qprojector.h>
#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/std_cxx14/memory.h>
/*-------------- Explicit Instantiations -------------------------------*/
+#include "deal.II/base/config.h"
+
#include "fe_bdm.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/base/polynomials_p.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/qprojector.h>
#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/std_cxx14/memory.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/polynomials_bernstein.h>
#include <deal.II/base/qprojector.h>
#include <deal.II/base/quadrature.h>
#include <deal.II/base/quadrature_lib.h>
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "fe_bernstein.inst"
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
-#include <deal.II/base/geometry_info.h>
+#include "deal.II/base/config.h"
#include <deal.II/fe/fe.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/polynomials_abf.h>
#include <deal.II/base/polynomials_bdm.h>
#include <deal.II/base/polynomials_nedelec.h>
#include <deal.II/base/polynomials_raviart_thomas.h>
}
+#include "deal.II/base/config.h"
+
#include "fe_dg_vector.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/base/std_cxx14/memory.h>
-
#include <deal.II/fe/fe_dgp.h>
#include <deal.II/fe/fe_tools.h>
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "fe_dgp.inst"
// ---------------------------------------------------------------------
-#include <deal.II/base/std_cxx14/memory.h>
+#include "deal.II/base/config.h"
#include <deal.II/fe/fe_dgp_monomial.h>
#include <deal.II/fe/fe_tools.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/quadrature.h>
#include <deal.II/base/std_cxx14/memory.h>
#include <deal.II/dofs/dof_accessor.h>
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "fe_dgp_nonparametric.inst"
// ---------------------------------------------------------------------
-#include <deal.II/base/quadrature.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/std_cxx14/memory.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/std_cxx14/memory.h>
+#include "deal.II/base/config.h"
#include <deal.II/fe/fe_enriched.h>
#include <deal.II/fe/fe_tools.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/quadrature_lib.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/std_cxx14/memory.h>
#include <deal.II/fe/fe_face.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/logstream.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/qprojector.h>
#include <deal.II/base/quadrature.h>
#include <deal.II/base/quadrature_lib.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/std_cxx14/memory.h>
-
#include <deal.II/fe/fe_nedelec_sz.h>
DEAL_II_NAMESPACE_OPEN
}
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "fe_nedelec_sz.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/base/std_cxx14/memory.h>
-
#include <deal.II/fe/fe_nothing.h>
DEAL_II_NAMESPACE_OPEN
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "fe_nothing.inst"
// ---------------------------------------------------------------------
-#include <deal.II/base/std_cxx14/memory.h>
+#include "deal.II/base/config.h"
#include <deal.II/fe/fe_p1nc.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/polynomials_p.h>
#include <deal.II/base/polynomials_piecewise.h>
#include <deal.II/base/polynomials_rannacher_turek.h>
#include <deal.II/base/qprojector.h>
}
+#include "deal.II/base/config.h"
+
#include "fe_poly.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/base/array_view.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/derivative_form.h>
#include <deal.II/base/polynomials_abf.h>
#include <deal.II/base/polynomials_bdm.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/quadrature_lib.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/std_cxx14/memory.h>
#include <deal.II/fe/fe_q.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/polynomials_piecewise.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/qprojector.h>
#include <deal.II/base/quadrature.h>
#include <deal.II/base/quadrature_lib.h>
* Triangulation class. See there for more information.
*/
template <class PolynomialType, int xdim, int xspacedim>
-struct FE_Q_Base<PolynomialType, xdim, xspacedim>::Implementation
-{
- /**
- * Initialize the hanging node constraints matrices. Called from the
- * constructor in case the finite element is based on quadrature points.
- */
- template <int spacedim>
- static void
- initialize_constraints(const std::vector<Point<1>> &,
- FE_Q_Base<PolynomialType, 1, spacedim> &)
+{/**
+ * Initialize the hanging node constraints matrices. Called from the
+ * constructor in case the finite element is based on quadrature points.
+ */
+ template <int spacedim>
+ static void initialize_constraints(const std::vector<Point<1>> &,
+ FE_Q_Base<PolynomialType, 1, spacedim> &){
+ // no constraints in 1d
+ }
+
+
+ template <int spacedim>
+ static void initialize_constraints(const std::vector<Point<1>> & /*points*/,
+ FE_Q_Base<PolynomialType, 2, spacedim> &fe){
+ const unsigned int dim = 2;
+
+unsigned int q_deg = fe.degree;
+if (std::is_same<PolynomialType, TensorProductPolynomialsBubbles<dim>>::value)
+ q_deg = fe.degree - 1;
+
+// restricted to each face, the traces of the shape functions is an
+// element of P_{k} (in 2d), or Q_{k} (in 3d), where k is the degree of
+// the element. from this, we interpolate between mother and cell face.
+
+// the interpolation process works as follows: on each subface, we want
+// that finite element solutions from both sides coincide. i.e. if a and b
+// are expansion coefficients for the shape functions from both sides, we
+// seek a relation between a and b such that
+// sum_j a_j phi^c_j(x) == sum_j b_j phi_j(x)
+// for all points x on the interface. here, phi^c_j are the shape
+// functions on the small cell on one side of the face, and phi_j those on
+// the big cell on the other side. To get this relation, it suffices to
+// look at a sufficient number of points for which this has to hold. if
+// there are n functions, then we need n evaluation points, and we choose
+// them equidistantly.
+//
+// we obtain the matrix system
+// A a == B b
+// where
+// A_ij = phi^c_j(x_i)
+// B_ij = phi_j(x_i)
+// and the relation we are looking for is
+// a = A^-1 B b
+//
+// for the special case of Lagrange interpolation polynomials, A_ij
+// reduces to delta_ij, and
+// a_i = B_ij b_j
+// Hence, interface_constraints(i,j)=B_ij.
+//
+// for the general case, where we don't have Lagrange interpolation
+// polynomials, this is a little more complicated. Then we would evaluate
+// at a number of points and invert the interpolation matrix A.
+//
+// Note, that we build up these matrices for all subfaces at once, rather
+// than considering them separately. the reason is that we finally will
+// want to have them in this order anyway, as this is the format we need
+// inside deal.II
+
+// In the following the points x_i are constructed in following order
+// (n=degree-1)
+// *----------*---------*
+// 1..n 0 n+1..2n
+// i.e. first the midpoint of the line, then the support points on subface
+// 0 and on subface 1
+std::vector<Point<dim - 1>> constraint_points;
+// Add midpoint
+constraint_points.emplace_back(0.5);
+
+if (q_deg > 1)
{
- // no constraints in 1d
+ const unsigned int n = q_deg - 1;
+ const double step = 1. / q_deg;
+ // subface 0
+ for (unsigned int i = 1; i <= n; ++i)
+ constraint_points.push_back(
+ GeometryInfo<dim - 1>::child_to_cell_coordinates(
+ Point<dim - 1>(i * step), 0));
+ // subface 1
+ for (unsigned int i = 1; i <= n; ++i)
+ constraint_points.push_back(
+ GeometryInfo<dim - 1>::child_to_cell_coordinates(
+ Point<dim - 1>(i * step), 1));
}
+// Now construct relation between destination (child) and source (mother)
+// dofs.
+
+fe.interface_constraints.TableBase<2, double>::reinit(
+ fe.interface_constraints_size());
+
+// use that the element evaluates to 1 at index 0 and along the line at
+// zero
+const std::vector<unsigned int> &index_map_inverse =
+ fe.poly_space.get_numbering_inverse();
+const std::vector<unsigned int> face_index_map =
+ internal::FE_Q_Base::face_lexicographic_to_hierarchic_numbering<dim>(q_deg);
+Assert(std::abs(fe.poly_space.compute_value(index_map_inverse[0],
+ Point<dim>()) -
+ 1.) < 1e-14,
+ ExcInternalError());
+
+for (unsigned int i = 0; i < constraint_points.size(); ++i)
+ for (unsigned int j = 0; j < q_deg + 1; ++j)
+ {
+ Point<dim> p;
+ p[0] = constraint_points[i](0);
+ fe.interface_constraints(i, face_index_map[j]) =
+ fe.poly_space.compute_value(index_map_inverse[j], p);
+
+ // if the value is small up to round-off, then simply set it to zero
+ // to avoid unwanted fill-in of the constraint matrices (which would
+ // then increase the number of other DoFs a constrained DoF would
+ // couple to)
+ if (std::fabs(fe.interface_constraints(i, face_index_map[j])) < 1e-13)
+ fe.interface_constraints(i, face_index_map[j]) = 0;
+ }
+}
+
- template <int spacedim>
- static void
- initialize_constraints(const std::vector<Point<1>> & /*points*/,
- FE_Q_Base<PolynomialType, 2, spacedim> &fe)
- {
- const unsigned int dim = 2;
-
- unsigned int q_deg = fe.degree;
- if (std::is_same<PolynomialType,
- TensorProductPolynomialsBubbles<dim>>::value)
- q_deg = fe.degree - 1;
-
- // restricted to each face, the traces of the shape functions is an
- // element of P_{k} (in 2d), or Q_{k} (in 3d), where k is the degree of
- // the element. from this, we interpolate between mother and cell face.
-
- // the interpolation process works as follows: on each subface, we want
- // that finite element solutions from both sides coincide. i.e. if a and b
- // are expansion coefficients for the shape functions from both sides, we
- // seek a relation between a and b such that
- // sum_j a_j phi^c_j(x) == sum_j b_j phi_j(x)
- // for all points x on the interface. here, phi^c_j are the shape
- // functions on the small cell on one side of the face, and phi_j those on
- // the big cell on the other side. To get this relation, it suffices to
- // look at a sufficient number of points for which this has to hold. if
- // there are n functions, then we need n evaluation points, and we choose
- // them equidistantly.
- //
- // we obtain the matrix system
- // A a == B b
- // where
- // A_ij = phi^c_j(x_i)
- // B_ij = phi_j(x_i)
- // and the relation we are looking for is
- // a = A^-1 B b
- //
- // for the special case of Lagrange interpolation polynomials, A_ij
- // reduces to delta_ij, and
- // a_i = B_ij b_j
- // Hence, interface_constraints(i,j)=B_ij.
- //
- // for the general case, where we don't have Lagrange interpolation
- // polynomials, this is a little more complicated. Then we would evaluate
- // at a number of points and invert the interpolation matrix A.
- //
- // Note, that we build up these matrices for all subfaces at once, rather
- // than considering them separately. the reason is that we finally will
- // want to have them in this order anyway, as this is the format we need
- // inside deal.II
-
- // In the following the points x_i are constructed in following order
- // (n=degree-1)
- // *----------*---------*
- // 1..n 0 n+1..2n
- // i.e. first the midpoint of the line, then the support points on subface
- // 0 and on subface 1
- std::vector<Point<dim - 1>> constraint_points;
- // Add midpoint
- constraint_points.emplace_back(0.5);
-
- if (q_deg > 1)
- {
- const unsigned int n = q_deg - 1;
- const double step = 1. / q_deg;
- // subface 0
- for (unsigned int i = 1; i <= n; ++i)
- constraint_points.push_back(
- GeometryInfo<dim - 1>::child_to_cell_coordinates(
- Point<dim - 1>(i * step), 0));
- // subface 1
- for (unsigned int i = 1; i <= n; ++i)
+template <int spacedim>
+static void
+initialize_constraints(const std::vector<Point<1>> & /*points*/,
+ FE_Q_Base<PolynomialType, 3, spacedim> &fe)
+{
+ const unsigned int dim = 3;
+
+ unsigned int q_deg = fe.degree;
+ if (std::is_same<PolynomialType, TensorProductPolynomialsBubbles<dim>>::value)
+ q_deg = fe.degree - 1;
+
+ // For a detailed documentation of the interpolation see the
+ // FE_Q_Base<2>::initialize_constraints function.
+
+ // In the following the points x_i are constructed in the order as
+ // described in the documentation of the FiniteElement class (fe_base.h),
+ // i.e.
+ // *--15--4--16--*
+ // | | |
+ // 10 19 6 20 12
+ // | | |
+ // 1--7---0--8---2
+ // | | |
+ // 9 17 5 18 11
+ // | | |
+ // *--13--3--14--*
+ std::vector<Point<dim - 1>> constraint_points;
+
+ // Add midpoint
+ constraint_points.emplace_back(0.5, 0.5);
+
+ // Add midpoints of lines of "mother-face"
+ constraint_points.emplace_back(0, 0.5);
+ constraint_points.emplace_back(1, 0.5);
+ constraint_points.emplace_back(0.5, 0);
+ constraint_points.emplace_back(0.5, 1);
+
+ if (q_deg > 1)
+ {
+ const unsigned int n = q_deg - 1;
+ const double step = 1. / q_deg;
+ std::vector<Point<dim - 2>> line_support_points(n);
+ for (unsigned int i = 0; i < n; ++i)
+ line_support_points[i](0) = (i + 1) * step;
+ Quadrature<dim - 2> qline(line_support_points);
+
+ // auxiliary points in 2d
+ std::vector<Point<dim - 1>> p_line(n);
+
+ // Add nodes of lines interior in the "mother-face"
+
+ // line 5: use line 9
+ QProjector<dim - 1>::project_to_subface(qline, 0, 0, p_line);
+ for (unsigned int i = 0; i < n; ++i)
+ constraint_points.push_back(p_line[i] + Point<dim - 1>(0.5, 0));
+ // line 6: use line 10
+ QProjector<dim - 1>::project_to_subface(qline, 0, 1, p_line);
+ for (unsigned int i = 0; i < n; ++i)
+ constraint_points.push_back(p_line[i] + Point<dim - 1>(0.5, 0));
+ // line 7: use line 13
+ QProjector<dim - 1>::project_to_subface(qline, 2, 0, p_line);
+ for (unsigned int i = 0; i < n; ++i)
+ constraint_points.push_back(p_line[i] + Point<dim - 1>(0, 0.5));
+ // line 8: use line 14
+ QProjector<dim - 1>::project_to_subface(qline, 2, 1, p_line);
+ for (unsigned int i = 0; i < n; ++i)
+ constraint_points.push_back(p_line[i] + Point<dim - 1>(0, 0.5));
+
+ // DoFs on bordering lines lines 9-16
+ for (unsigned int face = 0; face < GeometryInfo<dim - 1>::faces_per_cell;
+ ++face)
+ for (unsigned int subface = 0;
+ subface < GeometryInfo<dim - 1>::max_children_per_face;
+ ++subface)
+ {
+ QProjector<dim - 1>::project_to_subface(qline,
+ face,
+ subface,
+ p_line);
+ constraint_points.insert(constraint_points.end(),
+ p_line.begin(),
+ p_line.end());
+ }
+
+ // Create constraints for interior nodes
+ std::vector<Point<dim - 1>> inner_points(n * n);
+ for (unsigned int i = 0, iy = 1; iy <= n; ++iy)
+ for (unsigned int ix = 1; ix <= n; ++ix)
+ inner_points[i++] = Point<dim - 1>(ix * step, iy * step);
+
+ // at the moment do this for isotropic face refinement only
+ for (unsigned int child = 0;
+ child < GeometryInfo<dim - 1>::max_children_per_cell;
+ ++child)
+ for (unsigned int i = 0; i < inner_points.size(); ++i)
constraint_points.push_back(
- GeometryInfo<dim - 1>::child_to_cell_coordinates(
- Point<dim - 1>(i * step), 1));
- }
+ GeometryInfo<dim - 1>::child_to_cell_coordinates(inner_points[i],
+ child));
+ }
- // Now construct relation between destination (child) and source (mother)
- // dofs.
-
- fe.interface_constraints.TableBase<2, double>::reinit(
- fe.interface_constraints_size());
-
- // use that the element evaluates to 1 at index 0 and along the line at
- // zero
- const std::vector<unsigned int> &index_map_inverse =
- fe.poly_space.get_numbering_inverse();
- const std::vector<unsigned int> face_index_map =
- internal::FE_Q_Base::face_lexicographic_to_hierarchic_numbering<dim>(
- q_deg);
- Assert(std::abs(
- fe.poly_space.compute_value(index_map_inverse[0], Point<dim>()) -
- 1.) < 1e-14,
- ExcInternalError());
-
- for (unsigned int i = 0; i < constraint_points.size(); ++i)
- for (unsigned int j = 0; j < q_deg + 1; ++j)
- {
- Point<dim> p;
- p[0] = constraint_points[i](0);
- fe.interface_constraints(i, face_index_map[j]) =
- fe.poly_space.compute_value(index_map_inverse[j], p);
+ // Now construct relation between destination (child) and source (mother)
+ // dofs.
+ const unsigned int pnts = (q_deg + 1) * (q_deg + 1);
- // if the value is small up to round-off, then simply set it to zero
- // to avoid unwanted fill-in of the constraint matrices (which would
- // then increase the number of other DoFs a constrained DoF would
- // couple to)
- if (std::fabs(fe.interface_constraints(i, face_index_map[j])) < 1e-13)
- fe.interface_constraints(i, face_index_map[j]) = 0;
- }
- }
+ // use that the element evaluates to 1 at index 0 and along the line at
+ // zero
+ const std::vector<unsigned int> &index_map_inverse =
+ fe.poly_space.get_numbering_inverse();
+ const std::vector<unsigned int> face_index_map =
+ internal::FE_Q_Base::face_lexicographic_to_hierarchic_numbering<dim>(q_deg);
+ Assert(std::abs(
+ fe.poly_space.compute_value(index_map_inverse[0], Point<dim>()) -
+ 1.) < 1e-14,
+ ExcInternalError());
+ fe.interface_constraints.TableBase<2, double>::reinit(
+ fe.interface_constraints_size());
- template <int spacedim>
- static void
- initialize_constraints(const std::vector<Point<1>> & /*points*/,
- FE_Q_Base<PolynomialType, 3, spacedim> &fe)
- {
- const unsigned int dim = 3;
-
- unsigned int q_deg = fe.degree;
- if (std::is_same<PolynomialType,
- TensorProductPolynomialsBubbles<dim>>::value)
- q_deg = fe.degree - 1;
-
- // For a detailed documentation of the interpolation see the
- // FE_Q_Base<2>::initialize_constraints function.
-
- // In the following the points x_i are constructed in the order as
- // described in the documentation of the FiniteElement class (fe_base.h),
- // i.e.
- // *--15--4--16--*
- // | | |
- // 10 19 6 20 12
- // | | |
- // 1--7---0--8---2
- // | | |
- // 9 17 5 18 11
- // | | |
- // *--13--3--14--*
- std::vector<Point<dim - 1>> constraint_points;
-
- // Add midpoint
- constraint_points.emplace_back(0.5, 0.5);
-
- // Add midpoints of lines of "mother-face"
- constraint_points.emplace_back(0, 0.5);
- constraint_points.emplace_back(1, 0.5);
- constraint_points.emplace_back(0.5, 0);
- constraint_points.emplace_back(0.5, 1);
-
- if (q_deg > 1)
- {
- const unsigned int n = q_deg - 1;
- const double step = 1. / q_deg;
- std::vector<Point<dim - 2>> line_support_points(n);
- for (unsigned int i = 0; i < n; ++i)
- line_support_points[i](0) = (i + 1) * step;
- Quadrature<dim - 2> qline(line_support_points);
-
- // auxiliary points in 2d
- std::vector<Point<dim - 1>> p_line(n);
-
- // Add nodes of lines interior in the "mother-face"
-
- // line 5: use line 9
- QProjector<dim - 1>::project_to_subface(qline, 0, 0, p_line);
- for (unsigned int i = 0; i < n; ++i)
- constraint_points.push_back(p_line[i] + Point<dim - 1>(0.5, 0));
- // line 6: use line 10
- QProjector<dim - 1>::project_to_subface(qline, 0, 1, p_line);
- for (unsigned int i = 0; i < n; ++i)
- constraint_points.push_back(p_line[i] + Point<dim - 1>(0.5, 0));
- // line 7: use line 13
- QProjector<dim - 1>::project_to_subface(qline, 2, 0, p_line);
- for (unsigned int i = 0; i < n; ++i)
- constraint_points.push_back(p_line[i] + Point<dim - 1>(0, 0.5));
- // line 8: use line 14
- QProjector<dim - 1>::project_to_subface(qline, 2, 1, p_line);
- for (unsigned int i = 0; i < n; ++i)
- constraint_points.push_back(p_line[i] + Point<dim - 1>(0, 0.5));
-
- // DoFs on bordering lines lines 9-16
- for (unsigned int face = 0;
- face < GeometryInfo<dim - 1>::faces_per_cell;
- ++face)
- for (unsigned int subface = 0;
- subface < GeometryInfo<dim - 1>::max_children_per_face;
- ++subface)
- {
- QProjector<dim - 1>::project_to_subface(qline,
- face,
- subface,
- p_line);
- constraint_points.insert(constraint_points.end(),
- p_line.begin(),
- p_line.end());
- }
+ for (unsigned int i = 0; i < constraint_points.size(); ++i)
+ {
+ const double interval = (double)(q_deg * 2);
+ bool mirror[dim - 1];
+ Point<dim> constraint_point;
+
+ // Eliminate FP errors in constraint points. Due to their origin, they
+ // must all be fractions of the unit interval. If we have polynomial
+ // degree 4, the refined element has 8 intervals. Hence the
+ // coordinates must be 0, 0.125, 0.25, 0.375 etc. Now the coordinates
+ // of the constraint points will be multiplied by the inverse of the
+ // interval size (in the example by 8). After that the coordinates
+ // must be integral numbers. Hence a normal truncation is performed
+ // and the coordinates will be scaled back. The equal treatment of all
+ // coordinates should eliminate any FP errors.
+ for (unsigned int k = 0; k < dim - 1; ++k)
+ {
+ const int coord_int =
+ static_cast<int>(constraint_points[i](k) * interval + 0.25);
+ constraint_point(k) = 1. * coord_int / interval;
+
+ // The following lines of code should eliminate the problems with
+ // the constraints object which appeared for P>=4. The
+ // AffineConstraints class complained about different constraints
+ // for the same entry: Actually, this
+ // difference could be attributed to FP errors, as it was in the
+ // range of 1.0e-16. These errors originate in the loss of
+ // symmetry in the FP approximation of the shape-functions.
+ // Considering a 3rd order shape function in 1D, we have
+ // N0(x)=N3(1-x) and N1(x)=N2(1-x). For higher order polynomials
+ // the FP approximations of the shape functions do not satisfy
+ // these equations any more! Thus in the following code
+ // everything is computed in the interval x \in [0..0.5], which is
+ // sufficient to express all values that could come out from a
+ // computation of any shape function in the full interval
+ // [0..1]. If x > 0.5 the computation is done for 1-x with the
+ // shape function N_{p-n} instead of N_n. Hence symmetry is
+ // preserved and everything works fine...
+ //
+ // For a different explanation of the problem, see the discussion
+ // in the FiniteElement class for constraint matrices in 3d.
+ mirror[k] = (constraint_point(k) > 0.5);
+ if (mirror[k])
+ constraint_point(k) = 1.0 - constraint_point(k);
+ }
- // Create constraints for interior nodes
- std::vector<Point<dim - 1>> inner_points(n * n);
- for (unsigned int i = 0, iy = 1; iy <= n; ++iy)
- for (unsigned int ix = 1; ix <= n; ++ix)
- inner_points[i++] = Point<dim - 1>(ix * step, iy * step);
-
- // at the moment do this for isotropic face refinement only
- for (unsigned int child = 0;
- child < GeometryInfo<dim - 1>::max_children_per_cell;
- ++child)
- for (unsigned int i = 0; i < inner_points.size(); ++i)
- constraint_points.push_back(
- GeometryInfo<dim - 1>::child_to_cell_coordinates(inner_points[i],
- child));
- }
+ for (unsigned int j = 0; j < pnts; ++j)
+ {
+ unsigned int indices[2] = {j % (q_deg + 1), j / (q_deg + 1)};
- // Now construct relation between destination (child) and source (mother)
- // dofs.
- const unsigned int pnts = (q_deg + 1) * (q_deg + 1);
-
- // use that the element evaluates to 1 at index 0 and along the line at
- // zero
- const std::vector<unsigned int> &index_map_inverse =
- fe.poly_space.get_numbering_inverse();
- const std::vector<unsigned int> face_index_map =
- internal::FE_Q_Base::face_lexicographic_to_hierarchic_numbering<dim>(
- q_deg);
- Assert(std::abs(
- fe.poly_space.compute_value(index_map_inverse[0], Point<dim>()) -
- 1.) < 1e-14,
- ExcInternalError());
-
- fe.interface_constraints.TableBase<2, double>::reinit(
- fe.interface_constraints_size());
-
- for (unsigned int i = 0; i < constraint_points.size(); ++i)
- {
- const double interval = (double)(q_deg * 2);
- bool mirror[dim - 1];
- Point<dim> constraint_point;
-
- // Eliminate FP errors in constraint points. Due to their origin, they
- // must all be fractions of the unit interval. If we have polynomial
- // degree 4, the refined element has 8 intervals. Hence the
- // coordinates must be 0, 0.125, 0.25, 0.375 etc. Now the coordinates
- // of the constraint points will be multiplied by the inverse of the
- // interval size (in the example by 8). After that the coordinates
- // must be integral numbers. Hence a normal truncation is performed
- // and the coordinates will be scaled back. The equal treatment of all
- // coordinates should eliminate any FP errors.
- for (unsigned int k = 0; k < dim - 1; ++k)
- {
- const int coord_int =
- static_cast<int>(constraint_points[i](k) * interval + 0.25);
- constraint_point(k) = 1. * coord_int / interval;
-
- // The following lines of code should eliminate the problems with
- // the constraints object which appeared for P>=4. The
- // AffineConstraints class complained about different constraints
- // for the same entry: Actually, this
- // difference could be attributed to FP errors, as it was in the
- // range of 1.0e-16. These errors originate in the loss of
- // symmetry in the FP approximation of the shape-functions.
- // Considering a 3rd order shape function in 1D, we have
- // N0(x)=N3(1-x) and N1(x)=N2(1-x). For higher order polynomials
- // the FP approximations of the shape functions do not satisfy
- // these equations any more! Thus in the following code
- // everything is computed in the interval x \in [0..0.5], which is
- // sufficient to express all values that could come out from a
- // computation of any shape function in the full interval
- // [0..1]. If x > 0.5 the computation is done for 1-x with the
- // shape function N_{p-n} instead of N_n. Hence symmetry is
- // preserved and everything works fine...
- //
- // For a different explanation of the problem, see the discussion
- // in the FiniteElement class for constraint matrices in 3d.
- mirror[k] = (constraint_point(k) > 0.5);
+ for (unsigned int k = 0; k < 2; ++k)
if (mirror[k])
- constraint_point(k) = 1.0 - constraint_point(k);
- }
+ indices[k] = q_deg - indices[k];
- for (unsigned int j = 0; j < pnts; ++j)
- {
- unsigned int indices[2] = {j % (q_deg + 1), j / (q_deg + 1)};
-
- for (unsigned int k = 0; k < 2; ++k)
- if (mirror[k])
- indices[k] = q_deg - indices[k];
-
- const unsigned int new_index =
- indices[1] * (q_deg + 1) + indices[0];
-
- fe.interface_constraints(i, face_index_map[j]) =
- fe.poly_space.compute_value(index_map_inverse[new_index],
- constraint_point);
-
- // if the value is small up to round-off, then simply set it to
- // zero to avoid unwanted fill-in of the constraint matrices
- // (which would then increase the number of other DoFs a
- // constrained DoF would couple to)
- if (std::fabs(fe.interface_constraints(i, face_index_map[j])) <
- 1e-13)
- fe.interface_constraints(i, face_index_map[j]) = 0;
- }
- }
- }
-};
+ const unsigned int new_index = indices[1] * (q_deg + 1) + indices[0];
+
+ fe.interface_constraints(i, face_index_map[j]) =
+ fe.poly_space.compute_value(index_map_inverse[new_index],
+ constraint_point);
+
+ // if the value is small up to round-off, then simply set it to
+ // zero to avoid unwanted fill-in of the constraint matrices
+ // (which would then increase the number of other DoFs a
+ // constrained DoF would couple to)
+ if (std::fabs(fe.interface_constraints(i, face_index_map[j])) < 1e-13)
+ fe.interface_constraints(i, face_index_map[j]) = 0;
+ }
+ }
+}
+}
+;
// ---------------------------------------------------------------------
-#include <deal.II/base/qprojector.h>
+#include "deal.II/base/config.h"
+
+#include "deal.II/base/geometry_info.h"
#include <deal.II/base/quadrature.h>
#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/std_cxx14/memory.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/qprojector.h>
#include <deal.II/base/quadrature.h>
#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/std_cxx14/memory.h>
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "fe_q_dg0.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/base/std_cxx14/memory.h>
+#include "deal.II/base/config.h"
#include <deal.II/fe/fe_nothing.h>
#include <deal.II/fe/fe_q_hierarchical.h>
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "fe_q_iso_q1.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/std_cxx14/memory.h>
#include <deal.II/fe/fe_rannacher_turek.h>
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "fe_rannacher_turek.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/base/qprojector.h>
#include <deal.II/base/quadrature.h>
#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/std_cxx14/memory.h>
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "fe_raviart_thomas.inst"
// ---------------------------------------------------------------------
-#include <deal.II/base/qprojector.h>
#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/std_cxx14/memory.h>
// explicit instantiations
+#include "deal.II/base/config.h"
+
+#include "deal.II/base/geometry_info.h"
+
#include "fe_raviart_thomas_nodal.inst"
// ---------------------------------------------------------------------
-#include <deal.II/base/qprojector.h>
#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/std_cxx14/memory.h>
// explicit instantiations
+#include "deal.II/base/config.h"
+
+#include "deal.II/base/geometry_info.h"
+
#include "fe_rt_bubbles.inst"
//
// ---------------------------------------------------------------------
-#include <deal.II/base/memory_consumption.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/qprojector.h>
#include <deal.II/base/quadrature.h>
#include <deal.II/base/std_cxx14/memory.h>
// ---------------------------------------------------------------------
-#include <deal.II/fe/fe_tools.templates.h>
-
DEAL_II_NAMESPACE_OPEN
/*-------------- Explicit Instantiations -------------------------------*/
+#include "deal.II/base/config.h"
+
#include "fe_tools.inst"
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
-#include <deal.II/fe/fe_tools_extrapolate.templates.h>
-
DEAL_II_NAMESPACE_OPEN
/*-------------- Explicit Instantiations -------------------------------*/
+#include "deal.II/base/config.h"
+
#include "fe_tools_extrapolate.inst"
// ---------------------------------------------------------------------
-#include <deal.II/fe/fe_tools_interpolate.templates.h>
-
DEAL_II_NAMESPACE_OPEN
/*-------------- Explicit Instantiations -------------------------------*/
+#include "deal.II/base/config.h"
+
#include "fe_tools_interpolate.inst"
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
-#include <deal.II/base/array_view.h>
+#include "deal.II/base/config.h"
+#include <deal.II/base/config.h>
+
+#include "deal.II/base/types.h"
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/multithread_info.h>
#include <deal.II/base/numbers.h>
/* ---------------- FEValuesBase<dim,spacedim>::CellIteratorBase --------- */
template <int dim, int spacedim>
-class FEValuesBase<dim, spacedim>::CellIteratorBase
{
public:
/**
* classes. However, since here we have kind of a parallel class hierarchy,
* we have to have a conversion operator.
*/
- virtual
- operator typename Triangulation<dim, spacedim>::cell_iterator() const = 0;
+ virtual operator typename Triangulation<dim, spacedim>::cell_iterator()
+ const = 0;
/**
* Return the number of degrees of freedom the DoF
* handler object has to which the iterator belongs to.
*/
- virtual types::global_dof_index
- n_dofs_for_dof_handler() const = 0;
+ virtual types::global_dof_index n_dofs_for_dof_handler() const = 0;
#include "fe_values.decl.1.inst"
* Call @p get_interpolated_dof_values of the iterator with the
* given arguments.
*/
- virtual void
- get_interpolated_dof_values(const IndexSet & in,
- Vector<IndexSet::value_type> &out) const = 0;
+ virtual void get_interpolated_dof_values(const IndexSet & in,
+ Vector<IndexSet::value_type> &out)
+ const = 0;
};
/* --- classes derived from FEValuesBase<dim,spacedim>::CellIteratorBase --- */
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "mapping.inst"
//
// ---------------------------------------------------------------------
-#include <deal.II/base/std_cxx14/memory.h>
-
#include <deal.II/fe/mapping_c1.h>
#include <deal.II/grid/manifold.h>
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "mapping_c1.inst"
//
// ---------------------------------------------------------------------
-#include <deal.II/base/array_view.h>
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/qprojector.h>
#include <deal.II/base/quadrature.h>
//---------------------------------------------------------------------------
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "mapping_cartesian.inst"
//
// ---------------------------------------------------------------------
-#include <deal.II/base/array_view.h>
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/polynomial.h>
#include <deal.II/base/qprojector.h>
#ifndef SPLIT_INSTANTIATIONS_INDEX
# define SPLIT_INSTANTIATIONS_INDEX 0
#endif
+#include "deal.II/base/config.h"
+
#include "mapping_fe_field.inst"
// ---------------------------------------------------------------------
-#include <deal.II/base/array_view.h>
#include <deal.II/base/derivative_form.h>
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/qprojector.h>
#include <algorithm>
#include <array>
#include <cmath>
+#include <cstddef>
#include <memory>
#include <numeric>
}
//--------------------------- Explicit instantiations -----------------------
+#include "deal.II/base/config.h"
+
#include "mapping_manifold.inst"
//
// ---------------------------------------------------------------------
-#include <deal.II/base/array_view.h>
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/polynomial.h>
#include <deal.II/base/quadrature.h>
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "mapping_q.inst"
// ---------------------------------------------------------------------
-#include <deal.II/base/derivative_form.h>
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/qprojector.h>
#include <deal.II/base/quadrature.h>
//--------------------------- Explicit instantiations -----------------------
+#include "deal.II/base/config.h"
+
#include "mapping_q1.inst"
//
// ---------------------------------------------------------------------
-#include <deal.II/base/std_cxx14/memory.h>
-
#include <deal.II/dofs/dof_accessor.h>
#include <deal.II/dofs/dof_handler.h>
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "mapping_q1_eulerian.inst"
//
// ---------------------------------------------------------------------
-#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/std_cxx14/memory.h>
#include <deal.II/base/utilities.h>
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "mapping_q_eulerian.inst"
// ---------------------------------------------------------------------
-#include <deal.II/base/array_view.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/derivative_form.h>
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/qprojector.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/gmsh/utilities.h>
#include <deal.II/grid/grid_in.h>
}
// explicit instantiations
+#include "deal.II/base/config.h"
+
+#include "deal.II/base/types.h"
+
#include "cell_id.inst"
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
-#include <deal.II/distributed/shared_tria.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/distributed/tria.h>
#include <deal.II/grid/grid_generator.h>
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/exceptions.h>
#include <deal.II/base/path_search.h>
#include <deal.II/base/utilities.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/exceptions.h>
#include <deal.II/base/geometry_info.h>
#include <deal.II/base/parameter_handler.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/template_constraints.h>
-
#include <deal.II/grid/grid_refinement.h>
#include <deal.II/grid/tria.h>
#include <deal.II/grid/tria_accessor.h>
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "grid_refinement.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/base/timer.h>
+#include "deal.II/base/config.h"
+
+#include "deal.II/base/types.h"
#include <deal.II/base/utilities.h>
#include <deal.II/grid/grid_reordering.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/mpi.h>
#include <deal.II/base/mpi.templates.h>
#include <deal.II/base/quadrature_lib.h>
#include <tuple>
#include <unordered_map>
+namespace dealii
+{
+ template <typename Number>
+ class SparseMatrix;
+} // namespace dealii
+
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
-#include <deal.II/grid/grid_tools.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/grid/grid_tools_cache.h>
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
-#include <deal.II/base/geometry_info.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/point.h>
#include <deal.II/base/tensor.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/smartpointer.h>
#include <deal.II/distributed/shared_tria.h>
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "intergrid_map.inst"
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
-#include <deal.II/base/std_cxx14/memory.h>
#include <deal.II/base/table.h>
#include <deal.II/base/tensor.h>
}
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "manifold.inst"
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
-#include <deal.II/base/std_cxx14/memory.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/table.h>
#include <deal.II/base/tensor.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/memory_consumption.h>
+#include "deal.II/base/config.h"
#include <deal.II/grid/magic_numbers.h>
#include <deal.II/grid/persistent_tria.h>
#include <algorithm>
#include <array>
#include <cmath>
+#include <cstddef>
#include <functional>
#include <list>
#include <map>
// explicit instantiations
+#include "deal.II/base/config.h"
+
+#include "deal.II/base/types.h"
+
#include "tria.inst"
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
-#include <deal.II/base/geometry_info.h>
+#include "deal.II/base/config.h"
+
+#include "deal.II/base/types.h"
#include <deal.II/base/quadrature.h>
#include <deal.II/fe/fe_q.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/memory_consumption.h>
+#include "deal.II/base/config.h"
#include <deal.II/grid/tria_faces.h>
+#include <cstddef>
+
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
-#include <deal.II/base/memory_consumption.h>
+#include "deal.II/base/config.h"
#include <deal.II/grid/tria_levels.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/memory_consumption.h>
+#include "deal.II/base/config.h"
#include <deal.II/grid/tria.h>
#include <deal.II/grid/tria_accessor.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/memory_consumption.h>
+#include "deal.II/base/config.h"
#include <deal.II/hp/dof_faces.h>
+#include <cstddef>
+
DEAL_II_NAMESPACE_OPEN
namespace internal
//
// ---------------------------------------------------------------------
-#include <deal.II/base/geometry_info.h>
+#include "deal.II/base/config.h"
+
+#include "deal.II/base/types.h"
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/std_cxx14/memory.h>
#include <deal.II/base/thread_management.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/memory_consumption.h>
+#include "deal.II/base/config.h"
#include <deal.II/hp/dof_level.h>
#include <deal.II/hp/fe_collection.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/memory_consumption.h>
+#include "deal.II/base/config.h"
#include <deal.II/hp/fe_collection.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/fe/mapping_q1.h>
+#include "deal.II/base/config.h"
#include <deal.II/hp/fe_values.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/memory_consumption.h>
+#include "deal.II/base/config.h"
#include <deal.II/hp/mapping_collection.h>
DEAL_II_NAMESPACE_OPEN
+#include "deal.II/base/config.h"
+
#include "affine_constraints.inst"
/*
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/lac/block_matrix_array.h>
#include <deal.II/lac/block_vector.h>
#include <deal.II/lac/petsc_block_vector.h>
// ---------------------------------------------------------------------
-#include <deal.II/lac/block_sparse_matrix.templates.h>
-
DEAL_II_NAMESPACE_OPEN
+#include "deal.II/base/config.h"
+
#include "block_sparse_matrix.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/lac/block_sparse_matrix_ez.h>
#include <deal.II/lac/block_sparse_matrix_ez.templates.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/memory_consumption.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/vector_slice.h>
#include <deal.II/lac/block_sparsity_pattern.h>
// ---------------------------------------------------------------------
-#include <deal.II/lac/block_vector.templates.h>
-
DEAL_II_NAMESPACE_OPEN
+#include "deal.II/base/config.h"
+
#include "block_vector.inst"
// these functions can't be generated by the preprocessor since
//
// ---------------------------------------------------------------------
-#include <deal.II/lac/block_vector.h>
#include <deal.II/lac/chunk_sparse_matrix.templates.h>
DEAL_II_NAMESPACE_OPEN
+#include "deal.II/base/config.h"
+
#include "chunk_sparse_matrix.inst"
+
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/lac/chunk_sparsity_pattern.h>
#include <deal.II/lac/dynamic_sparsity_pattern.h>
#include <deal.II/lac/full_matrix.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/memory_consumption.h>
+#include "deal.II/base/config.h"
#include <deal.II/lac/dynamic_sparsity_pattern.h>
#include <deal.II/lac/sparsity_pattern.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/logstream.h>
-
#include <deal.II/lac/full_matrix.templates.h>
DEAL_II_NAMESPACE_OPEN
+#include "deal.II/base/config.h"
+
#include "full_matrix.inst"
-// instantiate for long double manually because we use it in a few places
-// inside the library
-template class FullMatrix<long double>;
template void
FullMatrix<long double>::invert<long double>(const FullMatrix<long double> &);
template void
//
// ---------------------------------------------------------------------
-#include <deal.II/lac/full_matrix.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/lac/la_parallel_block_vector.h>
#include <deal.II/lac/la_parallel_block_vector.templates.h>
#include <deal.II/lac/lapack_full_matrix.h>
DEAL_II_NAMESPACE_OPEN
+#include "deal.II/base/config.h"
+
#include "la_parallel_vector.inst"
// do a few functions that currently don't fit the scheme because they have
//
// ---------------------------------------------------------------------
-#include <deal.II/lac/la_vector.templates.h>
+#include "deal.II/base/config.h"
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
-#include <deal.II/base/numbers.h>
+#include "deal.II/base/config.h"
#include <deal.II/lac/block_vector.h>
#include <deal.II/lac/full_matrix.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/lac/matrix_lib.templates.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/lac/sparse_matrix.h>
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/lac/matrix_out.h>
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
-#include <deal.II/lac/precondition_block.templates.h>
#include <deal.II/lac/sparse_matrix.h>
DEAL_II_NAMESPACE_OPEN
+#include "deal.II/base/config.h"
+
#include "precondition_block.inst"
+
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
-#include <deal.II/lac/precondition_block.templates.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/lac/sparse_matrix_ez.h>
DEAL_II_NAMESPACE_OPEN
-// explicit instantiations for "float" PreconditionBlock
-template class PreconditionBlock<SparseMatrixEZ<float>, float>;
-
// the instantiation for class PreconditionBlock<SparseMatrixEZ<float>, double>
// is skipped because it does not make sense to have inverse block matrices with
// higher precision than the matrix itself
/*--------------------- PreconditionBlockJacobi -----------------------*/
-// explicit instantiations for "float" PreconditionBlock
-template class PreconditionBlockJacobi<SparseMatrixEZ<float>, float>;
-
template void
PreconditionBlockJacobi<SparseMatrixEZ<float>, float>::vmult<float>(
Vector<float> &,
/*--------------------- PreconditionBlockGaussSeidel -----------------------*/
-// explicit instantiations for "float" PreconditionBlock
-template class PreconditionBlockSOR<SparseMatrixEZ<float>, float>;
-
template void
PreconditionBlockSOR<SparseMatrixEZ<float>, float>::vmult<float>(
Vector<float> &,
/*--------------------- PreconditionBlockSSOR -----------------------*/
-// explicit instantiations for "float" PreconditionBlock
-template class PreconditionBlockSSOR<SparseMatrixEZ<float>, float>;
-
template void
PreconditionBlockSSOR<SparseMatrixEZ<float>, float>::vmult<float>(
Vector<float> &,
DEAL_II_NAMESPACE_OPEN
+#include "deal.II/base/config.h"
+
#include "read_write_vector.inst"
namespace LinearAlgebra
//
// ---------------------------------------------------------------------
-#include <deal.II/lac/relaxation_block.templates.h>
#include <deal.II/lac/sparse_matrix.h>
#include <deal.II/lac/trilinos_sparse_matrix.h>
DEAL_II_NAMESPACE_OPEN
+#include "deal.II/base/config.h"
+
#include "relaxation_block.inst"
+
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/lac/block_vector.h>
#include <deal.II/lac/la_parallel_block_vector.h>
#include <deal.II/lac/la_parallel_vector.h>
#include <deal.II/lac/la_vector.h>
DEAL_II_NAMESPACE_OPEN
+#include "deal.II/base/config.h"
+
#include "solver.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
+#include "deal.II/base/types.h"
+
#include <deal.II/lac/solver_bicgstab.h>
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
-#include <deal.II/base/logstream.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/parameter_handler.h>
#include <deal.II/base/signaling_nan.h>
// ---------------------------------------------------------------------
-#include <deal.II/lac/sparse_decomposition.templates.h>
+#include "deal.II/base/config.h"
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
-#include <deal.II/base/memory_consumption.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/thread_management.h>
#include <deal.II/lac/block_sparse_matrix.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/lac/sparse_ilu.templates.h>
+#include "deal.II/base/config.h"
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
-#include <deal.II/lac/block_vector.h>
#include <deal.II/lac/la_parallel_vector.h>
#include <deal.II/lac/sparse_matrix.templates.h>
#define SPLIT_INSTANTIATIONS_COUNT 2
#define SPLIT_INSTANTIATIONS_INDEX 0
+#include "deal.II/base/config.h"
+
#include "sparse_matrix.inst"
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
-#include <deal.II/lac/block_vector.h>
#include <deal.II/lac/sparse_matrix_ez.templates.h>
DEAL_II_NAMESPACE_OPEN
+#include "deal.II/base/config.h"
+
#include "sparse_matrix_ez.inst"
+
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/lac/block_vector.h>
#include <deal.II/lac/la_parallel_vector.h>
#include <deal.II/lac/sparse_matrix.templates.h>
#define SPLIT_INSTANTIATIONS_COUNT 2
#define SPLIT_INSTANTIATIONS_INDEX 1
+#include "deal.II/base/config.h"
+
#include "sparse_matrix.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/lac/sparse_mic.templates.h>
+#include "deal.II/base/config.h"
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
-#include <deal.II/lac/sparse_vanka.templates.h>
+#include "deal.II/base/config.h"
DEAL_II_NAMESPACE_OPEN
const Vector<double> &src) const;
-template class SparseBlockVanka<float>;
-template class SparseBlockVanka<double>;
-
template void
SparseBlockVanka<double>::vmult<float>(Vector<float> & dst,
const Vector<float> &src) const;
// ---------------------------------------------------------------------
-#include <deal.II/base/std_cxx14/memory.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/utilities.h>
#include <deal.II/base/vector_slice.h>
# include <zoltan_cpp.h>
#endif
+#include "deal.II/base/config.h"
+
#include <string>
//
// ---------------------------------------------------------------------
-#include <deal.II/lac/swappable_vector.templates.h>
+#include "deal.II/base/config.h"
DEAL_II_NAMESPACE_OPEN
// ---------------------------------------------------------------------
-#include <deal.II/lac/lapack_templates.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/lac/tridiagonal_matrix.h>
#include <deal.II/lac/vector.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/lac/vector.templates.h>
-
DEAL_II_NAMESPACE_OPEN
+#include "deal.II/base/config.h"
+
#include "vector.inst"
// instantiate for integers:
//
// ---------------------------------------------------------------------
-#include <deal.II/lac/block_vector.h>
#include <deal.II/lac/cuda_vector.h>
#include <deal.II/lac/la_parallel_block_vector.h>
#include <deal.II/lac/la_parallel_vector.h>
DEAL_II_NAMESPACE_OPEN
+#include "deal.II/base/config.h"
+
#include "vector_memory.inst"
#ifdef DEAL_II_WITH_CUDA
DEAL_II_NAMESPACE_OPEN
+#include "deal.II/base/config.h"
+
#include "vector_view.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/base/conditional_ostream.h>
#include <deal.II/base/utilities.h>
#include <deal.II/matrix_free/mapping_info.templates.h>
DEAL_II_NAMESPACE_OPEN
+#include "deal.II/base/config.h"
+
#include "mapping_info.inst"
template struct internal::MatrixFreeFunctions::FPArrayComparator<double>;
// ---------------------------------------------------------------------
-#include <deal.II/base/conditional_ostream.h>
#include <deal.II/base/utilities.h>
#include <deal.II/base/vectorization.h>
DEAL_II_NAMESPACE_OPEN
+#include "deal.II/base/config.h"
+
#include "matrix_free.inst"
template struct internal::MatrixFreeFunctions::ShapeInfo<double>;
// ---------------------------------------------------------------------
-#include <deal.II/base/conditional_ostream.h>
#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/mpi.h>
#include <deal.II/base/multithread_info.h>
# include <tbb/task_scheduler_init.h>
#endif
+#include "deal.II/base/config.h"
+
#include <iostream>
#include <set>
// ---------------------------------------------------------------------
-#include <deal.II/lac/block_indices.h>
+#include "deal.II/base/config.h"
#include <deal.II/meshworker/local_integrator.h>
#include <deal.II/meshworker/local_results.h>
// ---------------------------------------------------------------------
-#include <deal.II/lac/block_vector.h>
#include <deal.II/lac/trilinos_parallel_block_vector.h>
#include <deal.II/lac/trilinos_vector.h>
#include <deal.II/lac/vector.h>
DEAL_II_NAMESPACE_OPEN
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "mesh_worker_info.inst"
// ---------------------------------------------------------------------
-#include <deal.II/lac/block_vector.h>
#include <deal.II/lac/la_parallel_block_vector.h>
#include <deal.II/lac/la_parallel_vector.h>
#include <deal.II/lac/la_vector.h>
DEAL_II_NAMESPACE_OPEN
+#include "deal.II/base/config.h"
+
#include "mesh_worker_vector_selector.inst"
//
// ---------------------------------------------------------------------
-#include <deal.II/lac/block_vector.h>
#include <deal.II/lac/la_parallel_block_vector.h>
#include <deal.II/lac/la_parallel_vector.h>
#include <deal.II/lac/la_vector.h>
// Explicit instantiations
+#include "deal.II/base/config.h"
+
#include "mg_base.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/base/function.h>
#include <deal.II/base/logstream.h>
#include <deal.II/dofs/dof_accessor.h>
// explicit instantiation
+#include "deal.II/base/config.h"
+
#include "mg_level_global_transfer.inst"
// create an additional instantiation currently not supported by the automatic
//
// ---------------------------------------------------------------------
-#include <deal.II/base/logstream.h>
+#include "deal.II/base/config.h"
+
+#include "deal.II/base/types.h"
#include <deal.II/base/mg_level_object.h>
#include <deal.II/base/thread_management.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/logstream.h>
+#include "deal.II/base/config.h"
#include <deal.II/dofs/dof_accessor.h>
#include <deal.II/dofs/dof_tools.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/function.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/logstream.h>
#include <deal.II/dofs/dof_accessor.h>
// ---------------------------------------------------------------------
-#include <deal.II/distributed/tria.h>
+#include "deal.II/base/config.h"
+
+#include "deal.II/base/types.h"
#include <deal.II/dofs/dof_tools.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/function.h>
#include <deal.II/base/logstream.h>
#include <deal.II/base/vectorization.h>
// explicit instantiation
+#include "deal.II/base/config.h"
+
#include "mg_transfer_matrix_free.inst"
// ---------------------------------------------------------------------
-#include <deal.II/base/function.h>
#include <deal.II/base/logstream.h>
#include <deal.II/dofs/dof_accessor.h>
// explicit instantiation
+#include "deal.II/base/config.h"
+
#include "mg_transfer_prebuilt.inst"
// ---------------------------------------------------------------------
-#include <deal.II/lac/block_sparse_matrix.h>
#include <deal.II/lac/la_parallel_block_vector.h>
#include <deal.II/lac/la_parallel_vector.h>
#include <deal.II/lac/la_vector.h>
// Explicit instantiations
+#include "deal.II/base/config.h"
+
#include "multigrid.inst"
template class MGTransferBlock<float>;
template class MGTransferBlock<double>;
-template class MGTransferSelect<float>;
-template class MGTransferSelect<double>;
-template class MGTransferBlockSelect<float>;
-template class MGTransferBlockSelect<double>;
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/exceptions.h>
#include <deal.II/base/point.h>
#include <deal.II/base/tensor.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/non_matching/immersed_surface_quadrature.h>
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
-#include <deal.II/base/work_stream.h>
+#include "deal.II/base/config.h"
#include <deal.II/dofs/dof_accessor.h>
#include <deal.II/dofs/dof_handler.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/lac/block_vector.h>
#include <deal.II/lac/la_parallel_block_vector.h>
#include <deal.II/lac/la_parallel_vector.h>
#include <deal.II/lac/la_vector.h>
#define SPLIT_INSTANTIATIONS_COUNT 2
#define SPLIT_INSTANTIATIONS_INDEX 0
+#include "deal.II/base/config.h"
+
#include "data_out_dof_data.inst"
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
-#include <deal.II/lac/block_vector.h>
#include <deal.II/lac/la_parallel_block_vector.h>
#include <deal.II/lac/la_parallel_vector.h>
#include <deal.II/lac/la_vector.h>
DEAL_II_NAMESPACE_OPEN
+#include "deal.II/base/config.h"
+
#include "data_out_dof_data_codim.inst"
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
-#include <deal.II/lac/block_vector.h>
#include <deal.II/lac/la_parallel_block_vector.h>
#include <deal.II/lac/la_parallel_vector.h>
#include <deal.II/lac/la_vector.h>
#define SPLIT_INSTANTIATIONS_COUNT 2
#define SPLIT_INSTANTIATIONS_INDEX 1
+#include "deal.II/base/config.h"
+
#include "data_out_dof_data.inst"
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
-#include <deal.II/base/quadrature_lib.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/work_stream.h>
#include <deal.II/dofs/dof_accessor.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/quadrature_lib.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/work_stream.h>
#include <deal.II/dofs/dof_accessor.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/quadrature_lib.h>
#include <deal.II/dofs/dof_accessor.h>
#include <deal.II/numerics/data_out_stack.h>
+#include <cstddef>
#include <sstream>
DEAL_II_NAMESPACE_OPEN
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "data_out_stack.inst"
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/work_stream.h>
// ---------------------------------------------------------------------
-#include <deal.II/base/logstream.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/base/parameter_handler.h>
#include <deal.II/lac/block_vector.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/numerics/error_estimator.templates.h>
-
DEAL_II_NAMESPACE_OPEN
#define SPLIT_INSTANTIATIONS_COUNT 2
#define SPLIT_INSTANTIATIONS_INDEX 0
+#include "deal.II/base/config.h"
+
#include "error_estimator.inst"
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
-#include <deal.II/base/geometry_info.h>
#include <deal.II/base/quadrature.h>
#include <deal.II/base/quadrature_lib.h>
#include <deal.II/base/thread_management.h>
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "error_estimator_1d.inst"
//
// ---------------------------------------------------------------------
-#include <deal.II/numerics/error_estimator.templates.h>
-
DEAL_II_NAMESPACE_OPEN
#define SPLIT_INSTANTIATIONS_COUNT 2
#define SPLIT_INSTANTIATIONS_INDEX 1
+#include "deal.II/base/config.h"
+
#include "error_estimator.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/dofs/dof_accessor.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/dofs/dof_handler.h>
#include <deal.II/hp/dof_handler.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/memory_consumption.h>
+#include "deal.II/base/config.h"
#include <deal.II/lac/vector.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/numerics/kdtree.h>
#ifdef DEAL_II_WITH_NANOFLANN
//
// ---------------------------------------------------------------------
-#include <deal.II/numerics/matrix_creator.templates.h>
-
DEAL_II_NAMESPACE_OPEN
#ifndef SPLIT_INSTANTIATIONS_INDEX
# define SPLIT_INSTANTIATIONS_INDEX 0
#endif
+#include "deal.II/base/config.h"
+
#include "matrix_creator.inst"
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
-#include <deal.II/base/function.h>
#include <deal.II/base/geometry_info.h>
#include <deal.II/base/quadrature.h>
#include <deal.II/base/work_stream.h>
# include <deal.II/lac/trilinos_vector.h>
#endif
+#include "deal.II/base/config.h"
+
+#include "deal.II/base/types.h"
+
#include <algorithm>
#include <cmath>
#include <set>
+namespace dealii
+{
+ template <typename number>
+ class Vector;
+} // namespace dealii
+
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
-#include <deal.II/base/function.h>
#include <deal.II/base/geometry_info.h>
#include <deal.II/base/quadrature.h>
#include <deal.II/base/work_stream.h>
# include <deal.II/lac/trilinos_vector.h>
#endif
+#include "deal.II/base/config.h"
+
#include <algorithm>
#include <cmath>
// ---------------------------------------------------------------------
-#include <deal.II/lac/block_vector.h>
+#include "deal.II/base/config.h"
+
#include <deal.II/lac/la_parallel_block_vector.h>
#include <deal.II/lac/la_parallel_vector.h>
#include <deal.II/lac/la_vector.h>
//
// ---------------------------------------------------------------------
-#include <deal.II/base/memory_consumption.h>
-
#include <deal.II/distributed/tria.h>
#include <deal.II/dofs/dof_accessor.h>
#ifndef SPLIT_INSTANTIATIONS_INDEX
# define SPLIT_INSTANTIATIONS_INDEX 0
#endif
+#include "deal.II/base/config.h"
+
#include "solution_transfer.inst"
DEAL_II_NAMESPACE_CLOSE
//
// ---------------------------------------------------------------------
-#include <deal.II/base/memory_consumption.h>
#include <deal.II/base/parallel.h>
#include <deal.II/base/thread_management.h>
#include <deal.II/base/utilities.h>
/*-------------- Explicit Instantiations -------------------------------*/
+#include "deal.II/base/config.h"
+
#include "time_dependent.inst"
// ---------------------------------------------------------------------
-#include <deal.II/numerics/vector_tools.templates.h>
-
DEAL_II_NAMESPACE_OPEN
// ---------------------------- explicit instantiations --------------------
+#include "deal.II/base/config.h"
+
#include "vector_tools_boundary.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/numerics/vector_tools.templates.h>
-
DEAL_II_NAMESPACE_OPEN
// ---------------------------- explicit instantiations --------------------
+#include "deal.II/base/config.h"
+
#include "vector_tools_constraints.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/numerics/vector_tools.templates.h>
-
DEAL_II_NAMESPACE_OPEN
// ---------------------------- explicit instantiations --------------------
+#include "deal.II/base/config.h"
+
#include "vector_tools_integrate_difference.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/numerics/vector_tools.templates.h>
-
DEAL_II_NAMESPACE_OPEN
// ---------------------------- explicit instantiations --------------------
+#include "deal.II/base/config.h"
+
#include "vector_tools_interpolate.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/numerics/vector_tools.templates.h>
-
DEAL_II_NAMESPACE_OPEN
// ---------------------------- explicit instantiations --------------------
+#include "deal.II/base/config.h"
+
#include "vector_tools_mean_value.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/numerics/vector_tools.templates.h>
-
DEAL_II_NAMESPACE_OPEN
// ---------------------------- explicit instantiations --------------------
+#include "deal.II/base/config.h"
+
#include "vector_tools_point_gradient.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/numerics/vector_tools.templates.h>
-
DEAL_II_NAMESPACE_OPEN
// ---------------------------- explicit instantiations --------------------
+#include "deal.II/base/config.h"
+
#include "vector_tools_point_value.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/numerics/vector_tools.templates.h>
-
DEAL_II_NAMESPACE_OPEN
// ---------------------------- explicit instantiations --------------------
#ifndef SPLIT_INSTANTIATIONS_INDEX
# define SPLIT_INSTANTIATIONS_INDEX 0
#endif
+#include "deal.II/base/config.h"
+
#include "vector_tools_project.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/numerics/vector_tools.templates.h>
-
DEAL_II_NAMESPACE_OPEN
// ---------------------------- explicit instantiations --------------------
+#include "deal.II/base/config.h"
+
#include "vector_tools_project_codim.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/numerics/vector_tools.templates.h>
-
DEAL_II_NAMESPACE_OPEN
// ---------------------------- explicit instantiations --------------------
+#include "deal.II/base/config.h"
+
#include "vector_tools_project_hp.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/numerics/vector_tools.templates.h>
-
DEAL_II_NAMESPACE_OPEN
// ---------------------------- explicit instantiations --------------------
+#include "deal.II/base/config.h"
+
#include "vector_tools_project_qp.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/numerics/vector_tools.templates.h>
-
DEAL_II_NAMESPACE_OPEN
// ---------------------------- explicit instantiations --------------------
+#include "deal.II/base/config.h"
+
#include "vector_tools_project_qpmf.inst"
DEAL_II_NAMESPACE_CLOSE
// ---------------------------------------------------------------------
-#include <deal.II/numerics/vector_tools.templates.h>
+#include "deal.II/base/config.h"
+
+namespace dealii
+{
+ template <typename Number>
+ class Vector;
+} // namespace dealii
DEAL_II_NAMESPACE_OPEN
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/opencascade/boundary_lib.h>
#ifdef DEAL_II_WITH_OPENCASCADE
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/opencascade/manifold_lib.h>
#ifdef DEAL_II_WITH_OPENCASCADE
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/opencascade/utilities.h>
#ifdef DEAL_II_WITH_OPENCASCADE
//
// ---------------------------------------------------------------------
+#include "deal.II/base/array_view.h"
+
#include <deal.II/particles/particle.h>
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
+#include "deal.II/base/array_view.h"
+
#include <deal.II/particles/particle_accessor.h>
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
-#include <deal.II/base/std_cxx14/memory.h>
+#include "deal.II/base/config.h"
#include <deal.II/grid/grid_tools.h>
#include <deal.II/grid/grid_tools_cache.h>
//
// ---------------------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/particles/particle_iterator.h>
DEAL_II_NAMESPACE_OPEN
// ---------------------------------------------------------------------
+#include "deal.II/base/array_view.h"
+
#include <deal.II/particles/property_pool.h>
DEAL_II_NAMESPACE_OPEN
//
// ---------------------------------------------------------------------
-#include <deal.II/base/symmetric_tensor.h>
-
#include <deal.II/physics/elasticity/standard_tensors.h>
DEAL_II_NAMESPACE_OPEN
#endif // DOXYGEN
// explicit instantiations
+#include "deal.II/base/config.h"
+
#include "standard_tensors.inst"
DEAL_II_NAMESPACE_CLOSE
//
//-----------------------------------------------------------
+#include "deal.II/base/config.h"
+
#include <deal.II/sundials/copy.h>
+#include <cstddef>
+
#ifdef DEAL_II_WITH_SUNDIALS
DEAL_II_NAMESPACE_OPEN