From: Daniel Arndt Date: Sun, 16 Sep 2018 13:38:06 +0000 (+0200) Subject: run_iwyu X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fheads%2Frun_iwyu;p=dealii.git run_iwyu --- diff --git a/cmake/scripts/expand_instantiations.cc b/cmake/scripts/expand_instantiations.cc index 51ed7230c5..663b6ef601 100644 --- a/cmake/scripts/expand_instantiations.cc +++ b/cmake/scripts/expand_instantiations.cc @@ -44,7 +44,7 @@ // Author: Wolfgang Bangerth, 2007 -#include +#include #include #include #include diff --git a/examples/step-1/step-1.cc b/examples/step-1/step-1.cc index 3c29516d88..8dd00d64ec 100644 --- a/examples/step-1/step-1.cc +++ b/examples/step-1/step-1.cc @@ -17,9 +17,6 @@ // @sect3{Include files} -// The most fundamental class in the library is the Triangulation class, which -// is declared here: -#include // We need the following two includes for loops over cells and/or faces: #include #include @@ -27,7 +24,6 @@ #include // Output of grids in various graphics formats: #include - // This is needed for C++ output: #include #include diff --git a/examples/step-11/step-11.cc b/examples/step-11/step-11.cc index 775f54fd5f..7cff674601 100644 --- a/examples/step-11/step-11.cc +++ b/examples/step-11/step-11.cc @@ -18,9 +18,6 @@ */ -// As usual, the program starts with a rather long list of include files which -// you are probably already used to by now: -#include #include #include #include @@ -41,12 +38,10 @@ #include #include #include - // Just this one is new: it declares a class // DynamicSparsityPattern, which we will use and explain // further down below. #include - // 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 diff --git a/examples/step-12/step-12.cc b/examples/step-12/step-12.cc index 3df36e8819..3406a1d5b9 100644 --- a/examples/step-12/step-12.cc +++ b/examples/step-12/step-12.cc @@ -18,9 +18,6 @@ */ -// The first few files have already been covered in previous examples and will -// thus not be further commented on: -#include #include #include #include @@ -52,7 +49,6 @@ #include // We are going to use gradients as refinement indicator. #include - // 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 @@ -67,7 +63,6 @@ #include #include #include - // 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. diff --git a/examples/step-14/step-14.cc b/examples/step-14/step-14.cc index e9d3df7eb5..f11bc7e2a5 100644 --- a/examples/step-14/step-14.cc +++ b/examples/step-14/step-14.cc @@ -48,13 +48,14 @@ #include #include #include - #include #include #include #include #include +#include "deal.II/base/types.h" + // The last step is as in all previous programs: namespace Step14 { diff --git a/examples/step-16/step-16.cc b/examples/step-16/step-16.cc index c6cc1c80be..98842f7bd2 100644 --- a/examples/step-16/step-16.cc +++ b/examples/step-16/step-16.cc @@ -22,36 +22,27 @@ // @sect3{Include files} -// Again, the first few include files are already known, so we won't comment -// on them: -#include #include #include #include - #include #include #include #include #include #include - #include #include #include #include #include - #include #include - #include #include - #include #include #include - // 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 @@ -68,12 +59,9 @@ #include #include #include - // We will be using MeshWorker::mesh_loop to loop over the cells, so include it // here: #include - - // This is C++: #include #include diff --git a/examples/step-16b/step-16b.cc b/examples/step-16b/step-16b.cc index b35c6d4f55..08e68e09d2 100644 --- a/examples/step-16b/step-16b.cc +++ b/examples/step-16b/step-16b.cc @@ -21,36 +21,27 @@ // @sect3{Include files} -// Again, the first few include files are already known, so we won't comment -// on them: -#include #include #include #include - #include #include #include #include #include #include - #include #include #include #include #include - #include #include - #include #include - #include #include #include - // 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 @@ -67,7 +58,6 @@ #include #include #include - // 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 @@ -78,11 +68,9 @@ #include #include #include - // In order to save effort, we use the pre-implemented Laplacian found in #include #include - // This is C++: #include #include diff --git a/examples/step-2/step-2.cc b/examples/step-2/step-2.cc index bf602061d3..ee0fe325f8 100644 --- a/examples/step-2/step-2.cc +++ b/examples/step-2/step-2.cc @@ -18,18 +18,13 @@ */ -// The first few includes are just like in the previous program, so do not -// require additional comments: -#include #include #include #include #include - // 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 - // 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 @@ -49,11 +44,9 @@ // We will also need to use an intermediate sparsity pattern structure, which // is found in this file: #include - // We will want to use a special algorithm to renumber degrees of freedom. It // is declared here: #include - // And this is again needed for C++ output: #include diff --git a/examples/step-23/step-23.cc b/examples/step-23/step-23.cc index 015f89af75..76dcba5949 100644 --- a/examples/step-23/step-23.cc +++ b/examples/step-23/step-23.cc @@ -20,12 +20,8 @@ // @sect3{Include files} -// We start with the usual assortment of include files that we've seen in so -// many of the previous tests: -#include #include #include - #include #include #include @@ -33,24 +29,16 @@ #include #include #include - #include #include #include #include - #include #include #include - #include #include - #include - -#include -#include - // 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 @@ -63,7 +51,6 @@ // code. However, we're too lazy to do that here, so simply use a library // function: #include - // 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 @@ -71,7 +58,6 @@ // therefore use the MatrixCreator::create_mass_matrix and // MatrixCreator::create_laplace_matrix functions. They are declared here: #include - // 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 @@ -82,6 +68,9 @@ // 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 +#include +#include +#include // The last step is as in all previous programs: namespace Step23 diff --git a/examples/step-25/step-25.cc b/examples/step-25/step-25.cc index bdcf0d217a..62f2f23b01 100644 --- a/examples/step-25/step-25.cc +++ b/examples/step-25/step-25.cc @@ -49,7 +49,7 @@ #include #include #include - +#include #include #include diff --git a/examples/step-26/step-26.cc b/examples/step-26/step-26.cc index 7879eedf5c..be6f66de8d 100644 --- a/examples/step-26/step-26.cc +++ b/examples/step-26/step-26.cc @@ -18,9 +18,6 @@ */ -// The program starts with the usual include files, all of which you should -// have seen before by now: -#include #include #include #include @@ -47,7 +44,6 @@ #include #include #include - #include #include diff --git a/examples/step-29/step-29.cc b/examples/step-29/step-29.cc index b7f6b3be32..87417061f6 100644 --- a/examples/step-29/step-29.cc +++ b/examples/step-29/step-29.cc @@ -23,55 +23,44 @@ // The following header files are unchanged from step-7 and have been // discussed before: -#include #include #include - #include #include #include #include - #include #include #include #include #include - #include #include #include - #include #include - #include #include #include - -#include -#include - // This header file contains the necessary declarations for the // ParameterHandler class that we will use to read our parameters from a // configuration file: #include - // 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 - // 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 - // 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 +#include +#include // 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 diff --git a/examples/step-3/step-3.cc b/examples/step-3/step-3.cc index 1e50eef4db..730f9174c0 100644 --- a/examples/step-3/step-3.cc +++ b/examples/step-3/step-3.cc @@ -21,13 +21,9 @@ // @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 #include // And this is the file in which the functions are declared that create grids: #include - // 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 @@ -35,26 +31,21 @@ #include #include #include - // This file contains the description of the Lagrange interpolation finite // element: #include - // And this file is needed for the creation of sparsity patterns of sparse // matrices, as shown in previous examples: #include - // 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 #include - // The following three include files we need for the treatment of boundary // values: #include #include #include - // 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 @@ -69,7 +60,6 @@ #include #include #include - // Finally, this is for output to a file and to the console: #include #include diff --git a/examples/step-34/step-34.cc b/examples/step-34/step-34.cc index 30a89f590b..e75a079b2f 100644 --- a/examples/step-34/step-34.cc +++ b/examples/step-34/step-34.cc @@ -20,22 +20,16 @@ // @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 #include #include #include #include #include - #include #include #include #include #include - #include #include #include @@ -43,18 +37,14 @@ #include #include #include - #include #include #include - #include #include #include - #include #include - // And here are a few C++ standard header files that we will need: #include #include diff --git a/examples/step-37/step-37.cc b/examples/step-37/step-37.cc index facd794e4f..e464534a12 100644 --- a/examples/step-37/step-37.cc +++ b/examples/step-37/step-37.cc @@ -19,41 +19,34 @@ */ -// First include the necessary files from the deal.II library. -#include #include #include - #include #include #include #include - #include - #include #include - #include #include #include #include #include #include - #include #include - // This includes the data structures for the efficient implementation of // matrix-free methods or more generic finite element operators with the class // MatrixFree. #include #include #include - #include #include +#include "deal.II/base/config.h" + namespace Step37 { diff --git a/examples/step-4/step-4.cc b/examples/step-4/step-4.cc index a63c86d40e..1f326d9ffc 100644 --- a/examples/step-4/step-4.cc +++ b/examples/step-4/step-4.cc @@ -20,9 +20,6 @@ // @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 #include #include #include @@ -41,16 +38,14 @@ #include #include #include - #include -#include -#include - // 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 +#include +#include // The final step, as in previous programs, is to import all the deal.II class // and function names into the global namespace: diff --git a/examples/step-44/step-44.cc b/examples/step-44/step-44.cc index 5f2f57dc71..fcf1038e20 100644 --- a/examples/step-44/step-44.cc +++ b/examples/step-44/step-44.cc @@ -33,23 +33,19 @@ #include #include #include - // This header gives us the functionality to store // data at quadrature points #include - #include #include #include #include - #include #include #include #include #include #include - #include #include #include @@ -59,7 +55,6 @@ #include #include #include - // Here are the headers necessary to use the LinearOperator class. // These are also all conveniently packaged into a single // header file, namely @@ -67,19 +62,18 @@ // of transparency. #include #include - #include #include - // 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 #include - #include #include +#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 @@ -832,13 +826,10 @@ namespace Step44 // 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; diff --git a/examples/step-46/step-46.cc b/examples/step-46/step-46.cc index 7fba5e6a72..b4bac834da 100644 --- a/examples/step-46/step-46.cc +++ b/examples/step-46/step-46.cc @@ -29,35 +29,29 @@ #include #include #include - #include #include #include #include #include - #include #include #include #include #include - #include #include - #include #include #include #include - #include #include #include - #include #include #include - +#include #include #include diff --git a/examples/step-48/step-48.cc b/examples/step-48/step-48.cc index 5c9635662a..d48594fc5f 100644 --- a/examples/step-48/step-48.cc +++ b/examples/step-48/step-48.cc @@ -18,8 +18,6 @@ */ -// The necessary files from the deal.II library. -#include #include #include #include @@ -35,13 +33,12 @@ #include #include #include - // This includes the data structures for the efficient implementation of // matrix-free methods. #include #include #include - +#include #include #include #include diff --git a/examples/step-49/step-49.cc b/examples/step-49/step-49.cc index a40312e76b..1164ceceeb 100644 --- a/examples/step-49/step-49.cc +++ b/examples/step-49/step-49.cc @@ -28,7 +28,6 @@ // @sect3{Include files} -#include #include #include #include @@ -36,10 +35,8 @@ #include #include #include - #include #include - #include using namespace dealii; diff --git a/examples/step-52/step-52.cc b/examples/step-52/step-52.cc index ff0040dc30..0300cde460 100644 --- a/examples/step-52/step-52.cc +++ b/examples/step-52/step-52.cc @@ -23,34 +23,34 @@ // deal.II library files and some C++ header files. #include #include - #include #include #include #include #include - #include #include #include - #include #include - #include #include - #include #include - +// This is the only include file that is new: It includes all the Runge-Kutta +// methods. +#include +#include #include #include #include #include -// This is the only include file that is new: It includes all the Runge-Kutta -// methods. -#include +namespace dealii +{ + template + class Vector; +} // namespace dealii // The next step is like in all previous tutorial programs: We put everything diff --git a/examples/step-53/step-53.cc b/examples/step-53/step-53.cc index f60c0755e1..9d0e0c0056 100644 --- a/examples/step-53/step-53.cc +++ b/examples/step-53/step-53.cc @@ -19,21 +19,10 @@ * D. Sarah Stamps, MIT, 2014 */ -// Let us start with the include files we need here. Obviously, we need the -// ones that describe the triangulation (tria.h), and that allow -// us to create and output triangulations (grid_generator.h and -// grid_out.h). Furthermore, we need the header file that -// declares the Manifold and ChartManifold classes that we will need to -// describe the geometry (manifold.h). 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 #include #include #include #include - // 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 @@ -41,17 +30,14 @@ // read from is stored as gzip compressed data and we make use of some // BOOST-provided functionality to read directly from gzipped data. #include - #include #include #include - // 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 - #include #include diff --git a/examples/step-59/step-59.cc b/examples/step-59/step-59.cc index 6e87415d00..f68a111096 100644 --- a/examples/step-59/step-59.cc +++ b/examples/step-59/step-59.cc @@ -26,38 +26,34 @@ #include #include #include - #include #include #include #include #include #include - #include #include - #include #include #include #include #include - #include #include #include #include #include #include - #include - #include #include - +#include #include #include +#include "deal.II/base/types.h" + namespace Step59 { diff --git a/examples/step-9/step-9.cc b/examples/step-9/step-9.cc index 7a19ff1ecb..8aa9a768b9 100644 --- a/examples/step-9/step-9.cc +++ b/examples/step-9/step-9.cc @@ -18,9 +18,6 @@ */ -// Just as in previous examples, we have to include several files of which the -// meaning has already been discussed: -#include #include #include #include @@ -44,7 +41,6 @@ #include #include #include - // 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 @@ -54,14 +50,11 @@ // how many threads to start in parallel. #include #include - // The next new include file declares a base class TensorFunction // not unlike the Function class, but with the difference that // TensorFunction::value returns a Tensor instead of a scalar. #include - #include - // This is C++, as we want to write some output to disk: #include #include diff --git a/include/deal.II/algorithms/timestep_control.h b/include/deal.II/algorithms/timestep_control.h index 5169fed80b..61bb48bb69 100644 --- a/include/deal.II/algorithms/timestep_control.h +++ b/include/deal.II/algorithms/timestep_control.h @@ -17,6 +17,8 @@ #ifndef dealii_time_step_control_h #define dealii_time_step_control_h +#include "deal.II/base/config.h" + #include #include diff --git a/include/deal.II/base/data_out_base.h b/include/deal.II/base/data_out_base.h index 8b9fa93e52..930650ac86 100644 --- a/include/deal.II/base/data_out_base.h +++ b/include/deal.II/base/data_out_base.h @@ -26,6 +26,7 @@ #include +#include #include #include #include @@ -40,6 +41,8 @@ # include "TECIO.h" #endif +#include "deal.II/base/types.h" + #include DEAL_II_NAMESPACE_OPEN diff --git a/include/deal.II/base/exceptions.h b/include/deal.II/base/exceptions.h index 7c0369f33f..53ff2963f2 100644 --- a/include/deal.II/base/exceptions.h +++ b/include/deal.II/base/exceptions.h @@ -18,6 +18,7 @@ #include +#include #include #include #include @@ -1388,6 +1389,7 @@ namespace internal // https://stackoverflow.com/questions/13842468/comma-in-c-c-macro template struct argument_type; + template struct argument_type { diff --git a/include/deal.II/base/geometry_info.h b/include/deal.II/base/geometry_info.h index 31e75d1f0e..6d6069b7db 100644 --- a/include/deal.II/base/geometry_info.h +++ b/include/deal.II/base/geometry_info.h @@ -22,6 +22,7 @@ #include #include +#include #include @@ -75,6 +76,7 @@ namespace internal vertex_to_face{{{{0, 2}}, {{1, 2}}, {{0, 3}}, {{1, 3}}}}; }; + template <> struct Initializers<3> { diff --git a/include/deal.II/base/index_set.h b/include/deal.II/base/index_set.h index 7246e0bfa2..8e6f29bd1f 100644 --- a/include/deal.II/base/index_set.h +++ b/include/deal.II/base/index_set.h @@ -18,6 +18,7 @@ #include +#include "deal.II/base/types.h" #include #include #include @@ -25,6 +26,7 @@ #include #include +#include #include #include diff --git a/include/deal.II/base/multithread_info.h b/include/deal.II/base/multithread_info.h index 18de23ca19..8903db7e60 100644 --- a/include/deal.II/base/multithread_info.h +++ b/include/deal.II/base/multithread_info.h @@ -20,9 +20,12 @@ # include +# include "deal.II/base/types.h" # include # include +# include + DEAL_II_NAMESPACE_OPEN /** diff --git a/include/deal.II/base/parsed_function.h b/include/deal.II/base/parsed_function.h index 8c8420c95d..cb834bbe91 100644 --- a/include/deal.II/base/parsed_function.h +++ b/include/deal.II/base/parsed_function.h @@ -17,6 +17,8 @@ #ifndef dealii_parsed_function_h #define dealii_parsed_function_h +#include "deal.II/base/config.h" + #include #include #include @@ -194,6 +196,7 @@ namespace Functions * component you want to have evaluated; it defaults to zero, i.e. the * first component. */ + virtual double value(const Point &p, const unsigned int component = 0) const override; diff --git a/include/deal.II/base/partitioner.h b/include/deal.II/base/partitioner.h index 1c2f6efeac..6287b6c1c3 100644 --- a/include/deal.II/base/partitioner.h +++ b/include/deal.II/base/partitioner.h @@ -18,6 +18,7 @@ #include +#include "deal.II/base/types.h" #include #include #include @@ -29,6 +30,7 @@ #include #include +#include #include diff --git a/include/deal.II/base/polynomials_adini.h b/include/deal.II/base/polynomials_adini.h index 79c2d4f380..fb11631146 100644 --- a/include/deal.II/base/polynomials_adini.h +++ b/include/deal.II/base/polynomials_adini.h @@ -17,6 +17,8 @@ #ifndef dealii_polynomials_adini_h #define dealii_polynomials_adini_h +#include "deal.II/base/config.h" + #include #include #include diff --git a/include/deal.II/base/polynomials_bernstein.h b/include/deal.II/base/polynomials_bernstein.h index 67b47b85ca..60d394d2ea 100644 --- a/include/deal.II/base/polynomials_bernstein.h +++ b/include/deal.II/base/polynomials_bernstein.h @@ -17,6 +17,8 @@ #define dealii_polynomials_bernstein_h +#include "deal.II/base/config.h" + #include #include diff --git a/include/deal.II/base/polynomials_p.h b/include/deal.II/base/polynomials_p.h index 632594fe55..bad077d6fd 100644 --- a/include/deal.II/base/polynomials_p.h +++ b/include/deal.II/base/polynomials_p.h @@ -109,6 +109,7 @@ PolynomialsP::directional_degrees(unsigned int n) const return this->compute_index(n); } + DEAL_II_NAMESPACE_CLOSE #endif diff --git a/include/deal.II/base/polynomials_piecewise.h b/include/deal.II/base/polynomials_piecewise.h index d94a30f493..613e59fd84 100644 --- a/include/deal.II/base/polynomials_piecewise.h +++ b/include/deal.II/base/polynomials_piecewise.h @@ -149,6 +149,7 @@ namespace Polynomials * A variable storing the index of the current polynomial in the range of * intervals. */ + unsigned int interval; /** diff --git a/include/deal.II/base/vectorization.h b/include/deal.II/base/vectorization.h index 084980e077..88fd305ed2 100644 --- a/include/deal.II/base/vectorization.h +++ b/include/deal.II/base/vectorization.h @@ -24,6 +24,14 @@ #include +namespace dealii +{ + template + class VectorizedArray; + template + struct EnableIfScalar; +} // namespace dealii + // Note: // The flag DEAL_II_COMPILER_VECTORIZATION_LEVEL is essentially constructed // according to the following scheme diff --git a/include/deal.II/dofs/block_info.h b/include/deal.II/dofs/block_info.h index a3ff12f3e2..4bf201eafc 100644 --- a/include/deal.II/dofs/block_info.h +++ b/include/deal.II/dofs/block_info.h @@ -16,11 +16,15 @@ #ifndef dealii_block_info_h #define dealii_block_info_h +#include "deal.II/base/config.h" + +#include "deal.II/base/types.h" #include #include #include +#include #include DEAL_II_NAMESPACE_OPEN @@ -29,6 +33,7 @@ DEAL_II_NAMESPACE_OPEN template class DoFHandler; + namespace hp { template diff --git a/include/deal.II/dofs/dof_accessor.h b/include/deal.II/dofs/dof_accessor.h index 9bd462f582..f4e4a9570f 100644 --- a/include/deal.II/dofs/dof_accessor.h +++ b/include/deal.II/dofs/dof_accessor.h @@ -19,6 +19,8 @@ #include +#include "deal.II/base/types.h" + #include #include @@ -35,10 +37,8 @@ template class Vector; template class AffineConstraints; - template class TriaRawIterator; - template class FiniteElement; @@ -53,6 +53,7 @@ namespace internal namespace DoFHandlerImplementation { struct Implementation; + namespace Policy { struct Implementation; diff --git a/include/deal.II/fe/block_mask.h b/include/deal.II/fe/block_mask.h index 71a170f6e1..e150baa5af 100644 --- a/include/deal.II/fe/block_mask.h +++ b/include/deal.II/fe/block_mask.h @@ -18,9 +18,11 @@ #include +#include "deal.II/base/types.h" #include #include +#include #include #include diff --git a/include/deal.II/fe/component_mask.h b/include/deal.II/fe/component_mask.h index 9d1a696da3..4b1e1379ec 100644 --- a/include/deal.II/fe/component_mask.h +++ b/include/deal.II/fe/component_mask.h @@ -18,9 +18,11 @@ #include +#include "deal.II/base/types.h" #include #include +#include #include #include diff --git a/include/deal.II/fe/mapping.h b/include/deal.II/fe/mapping.h index b5ca1f949f..9145f4ef1a 100644 --- a/include/deal.II/fe/mapping.h +++ b/include/deal.II/fe/mapping.h @@ -27,6 +27,7 @@ #include #include +#include #include DEAL_II_NAMESPACE_OPEN diff --git a/include/deal.II/lac/affine_constraints.h b/include/deal.II/lac/affine_constraints.h index b7b4cb1020..17a8596c17 100644 --- a/include/deal.II/lac/affine_constraints.h +++ b/include/deal.II/lac/affine_constraints.h @@ -18,6 +18,7 @@ #include +#include "deal.II/base/types.h" #include #include #include @@ -29,6 +30,7 @@ #include +#include #include #include #include diff --git a/include/deal.II/lac/block_matrix_array.h b/include/deal.II/lac/block_matrix_array.h index 75fd70b812..5195a8e56d 100644 --- a/include/deal.II/lac/block_matrix_array.h +++ b/include/deal.II/lac/block_matrix_array.h @@ -18,6 +18,7 @@ #include +#include "deal.II/base/types.h" #include #include diff --git a/include/deal.II/lac/block_sparse_matrix_ez.h b/include/deal.II/lac/block_sparse_matrix_ez.h index 2250330239..752b601c72 100644 --- a/include/deal.II/lac/block_sparse_matrix_ez.h +++ b/include/deal.II/lac/block_sparse_matrix_ez.h @@ -17,13 +17,9 @@ #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 +#include "deal.II/base/types.h" #include #include #include @@ -32,6 +28,12 @@ #include #include +// 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 diff --git a/include/deal.II/lac/chunk_sparsity_pattern.h b/include/deal.II/lac/chunk_sparsity_pattern.h index a10034c8da..146b8aa438 100644 --- a/include/deal.II/lac/chunk_sparsity_pattern.h +++ b/include/deal.II/lac/chunk_sparsity_pattern.h @@ -19,12 +19,14 @@ #include +#include "deal.II/base/types.h" #include #include #include #include +#include #include #include diff --git a/include/deal.II/lac/la_parallel_vector.h b/include/deal.II/lac/la_parallel_vector.h index af8f759df8..a76419ca1c 100644 --- a/include/deal.II/lac/la_parallel_vector.h +++ b/include/deal.II/lac/la_parallel_vector.h @@ -18,6 +18,7 @@ #include +#include "deal.II/base/types.h" #include #include #include @@ -28,6 +29,7 @@ #include #include +#include #include #include diff --git a/include/deal.II/lac/matrix_out.h b/include/deal.II/lac/matrix_out.h index 5fbf56f82f..ba3ce9825c 100644 --- a/include/deal.II/lac/matrix_out.h +++ b/include/deal.II/lac/matrix_out.h @@ -18,6 +18,7 @@ # include +# include "deal.II/base/types.h" # include # include diff --git a/include/deal.II/lac/read_write_vector.h b/include/deal.II/lac/read_write_vector.h index 9e67f98178..83f13109aa 100644 --- a/include/deal.II/lac/read_write_vector.h +++ b/include/deal.II/lac/read_write_vector.h @@ -18,6 +18,7 @@ #include +#include "deal.II/base/types.h" #include #include #include @@ -28,6 +29,7 @@ #include +#include #include #include #include @@ -45,6 +47,7 @@ DEAL_II_NAMESPACE_OPEN namespace LinearAlgebra { class CommunicationPatternBase; + namespace distributed { template diff --git a/include/deal.II/lac/vector_view.h b/include/deal.II/lac/vector_view.h index 79e272891b..912dd9728d 100644 --- a/include/deal.II/lac/vector_view.h +++ b/include/deal.II/lac/vector_view.h @@ -19,6 +19,7 @@ #include +#include "deal.II/base/types.h" #include #include diff --git a/include/deal.II/matrix_free/evaluation_selector.h b/include/deal.II/matrix_free/evaluation_selector.h index 2fd382aa06..2a22dd61ad 100644 --- a/include/deal.II/matrix_free/evaluation_selector.h +++ b/include/deal.II/matrix_free/evaluation_selector.h @@ -17,6 +17,8 @@ #ifndef dealii_matrix_free_evaluation_selector_h #define dealii_matrix_free_evaluation_selector_h +#include "deal.II/base/config.h" + #include DEAL_II_NAMESPACE_OPEN diff --git a/include/deal.II/numerics/data_postprocessor.h b/include/deal.II/numerics/data_postprocessor.h index 897eaf0965..bfa27dbbcc 100644 --- a/include/deal.II/numerics/data_postprocessor.h +++ b/include/deal.II/numerics/data_postprocessor.h @@ -18,6 +18,8 @@ +#include "deal.II/base/config.h" + #include #include #include diff --git a/include/deal.II/numerics/kdtree.h b/include/deal.II/numerics/kdtree.h index 34627a3ebe..bdbf9d7647 100644 --- a/include/deal.II/numerics/kdtree.h +++ b/include/deal.II/numerics/kdtree.h @@ -94,6 +94,7 @@ public: * to the vector of points, and generates some helper functions for nanoflann. */ struct PointCloudAdaptor + { /** * An alias used by nanoflann. diff --git a/include/deal.II/particles/particle.h b/include/deal.II/particles/particle.h index 76cf7f8c6e..f41b1c763d 100644 --- a/include/deal.II/particles/particle.h +++ b/include/deal.II/particles/particle.h @@ -16,12 +16,16 @@ #ifndef dealii_particles_particle_h #define dealii_particles_particle_h +#include "deal.II/base/config.h" + #include #include #include #include +#include + DEAL_II_NAMESPACE_OPEN namespace types diff --git a/include/deal.II/particles/particle_accessor.h b/include/deal.II/particles/particle_accessor.h index 2d74711b07..e6ac219d66 100644 --- a/include/deal.II/particles/particle_accessor.h +++ b/include/deal.II/particles/particle_accessor.h @@ -16,12 +16,16 @@ #ifndef dealii_particles_particle_accessor_h #define dealii_particles_particle_accessor_h +#include "deal.II/base/config.h" + #include #include #include +#include + DEAL_II_NAMESPACE_OPEN namespace Particles diff --git a/include/deal.II/particles/particle_iterator.h b/include/deal.II/particles/particle_iterator.h index 5e687fb7a9..7e073e7d1b 100644 --- a/include/deal.II/particles/particle_iterator.h +++ b/include/deal.II/particles/particle_iterator.h @@ -20,6 +20,8 @@ #include +#include + DEAL_II_NAMESPACE_OPEN namespace Particles diff --git a/include/deal.II/particles/property_pool.h b/include/deal.II/particles/property_pool.h index 7e66e43b44..9e39fb1085 100644 --- a/include/deal.II/particles/property_pool.h +++ b/include/deal.II/particles/property_pool.h @@ -16,8 +16,12 @@ #ifndef dealii_particles_property_pool_h #define dealii_particles_property_pool_h +#include "deal.II/base/config.h" + #include +#include + DEAL_II_NAMESPACE_OPEN namespace Particles diff --git a/include/deal.II/physics/elasticity/kinematics.h b/include/deal.II/physics/elasticity/kinematics.h index e216099971..8398806e46 100644 --- a/include/deal.II/physics/elasticity/kinematics.h +++ b/include/deal.II/physics/elasticity/kinematics.h @@ -17,6 +17,8 @@ #define dealii_elasticity_kinematics_h +#include "deal.II/base/config.h" + #include #include #include diff --git a/include/deal.II/physics/transformations.h b/include/deal.II/physics/transformations.h index 322aa29747..27fade6ec6 100644 --- a/include/deal.II/physics/transformations.h +++ b/include/deal.II/physics/transformations.h @@ -16,6 +16,8 @@ #ifndef dealii_transformations_h #define dealii_transformations_h +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/algorithms/operator.cc b/source/algorithms/operator.cc index 6b86a1a213..31cf2b01e9 100644 --- a/source/algorithms/operator.cc +++ b/source/algorithms/operator.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/base/auto_derivative_function.cc b/source/base/auto_derivative_function.cc index 8e8628a26d..a44b75f00d 100644 --- a/source/base/auto_derivative_function.cc +++ b/source/base/auto_derivative_function.cc @@ -13,6 +13,7 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/exceptions.h" #include #include diff --git a/source/base/bounding_box.cc b/source/base/bounding_box.cc index 410d610d35..fc503e7e06 100644 --- a/source/base/bounding_box.cc +++ b/source/base/bounding_box.cc @@ -159,5 +159,8 @@ BoundingBox::volume() const return vol; } +#include "deal.II/base/config.h" + #include "bounding_box.inst" + DEAL_II_NAMESPACE_CLOSE diff --git a/source/base/conditional_ostream.cc b/source/base/conditional_ostream.cc index f39a423618..6331a2ce7f 100644 --- a/source/base/conditional_ostream.cc +++ b/source/base/conditional_ostream.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include DEAL_II_NAMESPACE_OPEN diff --git a/source/base/config.cc b/source/base/config.cc index f19d115fa5..62efbe4e44 100644 --- a/source/base/config.cc +++ b/source/base/config.cc @@ -15,6 +15,8 @@ #include +#include "deal.II/base/numbers.h" + #include #include #include diff --git a/source/base/convergence_table.cc b/source/base/convergence_table.cc index b594bd4cb4..9194f512c8 100644 --- a/source/base/convergence_table.cc +++ b/source/base/convergence_table.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include diff --git a/source/base/data_out_base.cc b/source/base/data_out_base.cc index 8947f95164..f4db98b92d 100644 --- a/source/base/data_out_base.cc +++ b/source/base/data_out_base.cc @@ -49,8 +49,9 @@ #include #include #include - // we use uint32_t and uint8_t below, which are declared here: +#include "deal.II/base/config.h" + #include #ifdef DEAL_II_WITH_ZLIB diff --git a/source/base/event.cc b/source/base/event.cc index 6187f4b5d0..88aa266f60 100644 --- a/source/base/event.cc +++ b/source/base/event.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include DEAL_II_NAMESPACE_OPEN diff --git a/source/base/exceptions.cc b/source/base/exceptions.cc index 817bd1cd68..921569d747 100644 --- a/source/base/exceptions.cc +++ b/source/base/exceptions.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/base/flow_function.cc b/source/base/flow_function.cc index 0e192f005d..7f99c58b09 100644 --- a/source/base/flow_function.cc +++ b/source/base/flow_function.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/base/function.cc b/source/base/function.cc index 05e3028eb0..790fd0be25 100644 --- a/source/base/function.cc +++ b/source/base/function.cc @@ -13,11 +13,11 @@ // // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN // explicit instantiations +#include "deal.II/base/config.h" + #include "function.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/base/function_cspline.cc b/source/base/function_cspline.cc index 3391d9b2d2..c625b70cc4 100644 --- a/source/base/function_cspline.cc +++ b/source/base/function_cspline.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include diff --git a/source/base/function_derivative.cc b/source/base/function_derivative.cc index e8abc4ddf6..79140e09ea 100644 --- a/source/base/function_derivative.cc +++ b/source/base/function_derivative.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include diff --git a/source/base/function_lib.cc b/source/base/function_lib.cc index 663714a71c..260f95d6f7 100644 --- a/source/base/function_lib.cc +++ b/source/base/function_lib.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include #include @@ -24,6 +25,15 @@ #include +namespace dealii +{ + namespace Functions + { + template + class Bessel1; + } // namespace Functions +} // namespace dealii + DEAL_II_NAMESPACE_OPEN @@ -2787,53 +2797,9 @@ namespace Functions 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 diff --git a/source/base/function_lib_cutoff.cc b/source/base/function_lib_cutoff.cc index b35fcc42d9..ee6337077d 100644 --- a/source/base/function_lib_cutoff.cc +++ b/source/base/function_lib_cutoff.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/base/function_parser.cc b/source/base/function_parser.cc index 754887ba1d..cf29280372 100644 --- a/source/base/function_parser.cc +++ b/source/base/function_parser.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/base/function_spherical.cc b/source/base/function_spherical.cc index 2c08d33be2..da154c46c8 100644 --- a/source/base/function_spherical.cc +++ b/source/base/function_spherical.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/base/function_time.cc b/source/base/function_time.cc index 0ff1a504f4..0bea0ebeff 100644 --- a/source/base/function_time.cc +++ b/source/base/function_time.cc @@ -13,11 +13,11 @@ // // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN // explicit instantiation +#include "deal.II/base/config.h" + #include "function_time.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/base/geometric_utilities.cc b/source/base/geometric_utilities.cc index 72d976cec9..d06c6d3e4b 100644 --- a/source/base/geometric_utilities.cc +++ b/source/base/geometric_utilities.cc @@ -14,9 +14,13 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include +#include + DEAL_II_NAMESPACE_OPEN diff --git a/source/base/geometry_info.cc b/source/base/geometry_info.cc index e2578d83a1..b749c7a2c3 100644 --- a/source/base/geometry_info.cc +++ b/source/base/geometry_info.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include diff --git a/source/base/graph_coloring.cc b/source/base/graph_coloring.cc index 52745b0379..4cc2267149 100644 --- a/source/base/graph_coloring.cc +++ b/source/base/graph_coloring.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include diff --git a/source/base/index_set.cc b/source/base/index_set.cc index 9b5fa12d27..3e5ca6e741 100644 --- a/source/base/index_set.cc +++ b/source/base/index_set.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/base/job_identifier.cc b/source/base/job_identifier.cc index e7fc49573f..3e7e90f1f8 100644 --- a/source/base/job_identifier.cc +++ b/source/base/job_identifier.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include diff --git a/source/base/logstream.cc b/source/base/logstream.cc index ccdb9a4ab0..eb7caa1b37 100644 --- a/source/base/logstream.cc +++ b/source/base/logstream.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/base/mpi.cc b/source/base/mpi.cc index e99471202e..9880d77a35 100644 --- a/source/base/mpi.cc +++ b/source/base/mpi.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/base/multithread_info.cc b/source/base/multithread_info.cc index a0579d4c1f..83ebdfc139 100644 --- a/source/base/multithread_info.cc +++ b/source/base/multithread_info.cc @@ -25,6 +25,8 @@ # include #endif +#include "deal.II/base/config.h" + #include #ifdef DEAL_II_WITH_THREADS diff --git a/source/base/named_selection.cc b/source/base/named_selection.cc index d9a00d88e4..1089ad670f 100644 --- a/source/base/named_selection.cc +++ b/source/base/named_selection.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include DEAL_II_NAMESPACE_OPEN diff --git a/source/base/parallel.cc b/source/base/parallel.cc index e448c07b6a..8fcb7ba529 100644 --- a/source/base/parallel.cc +++ b/source/base/parallel.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include diff --git a/source/base/parameter_acceptor.cc b/source/base/parameter_acceptor.cc index cbe3d5d5cc..c7b8af1da8 100644 --- a/source/base/parameter_acceptor.cc +++ b/source/base/parameter_acceptor.cc @@ -13,6 +13,8 @@ // //----------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/base/parameter_handler.cc b/source/base/parameter_handler.cc index 246efe92b4..f14b1644e2 100644 --- a/source/base/parameter_handler.cc +++ b/source/base/parameter_handler.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/base/parsed_function.cc b/source/base/parsed_function.cc index cd48668092..93f7417fdd 100644 --- a/source/base/parsed_function.cc +++ b/source/base/parsed_function.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/auto_derivative_function.h" +#include "deal.II/base/exceptions.h" #include #include diff --git a/source/base/partitioner.cc b/source/base/partitioner.cc index 72dfaec531..1b4727c89e 100644 --- a/source/base/partitioner.cc +++ b/source/base/partitioner.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include diff --git a/source/base/path_search.cc b/source/base/path_search.cc index 4faee0bd51..9205e580bf 100644 --- a/source/base/path_search.cc +++ b/source/base/path_search.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/base/patterns.cc b/source/base/patterns.cc index 4e883abea1..0ed9c1065c 100644 --- a/source/base/patterns.cc +++ b/source/base/patterns.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/base/polynomial.cc b/source/base/polynomial.cc index eca63433ca..c635e99a71 100644 --- a/source/base/polynomial.cc +++ b/source/base/polynomial.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include #include @@ -1554,9 +1556,6 @@ namespace Polynomials template void Polynomial::shift(const long double offset); - template class Monomial; - template class Monomial; - template class Monomial; } // namespace Polynomials DEAL_II_NAMESPACE_CLOSE diff --git a/source/base/polynomial_space.cc b/source/base/polynomial_space.cc index 0680f6e797..f7e724103b 100644 --- a/source/base/polynomial_space.cc +++ b/source/base/polynomial_space.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/base/polynomials_abf.cc b/source/base/polynomials_abf.cc index e52d5001b6..0bb748a491 100644 --- a/source/base/polynomials_abf.cc +++ b/source/base/polynomials_abf.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include diff --git a/source/base/polynomials_bdm.cc b/source/base/polynomials_bdm.cc index bb14979d3b..6019577038 100644 --- a/source/base/polynomials_bdm.cc +++ b/source/base/polynomials_bdm.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/base/polynomials_bernardi_raugel.cc b/source/base/polynomials_bernardi_raugel.cc index 67e581fcb9..e00bfb1b90 100644 --- a/source/base/polynomials_bernardi_raugel.cc +++ b/source/base/polynomials_bernardi_raugel.cc @@ -14,6 +14,7 @@ // --------------------------------------------------------------------- +#include "deal.II/base/geometry_info.h" #include DEAL_II_NAMESPACE_OPEN diff --git a/source/base/polynomials_bernstein.cc b/source/base/polynomials_bernstein.cc index 24a9e07a74..6588fd1b4c 100644 --- a/source/base/polynomials_bernstein.cc +++ b/source/base/polynomials_bernstein.cc @@ -13,6 +13,7 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/polynomial.h" #include #include diff --git a/source/base/polynomials_integrated_legendre_sz.cc b/source/base/polynomials_integrated_legendre_sz.cc index 0733a93df2..20f0adc86b 100644 --- a/source/base/polynomials_integrated_legendre_sz.cc +++ b/source/base/polynomials_integrated_legendre_sz.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include DEAL_II_NAMESPACE_OPEN diff --git a/source/base/polynomials_nedelec.cc b/source/base/polynomials_nedelec.cc index 44351c3995..ba5a08315b 100644 --- a/source/base/polynomials_nedelec.cc +++ b/source/base/polynomials_nedelec.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/base/polynomials_p.cc b/source/base/polynomials_p.cc index 693ac2964b..5ed6b656f8 100644 --- a/source/base/polynomials_p.cc +++ b/source/base/polynomials_p.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include DEAL_II_NAMESPACE_OPEN diff --git a/source/base/polynomials_piecewise.cc b/source/base/polynomials_piecewise.cc index f81b90f130..80c2787817 100644 --- a/source/base/polynomials_piecewise.cc +++ b/source/base/polynomials_piecewise.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include diff --git a/source/base/polynomials_rannacher_turek.cc b/source/base/polynomials_rannacher_turek.cc index ca5ca128bf..ba60d0ee2e 100644 --- a/source/base/polynomials_rannacher_turek.cc +++ b/source/base/polynomials_rannacher_turek.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include DEAL_II_NAMESPACE_OPEN @@ -188,6 +187,8 @@ PolynomialsRannacherTurek::compute( // explicit instantiations +#include "deal.II/base/config.h" + #include "polynomials_rannacher_turek.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/base/polynomials_raviart_thomas.cc b/source/base/polynomials_raviart_thomas.cc index 6b4bd50a82..27be560fc7 100644 --- a/source/base/polynomials_raviart_thomas.cc +++ b/source/base/polynomials_raviart_thomas.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/base/polynomials_rt_bubbles.cc b/source/base/polynomials_rt_bubbles.cc index b79ef3ee3e..51b51b1316 100644 --- a/source/base/polynomials_rt_bubbles.cc +++ b/source/base/polynomials_rt_bubbles.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include "deal.II/base/polynomials_rt_bubbles.h" #include diff --git a/source/base/quadrature.cc b/source/base/quadrature.cc index 296e8dd99a..ac9010f362 100644 --- a/source/base/quadrature.cc +++ b/source/base/quadrature.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include #include @@ -1787,14 +1788,5 @@ template class Quadrature<0>; 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 diff --git a/source/base/quadrature_lib.cc b/source/base/quadrature_lib.cc index 2d5247c197..6a03dd37b5 100644 --- a/source/base/quadrature_lib.cc +++ b/source/base/quadrature_lib.cc @@ -13,7 +13,9 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" +#include + #include #include @@ -1353,47 +1355,12 @@ QSplit::QSplit(const QSimplex &base, const Point &split_point) // 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 diff --git a/source/base/quadrature_selector.cc b/source/base/quadrature_selector.cc index d97d83395a..695325d3f1 100644 --- a/source/base/quadrature_selector.cc +++ b/source/base/quadrature_selector.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include DEAL_II_NAMESPACE_OPEN diff --git a/source/base/subscriptor.cc b/source/base/subscriptor.cc index 57d0615c70..ddfe9ae741 100644 --- a/source/base/subscriptor.cc +++ b/source/base/subscriptor.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/base/table_handler.cc b/source/base/table_handler.cc index 9b8110df98..8ab4f5c152 100644 --- a/source/base/table_handler.cc +++ b/source/base/table_handler.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include diff --git a/source/base/tensor_function.cc b/source/base/tensor_function.cc index 1d5252dfe2..c77c5d10e1 100644 --- a/source/base/tensor_function.cc +++ b/source/base/tensor_function.cc @@ -13,11 +13,11 @@ // // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN // explicit instantiations +#include "deal.II/base/config.h" + #include "tensor_function.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/base/tensor_product_polynomials.cc b/source/base/tensor_product_polynomials.cc index 16b4b1da7c..5cec6ac503 100644 --- a/source/base/tensor_product_polynomials.cc +++ b/source/base/tensor_product_polynomials.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include #include @@ -716,8 +718,5 @@ template class TensorProductPolynomials< 3, Polynomials::PiecewisePolynomial>; -template class AnisotropicPolynomials<1>; -template class AnisotropicPolynomials<2>; -template class AnisotropicPolynomials<3>; DEAL_II_NAMESPACE_CLOSE diff --git a/source/base/tensor_product_polynomials_bubbles.cc b/source/base/tensor_product_polynomials_bubbles.cc index 72e2397159..c4f4924a49 100644 --- a/source/base/tensor_product_polynomials_bubbles.cc +++ b/source/base/tensor_product_polynomials_bubbles.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include diff --git a/source/base/tensor_product_polynomials_const.cc b/source/base/tensor_product_polynomials_const.cc index 0eac4eec4a..65b836aaf2 100644 --- a/source/base/tensor_product_polynomials_const.cc +++ b/source/base/tensor_product_polynomials_const.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include diff --git a/source/base/thread_management.cc b/source/base/thread_management.cc index cb504a5247..b3b67ffa80 100644 --- a/source/base/thread_management.cc +++ b/source/base/thread_management.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include diff --git a/source/base/time_stepping.cc b/source/base/time_stepping.cc index 9bb02320eb..0306590e32 100644 --- a/source/base/time_stepping.cc +++ b/source/base/time_stepping.cc @@ -13,7 +13,7 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include #include diff --git a/source/base/timer.cc b/source/base/timer.cc index 007f9dd017..064755c76b 100644 --- a/source/base/timer.cc +++ b/source/base/timer.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/base/utilities.cc b/source/base/utilities.cc index d3bae9270b..59cc5468d4 100644 --- a/source/base/utilities.cc +++ b/source/base/utilities.cc @@ -22,6 +22,7 @@ # include #endif +#include "deal.II/base/types.h" #include #include #include diff --git a/source/base/vectorization.cc b/source/base/vectorization.cc index 5876d07d2d..37aa3427ec 100644 --- a/source/base/vectorization.cc +++ b/source/base/vectorization.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include DEAL_II_NAMESPACE_OPEN diff --git a/source/differentiation/ad/ad_helpers.cc b/source/differentiation/ad/ad_helpers.cc index fed7fe4d93..c9bec7191e 100644 --- a/source/differentiation/ad/ad_helpers.cc +++ b/source/differentiation/ad/ad_helpers.cc @@ -13,8 +13,6 @@ // // --------------------------------------------------------------------- -#include - #if defined(DEAL_II_WITH_ADOLC) || defined(DEAL_II_TRILINOS_WITH_SACADO) # include diff --git a/source/differentiation/ad/adolc_number_types.cc b/source/differentiation/ad/adolc_number_types.cc index 72c3e7b76e..053c49741c 100644 --- a/source/differentiation/ad/adolc_number_types.cc +++ b/source/differentiation/ad/adolc_number_types.cc @@ -14,8 +14,6 @@ // --------------------------------------------------------------------- -#include - #ifdef DEAL_II_WITH_ADOLC # include diff --git a/source/differentiation/ad/sacado_number_types.cc b/source/differentiation/ad/sacado_number_types.cc index 582a74d6db..9207f0b004 100644 --- a/source/differentiation/ad/sacado_number_types.cc +++ b/source/differentiation/ad/sacado_number_types.cc @@ -14,8 +14,6 @@ // --------------------------------------------------------------------- -#include - #ifdef DEAL_II_TRILINOS_WITH_SACADO # include diff --git a/source/distributed/active_fe_indices_transfer.cc b/source/distributed/active_fe_indices_transfer.cc index eefa36de66..d6dc57160c 100644 --- a/source/distributed/active_fe_indices_transfer.cc +++ b/source/distributed/active_fe_indices_transfer.cc @@ -14,8 +14,6 @@ // --------------------------------------------------------------------- -#include - #ifdef DEAL_II_WITH_P4EST # include diff --git a/source/distributed/grid_refinement.cc b/source/distributed/grid_refinement.cc index 6de9b6a6b8..9fbbb9a8f0 100644 --- a/source/distributed/grid_refinement.cc +++ b/source/distributed/grid_refinement.cc @@ -14,8 +14,6 @@ // --------------------------------------------------------------------- -#include - #include #include #include diff --git a/source/distributed/p4est_wrappers.cc b/source/distributed/p4est_wrappers.cc index ba7dfebc5b..a479168b92 100644 --- a/source/distributed/p4est_wrappers.cc +++ b/source/distributed/p4est_wrappers.cc @@ -1,3 +1,5 @@ +#include "deal.II/base/config.h" + #include #include diff --git a/source/distributed/shared_tria.cc b/source/distributed/shared_tria.cc index 154ebb865b..8bad17ea26 100644 --- a/source/distributed/shared_tria.cc +++ b/source/distributed/shared_tria.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/distributed/solution_transfer.cc b/source/distributed/solution_transfer.cc index 40ebf57823..1001e45d80 100644 --- a/source/distributed/solution_transfer.cc +++ b/source/distributed/solution_transfer.cc @@ -14,8 +14,6 @@ // --------------------------------------------------------------------- -#include - #ifdef DEAL_II_WITH_P4EST # include diff --git a/source/distributed/tria.cc b/source/distributed/tria.cc index cacfb34fc4..021691b7a1 100644 --- a/source/distributed/tria.cc +++ b/source/distributed/tria.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/distributed/tria_base.cc b/source/distributed/tria_base.cc index 6b8c6be65a..b4e4833bca 100644 --- a/source/distributed/tria_base.cc +++ b/source/distributed/tria_base.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/dofs/dof_accessor.cc b/source/dofs/dof_accessor.cc index 008758fadf..b3c14d13ff 100644 --- a/source/dofs/dof_accessor.cc +++ b/source/dofs/dof_accessor.cc @@ -181,6 +181,8 @@ DoFCellAccessor::neighbor_or_periodic_neighbor( // -------------------------------------------------------------------------- // explicit instantiations +#include "deal.II/base/config.h" + #include "dof_accessor.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/dofs/dof_accessor_get.cc b/source/dofs/dof_accessor_get.cc index 4f1bdc2b03..bc3e44669d 100644 --- a/source/dofs/dof_accessor_get.cc +++ b/source/dofs/dof_accessor_get.cc @@ -176,6 +176,16 @@ DoFCellAccessor::get_interpolated_dof_values( // -------------------------------------------------------------------------- // explicit instantiations +#include "deal.II/base/config.h" + #include "dof_accessor_get.inst" +namespace dealii +{ + template + class FiniteElement; + template + class Vector; +} // namespace dealii + DEAL_II_NAMESPACE_CLOSE diff --git a/source/dofs/dof_accessor_set.cc b/source/dofs/dof_accessor_set.cc index 556dcd48c8..0f77c3c4ef 100644 --- a/source/dofs/dof_accessor_set.cc +++ b/source/dofs/dof_accessor_set.cc @@ -127,6 +127,16 @@ DoFCellAccessor::set_dof_values_by_interpolation( // -------------------------------------------------------------------------- // explicit instantiations +#include "deal.II/base/config.h" + #include "dof_accessor_set.inst" +namespace dealii +{ + template + class FiniteElement; + template + class Vector; +} // namespace dealii + DEAL_II_NAMESPACE_CLOSE diff --git a/source/dofs/dof_faces.cc b/source/dofs/dof_faces.cc index 09ecf8039a..9df43f9a68 100644 --- a/source/dofs/dof_faces.cc +++ b/source/dofs/dof_faces.cc @@ -13,11 +13,14 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include +#include + DEAL_II_NAMESPACE_OPEN diff --git a/source/dofs/dof_handler.cc b/source/dofs/dof_handler.cc index 81b173e18c..f89fe223a0 100644 --- a/source/dofs/dof_handler.cc +++ b/source/dofs/dof_handler.cc @@ -13,7 +13,9 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + +#include "deal.II/base/types.h" #include #include diff --git a/source/dofs/dof_handler_policy.cc b/source/dofs/dof_handler_policy.cc index b82f001644..3f2110ccc2 100644 --- a/source/dofs/dof_handler_policy.cc +++ b/source/dofs/dof_handler_policy.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include #include @@ -44,6 +43,10 @@ # include #endif +#include "deal.II/base/config.h" + +#include "deal.II/base/types.h" + #include #include #include diff --git a/source/dofs/dof_objects.cc b/source/dofs/dof_objects.cc index 5d55b546e6..312ffcbbc6 100644 --- a/source/dofs/dof_objects.cc +++ b/source/dofs/dof_objects.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include @@ -21,6 +23,8 @@ #include +#include + DEAL_II_NAMESPACE_OPEN namespace internal diff --git a/source/dofs/dof_renumbering.cc b/source/dofs/dof_renumbering.cc index 6f1616d58f..59b8bb4e16 100644 --- a/source/dofs/dof_renumbering.cc +++ b/source/dofs/dof_renumbering.cc @@ -13,7 +13,9 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + +#include "deal.II/base/types.h" #include #include #include diff --git a/source/dofs/dof_tools.cc b/source/dofs/dof_tools.cc index f91993853e..2991e1ebe8 100644 --- a/source/dofs/dof_tools.cc +++ b/source/dofs/dof_tools.cc @@ -13,7 +13,9 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + +#include "deal.II/base/types.h" #include #include #include diff --git a/source/dofs/dof_tools_constraints.cc b/source/dofs/dof_tools_constraints.cc index f00260acca..5bc456e0c8 100644 --- a/source/dofs/dof_tools_constraints.cc +++ b/source/dofs/dof_tools_constraints.cc @@ -13,7 +13,6 @@ // // --------------------------------------------------------------------- -#include #include #include #include @@ -42,6 +41,9 @@ # include #endif +#include "deal.II/base/config.h" + +#include "deal.II/base/types.h" #include #include @@ -438,8 +440,6 @@ namespace DoFTools }; - template - struct DoFHandlerSupportsDifferentFEs> { static const bool value = false; }; diff --git a/source/dofs/dof_tools_sparsity.cc b/source/dofs/dof_tools_sparsity.cc index fbef24e408..6b88d8e9db 100644 --- a/source/dofs/dof_tools_sparsity.cc +++ b/source/dofs/dof_tools_sparsity.cc @@ -13,7 +13,9 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + +#include "deal.II/base/types.h" #include #include #include diff --git a/source/dofs/number_cache.cc b/source/dofs/number_cache.cc index 6deff5e034..607c9ef8d4 100644 --- a/source/dofs/number_cache.cc +++ b/source/dofs/number_cache.cc @@ -13,7 +13,7 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include diff --git a/source/fe/block_mask.cc b/source/fe/block_mask.cc index 632a4eaa2f..a6e887b7e0 100644 --- a/source/fe/block_mask.cc +++ b/source/fe/block_mask.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include diff --git a/source/fe/component_mask.cc b/source/fe/component_mask.cc index 9d7ded1755..62b8c48526 100644 --- a/source/fe/component_mask.cc +++ b/source/fe/component_mask.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include diff --git a/source/fe/fe.cc b/source/fe/fe.cc index b35ab09ab7..0c4548d04d 100644 --- a/source/fe/fe.cc +++ b/source/fe/fe.cc @@ -13,7 +13,6 @@ // // --------------------------------------------------------------------- -#include #include #include @@ -1297,6 +1296,8 @@ FiniteElement::base_element(const unsigned int index) const /*------------------------------- Explicit Instantiations -------------*/ +#include "deal.II/base/config.h" + #include "fe.inst" diff --git a/source/fe/fe_abf.cc b/source/fe/fe_abf.cc index 4339c745e9..4be27e4da2 100644 --- a/source/fe/fe_abf.cc +++ b/source/fe/fe_abf.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include #include @@ -619,6 +618,8 @@ FE_ABF::memory_consumption() const /*-------------- Explicit Instantiations -------------------------------*/ +#include "deal.II/base/config.h" + #include "fe_abf.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/fe/fe_bdm.cc b/source/fe/fe_bdm.cc index b6cef0280c..1b2e9f3f08 100644 --- a/source/fe/fe_bdm.cc +++ b/source/fe/fe_bdm.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include #include @@ -387,6 +386,8 @@ FE_BDM::initialize_support_points(const unsigned int deg) /*-------------- Explicit Instantiations -------------------------------*/ +#include "deal.II/base/config.h" + #include "fe_bdm.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/fe/fe_bernardi_raugel.cc b/source/fe/fe_bernardi_raugel.cc index 01c864c6f4..fd43f49784 100644 --- a/source/fe/fe_bernardi_raugel.cc +++ b/source/fe/fe_bernardi_raugel.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/fe/fe_bernstein.cc b/source/fe/fe_bernstein.cc index 394ba22f6c..7fa2394497 100644 --- a/source/fe/fe_bernstein.cc +++ b/source/fe/fe_bernstein.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include #include @@ -364,6 +363,8 @@ FE_Bernstein::renumber_bases(const unsigned int deg) // explicit instantiations +#include "deal.II/base/config.h" + #include "fe_bernstein.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/fe/fe_data.cc b/source/fe/fe_data.cc index d3b633b763..3188a2defe 100644 --- a/source/fe/fe_data.cc +++ b/source/fe/fe_data.cc @@ -13,7 +13,7 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include diff --git a/source/fe/fe_dg_vector.cc b/source/fe/fe_dg_vector.cc index 6b75c80588..1e88c1b9f4 100644 --- a/source/fe/fe_dg_vector.cc +++ b/source/fe/fe_dg_vector.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include #include @@ -100,6 +99,8 @@ FE_DGBDM::get_name() const } +#include "deal.II/base/config.h" + #include "fe_dg_vector.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/fe/fe_dgp.cc b/source/fe/fe_dgp.cc index 0fa056545a..4f9d924c94 100644 --- a/source/fe/fe_dgp.cc +++ b/source/fe/fe_dgp.cc @@ -14,8 +14,6 @@ // --------------------------------------------------------------------- -#include - #include #include @@ -261,6 +259,8 @@ FE_DGP::memory_consumption() const // explicit instantiations +#include "deal.II/base/config.h" + #include "fe_dgp.inst" diff --git a/source/fe/fe_dgp_monomial.cc b/source/fe/fe_dgp_monomial.cc index 759c2d9f83..8ad6766016 100644 --- a/source/fe/fe_dgp_monomial.cc +++ b/source/fe/fe_dgp_monomial.cc @@ -14,7 +14,7 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include #include diff --git a/source/fe/fe_dgp_nonparametric.cc b/source/fe/fe_dgp_nonparametric.cc index 99c94c4aba..528addf855 100644 --- a/source/fe/fe_dgp_nonparametric.cc +++ b/source/fe/fe_dgp_nonparametric.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include @@ -637,6 +636,8 @@ FE_DGPNonparametric::get_degree() const // explicit instantiations +#include "deal.II/base/config.h" + #include "fe_dgp_nonparametric.inst" diff --git a/source/fe/fe_dgq.cc b/source/fe/fe_dgq.cc index 65bbd6f8d3..d16ab60f37 100644 --- a/source/fe/fe_dgq.cc +++ b/source/fe/fe_dgq.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/fe/fe_enriched.cc b/source/fe/fe_enriched.cc index a7f482d8ca..60de309c71 100644 --- a/source/fe/fe_enriched.cc +++ b/source/fe/fe_enriched.cc @@ -14,7 +14,7 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include #include diff --git a/source/fe/fe_face.cc b/source/fe/fe_face.cc index 62505a05ae..b0eda418fc 100644 --- a/source/fe/fe_face.cc +++ b/source/fe/fe_face.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/fe/fe_nedelec.cc b/source/fe/fe_nedelec.cc index 06139b146b..d420c7455a 100644 --- a/source/fe/fe_nedelec.cc +++ b/source/fe/fe_nedelec.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/fe/fe_nedelec_sz.cc b/source/fe/fe_nedelec_sz.cc index daae79ef21..5afc900076 100644 --- a/source/fe/fe_nedelec_sz.cc +++ b/source/fe/fe_nedelec_sz.cc @@ -13,8 +13,6 @@ // // --------------------------------------------------------------------- -#include - #include DEAL_II_NAMESPACE_OPEN @@ -2274,6 +2272,8 @@ FE_NedelecSZ::create_polynomials(const unsigned int degree) } // explicit instantiations +#include "deal.II/base/config.h" + #include "fe_nedelec_sz.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/fe/fe_nothing.cc b/source/fe/fe_nothing.cc index ba1df8393f..4524e181e8 100644 --- a/source/fe/fe_nothing.cc +++ b/source/fe/fe_nothing.cc @@ -14,8 +14,6 @@ // --------------------------------------------------------------------- -#include - #include DEAL_II_NAMESPACE_OPEN @@ -330,6 +328,8 @@ FE_Nothing::get_subface_interpolation_matrix( // explicit instantiations +#include "deal.II/base/config.h" + #include "fe_nothing.inst" diff --git a/source/fe/fe_p1nc.cc b/source/fe/fe_p1nc.cc index f681aece31..7401642a8a 100644 --- a/source/fe/fe_p1nc.cc +++ b/source/fe/fe_p1nc.cc @@ -14,7 +14,7 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include diff --git a/source/fe/fe_poly.cc b/source/fe/fe_poly.cc index 745b183eba..732bb0ae32 100644 --- a/source/fe/fe_poly.cc +++ b/source/fe/fe_poly.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include #include @@ -301,6 +300,8 @@ FE_Poly, 2, 3>::fill_fe_values( } +#include "deal.II/base/config.h" + #include "fe_poly.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/fe/fe_poly_tensor.cc b/source/fe/fe_poly_tensor.cc index ae9506d861..64d8e507c6 100644 --- a/source/fe/fe_poly_tensor.cc +++ b/source/fe/fe_poly_tensor.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/fe/fe_q.cc b/source/fe/fe_q.cc index e959cd1665..4cad79c623 100644 --- a/source/fe/fe_q.cc +++ b/source/fe/fe_q.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/fe/fe_q_base.cc b/source/fe/fe_q_base.cc index 93590f38f0..b7fa70d58d 100644 --- a/source/fe/fe_q_base.cc +++ b/source/fe/fe_q_base.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include #include @@ -106,326 +107,314 @@ namespace internal * Triangulation class. See there for more information. */ template -struct FE_Q_Base::Implementation -{ - /** - * Initialize the hanging node constraints matrices. Called from the - * constructor in case the finite element is based on quadrature points. - */ - template - static void - initialize_constraints(const std::vector> &, - FE_Q_Base &) +{/** + * Initialize the hanging node constraints matrices. Called from the + * constructor in case the finite element is based on quadrature points. + */ + template + static void initialize_constraints(const std::vector> &, + FE_Q_Base &){ + // no constraints in 1d + } + + + template + static void initialize_constraints(const std::vector> & /*points*/, + FE_Q_Base &fe){ + const unsigned int dim = 2; + +unsigned int q_deg = fe.degree; +if (std::is_same>::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> 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::child_to_cell_coordinates( + Point(i * step), 0)); + // subface 1 + for (unsigned int i = 1; i <= n; ++i) + constraint_points.push_back( + GeometryInfo::child_to_cell_coordinates( + Point(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 &index_map_inverse = + fe.poly_space.get_numbering_inverse(); +const std::vector face_index_map = + internal::FE_Q_Base::face_lexicographic_to_hierarchic_numbering(q_deg); +Assert(std::abs(fe.poly_space.compute_value(index_map_inverse[0], + Point()) - + 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 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 - static void - initialize_constraints(const std::vector> & /*points*/, - FE_Q_Base &fe) - { - const unsigned int dim = 2; - - unsigned int q_deg = fe.degree; - if (std::is_same>::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> 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::child_to_cell_coordinates( - Point(i * step), 0)); - // subface 1 - for (unsigned int i = 1; i <= n; ++i) +template +static void +initialize_constraints(const std::vector> & /*points*/, + FE_Q_Base &fe) +{ + const unsigned int dim = 3; + + unsigned int q_deg = fe.degree; + if (std::is_same>::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> 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> line_support_points(n); + for (unsigned int i = 0; i < n; ++i) + line_support_points[i](0) = (i + 1) * step; + Quadrature qline(line_support_points); + + // auxiliary points in 2d + std::vector> p_line(n); + + // Add nodes of lines interior in the "mother-face" + + // line 5: use line 9 + QProjector::project_to_subface(qline, 0, 0, p_line); + for (unsigned int i = 0; i < n; ++i) + constraint_points.push_back(p_line[i] + Point(0.5, 0)); + // line 6: use line 10 + QProjector::project_to_subface(qline, 0, 1, p_line); + for (unsigned int i = 0; i < n; ++i) + constraint_points.push_back(p_line[i] + Point(0.5, 0)); + // line 7: use line 13 + QProjector::project_to_subface(qline, 2, 0, p_line); + for (unsigned int i = 0; i < n; ++i) + constraint_points.push_back(p_line[i] + Point(0, 0.5)); + // line 8: use line 14 + QProjector::project_to_subface(qline, 2, 1, p_line); + for (unsigned int i = 0; i < n; ++i) + constraint_points.push_back(p_line[i] + Point(0, 0.5)); + + // DoFs on bordering lines lines 9-16 + for (unsigned int face = 0; face < GeometryInfo::faces_per_cell; + ++face) + for (unsigned int subface = 0; + subface < GeometryInfo::max_children_per_face; + ++subface) + { + QProjector::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> 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(ix * step, iy * step); + + // at the moment do this for isotropic face refinement only + for (unsigned int child = 0; + child < GeometryInfo::max_children_per_cell; + ++child) + for (unsigned int i = 0; i < inner_points.size(); ++i) constraint_points.push_back( - GeometryInfo::child_to_cell_coordinates( - Point(i * step), 1)); - } + GeometryInfo::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 &index_map_inverse = - fe.poly_space.get_numbering_inverse(); - const std::vector face_index_map = - internal::FE_Q_Base::face_lexicographic_to_hierarchic_numbering( - q_deg); - Assert(std::abs( - fe.poly_space.compute_value(index_map_inverse[0], Point()) - - 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 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 &index_map_inverse = + fe.poly_space.get_numbering_inverse(); + const std::vector face_index_map = + internal::FE_Q_Base::face_lexicographic_to_hierarchic_numbering(q_deg); + Assert(std::abs( + fe.poly_space.compute_value(index_map_inverse[0], Point()) - + 1.) < 1e-14, + ExcInternalError()); + fe.interface_constraints.TableBase<2, double>::reinit( + fe.interface_constraints_size()); - template - static void - initialize_constraints(const std::vector> & /*points*/, - FE_Q_Base &fe) - { - const unsigned int dim = 3; - - unsigned int q_deg = fe.degree; - if (std::is_same>::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> 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> line_support_points(n); - for (unsigned int i = 0; i < n; ++i) - line_support_points[i](0) = (i + 1) * step; - Quadrature qline(line_support_points); - - // auxiliary points in 2d - std::vector> p_line(n); - - // Add nodes of lines interior in the "mother-face" - - // line 5: use line 9 - QProjector::project_to_subface(qline, 0, 0, p_line); - for (unsigned int i = 0; i < n; ++i) - constraint_points.push_back(p_line[i] + Point(0.5, 0)); - // line 6: use line 10 - QProjector::project_to_subface(qline, 0, 1, p_line); - for (unsigned int i = 0; i < n; ++i) - constraint_points.push_back(p_line[i] + Point(0.5, 0)); - // line 7: use line 13 - QProjector::project_to_subface(qline, 2, 0, p_line); - for (unsigned int i = 0; i < n; ++i) - constraint_points.push_back(p_line[i] + Point(0, 0.5)); - // line 8: use line 14 - QProjector::project_to_subface(qline, 2, 1, p_line); - for (unsigned int i = 0; i < n; ++i) - constraint_points.push_back(p_line[i] + Point(0, 0.5)); - - // DoFs on bordering lines lines 9-16 - for (unsigned int face = 0; - face < GeometryInfo::faces_per_cell; - ++face) - for (unsigned int subface = 0; - subface < GeometryInfo::max_children_per_face; - ++subface) - { - QProjector::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 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(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> 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(ix * step, iy * step); - - // at the moment do this for isotropic face refinement only - for (unsigned int child = 0; - child < GeometryInfo::max_children_per_cell; - ++child) - for (unsigned int i = 0; i < inner_points.size(); ++i) - constraint_points.push_back( - GeometryInfo::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 &index_map_inverse = - fe.poly_space.get_numbering_inverse(); - const std::vector face_index_map = - internal::FE_Q_Base::face_lexicographic_to_hierarchic_numbering( - q_deg); - Assert(std::abs( - fe.poly_space.compute_value(index_map_inverse[0], Point()) - - 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 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(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; + } + } +} +} +; diff --git a/source/fe/fe_q_bubbles.cc b/source/fe/fe_q_bubbles.cc index ce0ff54ef8..adb99810e3 100644 --- a/source/fe/fe_q_bubbles.cc +++ b/source/fe/fe_q_bubbles.cc @@ -14,7 +14,9 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + +#include "deal.II/base/geometry_info.h" #include #include #include diff --git a/source/fe/fe_q_dg0.cc b/source/fe/fe_q_dg0.cc index f582f5dfe7..fb3759c56a 100644 --- a/source/fe/fe_q_dg0.cc +++ b/source/fe/fe_q_dg0.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include #include @@ -292,6 +291,8 @@ FE_Q_DG0::get_constant_modes() const // explicit instantiations +#include "deal.II/base/config.h" + #include "fe_q_dg0.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/fe/fe_q_hierarchical.cc b/source/fe/fe_q_hierarchical.cc index 06294e3aa2..d0b17383d9 100644 --- a/source/fe/fe_q_hierarchical.cc +++ b/source/fe/fe_q_hierarchical.cc @@ -14,7 +14,7 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include #include diff --git a/source/fe/fe_q_iso_q1.cc b/source/fe/fe_q_iso_q1.cc index 0e1214febe..8b4ce2aaf3 100644 --- a/source/fe/fe_q_iso_q1.cc +++ b/source/fe/fe_q_iso_q1.cc @@ -148,6 +148,8 @@ FE_Q_iso_Q1::compare_for_face_domination( // explicit instantiations +#include "deal.II/base/config.h" + #include "fe_q_iso_q1.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/fe/fe_rannacher_turek.cc b/source/fe/fe_rannacher_turek.cc index 06021f1171..0ebf04e549 100644 --- a/source/fe/fe_rannacher_turek.cc +++ b/source/fe/fe_rannacher_turek.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include @@ -137,6 +136,8 @@ FE_RannacherTurek::convert_generalized_support_point_values_to_dof_values( // explicit instantiations +#include "deal.II/base/config.h" + #include "fe_rannacher_turek.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/fe/fe_raviart_thomas.cc b/source/fe/fe_raviart_thomas.cc index d2a7e3b38d..c4d3e500cc 100644 --- a/source/fe/fe_raviart_thomas.cc +++ b/source/fe/fe_raviart_thomas.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include #include @@ -535,6 +534,8 @@ FE_RaviartThomas::memory_consumption() const // explicit instantiations +#include "deal.II/base/config.h" + #include "fe_raviart_thomas.inst" diff --git a/source/fe/fe_raviart_thomas_nodal.cc b/source/fe/fe_raviart_thomas_nodal.cc index 038a255659..5c87e2467f 100644 --- a/source/fe/fe_raviart_thomas_nodal.cc +++ b/source/fe/fe_raviart_thomas_nodal.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include @@ -772,6 +771,10 @@ FE_RaviartThomasNodal::get_subface_interpolation_matrix( // explicit instantiations +#include "deal.II/base/config.h" + +#include "deal.II/base/geometry_info.h" + #include "fe_raviart_thomas_nodal.inst" diff --git a/source/fe/fe_rt_bubbles.cc b/source/fe/fe_rt_bubbles.cc index 240e978698..7e2a23c54b 100644 --- a/source/fe/fe_rt_bubbles.cc +++ b/source/fe/fe_rt_bubbles.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include @@ -307,6 +306,10 @@ FE_RT_Bubbles::convert_generalized_support_point_values_to_dof_values( // explicit instantiations +#include "deal.II/base/config.h" + +#include "deal.II/base/geometry_info.h" + #include "fe_rt_bubbles.inst" diff --git a/source/fe/fe_system.cc b/source/fe/fe_system.cc index ee31a18fdd..9eb4b63117 100644 --- a/source/fe/fe_system.cc +++ b/source/fe/fe_system.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/fe/fe_tools.cc b/source/fe/fe_tools.cc index 4b7989991e..ea55e9f47e 100644 --- a/source/fe/fe_tools.cc +++ b/source/fe/fe_tools.cc @@ -14,11 +14,11 @@ // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN /*-------------- Explicit Instantiations -------------------------------*/ +#include "deal.II/base/config.h" + #include "fe_tools.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/fe/fe_tools_extrapolate.cc b/source/fe/fe_tools_extrapolate.cc index ed752727c6..9c949c0052 100644 --- a/source/fe/fe_tools_extrapolate.cc +++ b/source/fe/fe_tools_extrapolate.cc @@ -13,11 +13,11 @@ // // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN /*-------------- Explicit Instantiations -------------------------------*/ +#include "deal.II/base/config.h" + #include "fe_tools_extrapolate.inst" diff --git a/source/fe/fe_tools_interpolate.cc b/source/fe/fe_tools_interpolate.cc index 6018a9091f..6e2dd7c563 100644 --- a/source/fe/fe_tools_interpolate.cc +++ b/source/fe/fe_tools_interpolate.cc @@ -14,11 +14,11 @@ // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN /*-------------- Explicit Instantiations -------------------------------*/ +#include "deal.II/base/config.h" + #include "fe_tools_interpolate.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/fe/fe_values.cc b/source/fe/fe_values.cc index 8f17342c52..f7906390c3 100644 --- a/source/fe/fe_values.cc +++ b/source/fe/fe_values.cc @@ -13,7 +13,10 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" +#include + +#include "deal.II/base/types.h" #include #include #include @@ -2719,7 +2722,6 @@ namespace internal /* ---------------- FEValuesBase::CellIteratorBase --------- */ template -class FEValuesBase::CellIteratorBase { public: /** @@ -2734,15 +2736,14 @@ public: * classes. However, since here we have kind of a parallel class hierarchy, * we have to have a conversion operator. */ - virtual - operator typename Triangulation::cell_iterator() const = 0; + virtual operator typename Triangulation::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" @@ -2750,9 +2751,9 @@ public: * Call @p get_interpolated_dof_values of the iterator with the * given arguments. */ - virtual void - get_interpolated_dof_values(const IndexSet & in, - Vector &out) const = 0; + virtual void get_interpolated_dof_values(const IndexSet & in, + Vector &out) + const = 0; }; /* --- classes derived from FEValuesBase::CellIteratorBase --- */ diff --git a/source/fe/mapping.cc b/source/fe/mapping.cc index 7222e6d706..9994bddb7b 100644 --- a/source/fe/mapping.cc +++ b/source/fe/mapping.cc @@ -94,6 +94,8 @@ Mapping::InternalDataBase::memory_consumption() const // explicit instantiations +#include "deal.II/base/config.h" + #include "mapping.inst" diff --git a/source/fe/mapping_c1.cc b/source/fe/mapping_c1.cc index 82dbfd2191..6c6dff8953 100644 --- a/source/fe/mapping_c1.cc +++ b/source/fe/mapping_c1.cc @@ -13,8 +13,6 @@ // // --------------------------------------------------------------------- -#include - #include #include @@ -228,6 +226,8 @@ MappingC1::clone() const // explicit instantiations +#include "deal.II/base/config.h" + #include "mapping_c1.inst" diff --git a/source/fe/mapping_cartesian.cc b/source/fe/mapping_cartesian.cc index aad2315648..21a3513d0e 100644 --- a/source/fe/mapping_cartesian.cc +++ b/source/fe/mapping_cartesian.cc @@ -13,7 +13,6 @@ // // --------------------------------------------------------------------- -#include #include #include #include @@ -1141,6 +1140,8 @@ MappingCartesian::clone() const //--------------------------------------------------------------------------- // explicit instantiations +#include "deal.II/base/config.h" + #include "mapping_cartesian.inst" diff --git a/source/fe/mapping_fe_field.cc b/source/fe/mapping_fe_field.cc index a342cd06c9..7f59d61555 100644 --- a/source/fe/mapping_fe_field.cc +++ b/source/fe/mapping_fe_field.cc @@ -13,7 +13,6 @@ // // --------------------------------------------------------------------- -#include #include #include #include @@ -2358,6 +2357,8 @@ MappingFEField::update_internal_dofs( #ifndef SPLIT_INSTANTIATIONS_INDEX # define SPLIT_INSTANTIATIONS_INDEX 0 #endif +#include "deal.II/base/config.h" + #include "mapping_fe_field.inst" diff --git a/source/fe/mapping_manifold.cc b/source/fe/mapping_manifold.cc index b31dc9ed80..f0bc3fccd2 100644 --- a/source/fe/mapping_manifold.cc +++ b/source/fe/mapping_manifold.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include #include @@ -40,6 +39,7 @@ #include #include #include +#include #include #include @@ -1450,6 +1450,8 @@ MappingManifold::transform( } //--------------------------- Explicit instantiations ----------------------- +#include "deal.II/base/config.h" + #include "mapping_manifold.inst" diff --git a/source/fe/mapping_q.cc b/source/fe/mapping_q.cc index 661c7286f2..a42f404881 100644 --- a/source/fe/mapping_q.cc +++ b/source/fe/mapping_q.cc @@ -13,7 +13,6 @@ // // --------------------------------------------------------------------- -#include #include #include #include @@ -536,6 +535,8 @@ MappingQ::clone() const // explicit instantiations +#include "deal.II/base/config.h" + #include "mapping_q.inst" diff --git a/source/fe/mapping_q1.cc b/source/fe/mapping_q1.cc index 698bfcfafc..1678cd14be 100644 --- a/source/fe/mapping_q1.cc +++ b/source/fe/mapping_q1.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include #include @@ -68,6 +67,8 @@ MappingQGeneric //--------------------------- Explicit instantiations ----------------------- +#include "deal.II/base/config.h" + #include "mapping_q1.inst" diff --git a/source/fe/mapping_q1_eulerian.cc b/source/fe/mapping_q1_eulerian.cc index 666a7bef6e..1a48a15b5b 100644 --- a/source/fe/mapping_q1_eulerian.cc +++ b/source/fe/mapping_q1_eulerian.cc @@ -13,8 +13,6 @@ // // --------------------------------------------------------------------- -#include - #include #include @@ -154,6 +152,8 @@ MappingQ1Eulerian::fill_fe_values( // explicit instantiations +#include "deal.II/base/config.h" + #include "mapping_q1_eulerian.inst" diff --git a/source/fe/mapping_q_eulerian.cc b/source/fe/mapping_q_eulerian.cc index c95ebb6981..8b63138bcf 100644 --- a/source/fe/mapping_q_eulerian.cc +++ b/source/fe/mapping_q_eulerian.cc @@ -13,7 +13,6 @@ // // --------------------------------------------------------------------- -#include #include #include @@ -276,6 +275,8 @@ MappingQEulerian::fill_fe_values( // explicit instantiations +#include "deal.II/base/config.h" + #include "mapping_q_eulerian.inst" diff --git a/source/fe/mapping_q_generic.cc b/source/fe/mapping_q_generic.cc index 2e54c13746..ab49e6937b 100644 --- a/source/fe/mapping_q_generic.cc +++ b/source/fe/mapping_q_generic.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/gmsh/utilities.cc b/source/gmsh/utilities.cc index 456e4fe6f8..66becd8c98 100644 --- a/source/gmsh/utilities.cc +++ b/source/gmsh/utilities.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include diff --git a/source/grid/cell_id.cc b/source/grid/cell_id.cc index c995495da0..286feef3eb 100644 --- a/source/grid/cell_id.cc +++ b/source/grid/cell_id.cc @@ -168,6 +168,10 @@ CellId::to_cell(const Triangulation &tria) const } // explicit instantiations +#include "deal.II/base/config.h" + +#include "deal.II/base/types.h" + #include "cell_id.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/grid/grid_generator.cc b/source/grid/grid_generator.cc index 4c23ad354b..0892fb53ba 100644 --- a/source/grid/grid_generator.cc +++ b/source/grid/grid_generator.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/grid/grid_in.cc b/source/grid/grid_in.cc index fbc76f5745..7df799795c 100644 --- a/source/grid/grid_in.cc +++ b/source/grid/grid_in.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/grid/grid_out.cc b/source/grid/grid_out.cc index eca272afef..d971b55543 100644 --- a/source/grid/grid_out.cc +++ b/source/grid/grid_out.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/grid/grid_refinement.cc b/source/grid/grid_refinement.cc index 7856799553..983f870422 100644 --- a/source/grid/grid_refinement.cc +++ b/source/grid/grid_refinement.cc @@ -14,8 +14,6 @@ // --------------------------------------------------------------------- -#include - #include #include #include @@ -434,6 +432,8 @@ GridRefinement::refine_and_coarsen_optimize(Triangulation &tria, // explicit instantiations +#include "deal.II/base/config.h" + #include "grid_refinement.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/grid/grid_reordering.cc b/source/grid/grid_reordering.cc index 3030f6678a..8bfc00de95 100644 --- a/source/grid/grid_reordering.cc +++ b/source/grid/grid_reordering.cc @@ -14,7 +14,9 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + +#include "deal.II/base/types.h" #include #include diff --git a/source/grid/grid_tools.cc b/source/grid/grid_tools.cc index 48f77b7a03..0fa5e23dfe 100644 --- a/source/grid/grid_tools.cc +++ b/source/grid/grid_tools.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include #include @@ -65,6 +67,12 @@ #include #include +namespace dealii +{ + template + class SparseMatrix; +} // namespace dealii + DEAL_II_NAMESPACE_OPEN diff --git a/source/grid/grid_tools_cache.cc b/source/grid/grid_tools_cache.cc index 05698a7cce..dc642bf284 100644 --- a/source/grid/grid_tools_cache.cc +++ b/source/grid/grid_tools_cache.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include DEAL_II_NAMESPACE_OPEN diff --git a/source/grid/grid_tools_dof_handlers.cc b/source/grid/grid_tools_dof_handlers.cc index 1882e6e985..0d464d0891 100644 --- a/source/grid/grid_tools_dof_handlers.cc +++ b/source/grid/grid_tools_dof_handlers.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/grid/intergrid_map.cc b/source/grid/intergrid_map.cc index 2fbe6a4dfb..36e6487ea0 100644 --- a/source/grid/intergrid_map.cc +++ b/source/grid/intergrid_map.cc @@ -13,7 +13,6 @@ // // --------------------------------------------------------------------- -#include #include #include @@ -210,6 +209,8 @@ InterGridMap::memory_consumption() const // explicit instantiations +#include "deal.II/base/config.h" + #include "intergrid_map.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/grid/manifold.cc b/source/grid/manifold.cc index 6853c082b7..a5027ffcef 100644 --- a/source/grid/manifold.cc +++ b/source/grid/manifold.cc @@ -13,7 +13,6 @@ // // --------------------------------------------------------------------- -#include #include #include @@ -1072,6 +1071,8 @@ ChartManifold::get_periodicity() const } // explicit instantiations +#include "deal.II/base/config.h" + #include "manifold.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/grid/manifold_lib.cc b/source/grid/manifold_lib.cc index ba979e9c3f..6c66a9bed5 100644 --- a/source/grid/manifold_lib.cc +++ b/source/grid/manifold_lib.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/grid/persistent_tria.cc b/source/grid/persistent_tria.cc index 2309be67e0..b30865774b 100644 --- a/source/grid/persistent_tria.cc +++ b/source/grid/persistent_tria.cc @@ -13,7 +13,7 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include #include diff --git a/source/grid/tria.cc b/source/grid/tria.cc index 5f98cf9d3f..7a70376f0f 100644 --- a/source/grid/tria.cc +++ b/source/grid/tria.cc @@ -35,6 +35,7 @@ #include #include #include +#include #include #include #include @@ -15058,6 +15059,10 @@ Triangulation::DistortedCellList::~DistortedCellList() noexcept // explicit instantiations +#include "deal.II/base/config.h" + +#include "deal.II/base/types.h" + #include "tria.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/grid/tria_accessor.cc b/source/grid/tria_accessor.cc index 5e58dc5ac6..b7436a6d21 100644 --- a/source/grid/tria_accessor.cc +++ b/source/grid/tria_accessor.cc @@ -13,7 +13,9 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + +#include "deal.II/base/types.h" #include #include diff --git a/source/grid/tria_faces.cc b/source/grid/tria_faces.cc index 1dd6e930ac..8c911667ff 100644 --- a/source/grid/tria_faces.cc +++ b/source/grid/tria_faces.cc @@ -14,10 +14,12 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include +#include + DEAL_II_NAMESPACE_OPEN diff --git a/source/grid/tria_levels.cc b/source/grid/tria_levels.cc index 54a1fbe410..edaf0a8a4f 100644 --- a/source/grid/tria_levels.cc +++ b/source/grid/tria_levels.cc @@ -13,7 +13,7 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include diff --git a/source/grid/tria_objects.cc b/source/grid/tria_objects.cc index 34a64e0baf..69f0c2b358 100644 --- a/source/grid/tria_objects.cc +++ b/source/grid/tria_objects.cc @@ -13,7 +13,7 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include #include diff --git a/source/hp/dof_faces.cc b/source/hp/dof_faces.cc index e49bbac2e5..252f6cedd1 100644 --- a/source/hp/dof_faces.cc +++ b/source/hp/dof_faces.cc @@ -13,10 +13,12 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include +#include + DEAL_II_NAMESPACE_OPEN namespace internal diff --git a/source/hp/dof_handler.cc b/source/hp/dof_handler.cc index b60518903e..a5282263ff 100644 --- a/source/hp/dof_handler.cc +++ b/source/hp/dof_handler.cc @@ -13,7 +13,9 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + +#include "deal.II/base/types.h" #include #include #include diff --git a/source/hp/dof_level.cc b/source/hp/dof_level.cc index 20778aa0e1..525240c71a 100644 --- a/source/hp/dof_level.cc +++ b/source/hp/dof_level.cc @@ -13,7 +13,7 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include #include diff --git a/source/hp/fe_collection.cc b/source/hp/fe_collection.cc index 73b086645d..17dbbf2df6 100644 --- a/source/hp/fe_collection.cc +++ b/source/hp/fe_collection.cc @@ -14,7 +14,7 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include diff --git a/source/hp/fe_values.cc b/source/hp/fe_values.cc index 16977521e6..8e843ec68e 100644 --- a/source/hp/fe_values.cc +++ b/source/hp/fe_values.cc @@ -13,7 +13,7 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include diff --git a/source/hp/mapping_collection.cc b/source/hp/mapping_collection.cc index 9ae4547004..6a416e741c 100644 --- a/source/hp/mapping_collection.cc +++ b/source/hp/mapping_collection.cc @@ -14,7 +14,7 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include diff --git a/source/lac/affine_constraints.cc b/source/lac/affine_constraints.cc index 094b73e2c5..5875571c29 100644 --- a/source/lac/affine_constraints.cc +++ b/source/lac/affine_constraints.cc @@ -19,6 +19,8 @@ DEAL_II_NAMESPACE_OPEN +#include "deal.II/base/config.h" + #include "affine_constraints.inst" /* diff --git a/source/lac/block_matrix_array.cc b/source/lac/block_matrix_array.cc index fd8408f507..9395ecda26 100644 --- a/source/lac/block_matrix_array.cc +++ b/source/lac/block_matrix_array.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/lac/block_sparse_matrix.cc b/source/lac/block_sparse_matrix.cc index 8577504a72..cf9fd1ce54 100644 --- a/source/lac/block_sparse_matrix.cc +++ b/source/lac/block_sparse_matrix.cc @@ -14,10 +14,10 @@ // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN +#include "deal.II/base/config.h" + #include "block_sparse_matrix.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/lac/block_sparse_matrix_ez.cc b/source/lac/block_sparse_matrix_ez.cc index c7e296f480..87b2d60884 100644 --- a/source/lac/block_sparse_matrix_ez.cc +++ b/source/lac/block_sparse_matrix_ez.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include diff --git a/source/lac/block_sparsity_pattern.cc b/source/lac/block_sparsity_pattern.cc index 1383f68a53..0e5a8ae992 100644 --- a/source/lac/block_sparsity_pattern.cc +++ b/source/lac/block_sparsity_pattern.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/lac/block_vector.cc b/source/lac/block_vector.cc index b59f529135..51cece8b60 100644 --- a/source/lac/block_vector.cc +++ b/source/lac/block_vector.cc @@ -14,10 +14,10 @@ // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN +#include "deal.II/base/config.h" + #include "block_vector.inst" // these functions can't be generated by the preprocessor since diff --git a/source/lac/chunk_sparse_matrix.cc b/source/lac/chunk_sparse_matrix.cc index 9d1f68c753..fc78bc8f67 100644 --- a/source/lac/chunk_sparse_matrix.cc +++ b/source/lac/chunk_sparse_matrix.cc @@ -13,9 +13,11 @@ // // --------------------------------------------------------------------- -#include #include DEAL_II_NAMESPACE_OPEN +#include "deal.II/base/config.h" + #include "chunk_sparse_matrix.inst" + DEAL_II_NAMESPACE_CLOSE diff --git a/source/lac/chunk_sparsity_pattern.cc b/source/lac/chunk_sparsity_pattern.cc index 98df3a2d71..be98645eeb 100644 --- a/source/lac/chunk_sparsity_pattern.cc +++ b/source/lac/chunk_sparsity_pattern.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/lac/dynamic_sparsity_pattern.cc b/source/lac/dynamic_sparsity_pattern.cc index 567340242a..3c7118cc59 100644 --- a/source/lac/dynamic_sparsity_pattern.cc +++ b/source/lac/dynamic_sparsity_pattern.cc @@ -13,7 +13,7 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include #include diff --git a/source/lac/full_matrix.cc b/source/lac/full_matrix.cc index ab10bf13a6..956d773d80 100644 --- a/source/lac/full_matrix.cc +++ b/source/lac/full_matrix.cc @@ -13,17 +13,14 @@ // // --------------------------------------------------------------------- -#include - #include 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; template void FullMatrix::invert(const FullMatrix &); template void diff --git a/source/lac/la_parallel_block_vector.cc b/source/lac/la_parallel_block_vector.cc index 000f162e5a..0af800df43 100644 --- a/source/lac/la_parallel_block_vector.cc +++ b/source/lac/la_parallel_block_vector.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/lac/la_parallel_vector.cc b/source/lac/la_parallel_vector.cc index b56ed27e32..e6a0e06e26 100644 --- a/source/lac/la_parallel_vector.cc +++ b/source/lac/la_parallel_vector.cc @@ -18,6 +18,8 @@ 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 diff --git a/source/lac/la_vector.cc b/source/lac/la_vector.cc index 588b6f8df5..8de870e190 100644 --- a/source/lac/la_vector.cc +++ b/source/lac/la_vector.cc @@ -13,7 +13,7 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" DEAL_II_NAMESPACE_OPEN diff --git a/source/lac/lapack_full_matrix.cc b/source/lac/lapack_full_matrix.cc index 933aef006b..9c08d74afa 100644 --- a/source/lac/lapack_full_matrix.cc +++ b/source/lac/lapack_full_matrix.cc @@ -13,7 +13,7 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include #include diff --git a/source/lac/matrix_lib.cc b/source/lac/matrix_lib.cc index cee3ab37c1..ff7cb65242 100644 --- a/source/lac/matrix_lib.cc +++ b/source/lac/matrix_lib.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include DEAL_II_NAMESPACE_OPEN diff --git a/source/lac/matrix_out.cc b/source/lac/matrix_out.cc index 86b58a1878..c0ebd22eec 100644 --- a/source/lac/matrix_out.cc +++ b/source/lac/matrix_out.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include DEAL_II_NAMESPACE_OPEN diff --git a/source/lac/precondition_block.cc b/source/lac/precondition_block.cc index e30a9a32e5..251a896199 100644 --- a/source/lac/precondition_block.cc +++ b/source/lac/precondition_block.cc @@ -13,9 +13,11 @@ // // --------------------------------------------------------------------- -#include #include DEAL_II_NAMESPACE_OPEN +#include "deal.II/base/config.h" + #include "precondition_block.inst" + DEAL_II_NAMESPACE_CLOSE diff --git a/source/lac/precondition_block_ez.cc b/source/lac/precondition_block_ez.cc index 842529dee5..7e0904c1dc 100644 --- a/source/lac/precondition_block_ez.cc +++ b/source/lac/precondition_block_ez.cc @@ -13,15 +13,13 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include DEAL_II_NAMESPACE_OPEN -// explicit instantiations for "float" PreconditionBlock -template class PreconditionBlock, float>; - // the instantiation for class PreconditionBlock, double> // is skipped because it does not make sense to have inverse block matrices with // higher precision than the matrix itself @@ -36,9 +34,6 @@ template class PreconditionBlock, double>; /*--------------------- PreconditionBlockJacobi -----------------------*/ -// explicit instantiations for "float" PreconditionBlock -template class PreconditionBlockJacobi, float>; - template void PreconditionBlockJacobi, float>::vmult( Vector &, @@ -145,9 +140,6 @@ PreconditionBlockJacobi, double>::Tvmult_add( /*--------------------- PreconditionBlockGaussSeidel -----------------------*/ -// explicit instantiations for "float" PreconditionBlock -template class PreconditionBlockSOR, float>; - template void PreconditionBlockSOR, float>::vmult( Vector &, @@ -247,9 +239,6 @@ PreconditionBlockSOR, double>::Tvmult_add( /*--------------------- PreconditionBlockSSOR -----------------------*/ -// explicit instantiations for "float" PreconditionBlock -template class PreconditionBlockSSOR, float>; - template void PreconditionBlockSSOR, float>::vmult( Vector &, diff --git a/source/lac/read_write_vector.cc b/source/lac/read_write_vector.cc index 14358d2bfa..f839b3bc54 100644 --- a/source/lac/read_write_vector.cc +++ b/source/lac/read_write_vector.cc @@ -18,6 +18,8 @@ DEAL_II_NAMESPACE_OPEN +#include "deal.II/base/config.h" + #include "read_write_vector.inst" namespace LinearAlgebra diff --git a/source/lac/relaxation_block.cc b/source/lac/relaxation_block.cc index 841f3fee2a..ba74b4e095 100644 --- a/source/lac/relaxation_block.cc +++ b/source/lac/relaxation_block.cc @@ -13,10 +13,12 @@ // // --------------------------------------------------------------------- -#include #include #include DEAL_II_NAMESPACE_OPEN +#include "deal.II/base/config.h" + #include "relaxation_block.inst" + DEAL_II_NAMESPACE_CLOSE diff --git a/source/lac/solver.cc b/source/lac/solver.cc index 6d432ae184..9f5f3c77fe 100644 --- a/source/lac/solver.cc +++ b/source/lac/solver.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include #include @@ -28,6 +27,8 @@ DEAL_II_NAMESPACE_OPEN +#include "deal.II/base/config.h" + #include "solver.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/lac/solver_bicgstab.cc b/source/lac/solver_bicgstab.cc index 16dd36ee9f..172624ded0 100644 --- a/source/lac/solver_bicgstab.cc +++ b/source/lac/solver_bicgstab.cc @@ -14,6 +14,10 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + +#include "deal.II/base/types.h" + #include DEAL_II_NAMESPACE_OPEN diff --git a/source/lac/solver_control.cc b/source/lac/solver_control.cc index a5789cc76b..0f8989b239 100644 --- a/source/lac/solver_control.cc +++ b/source/lac/solver_control.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/lac/sparse_decomposition.cc b/source/lac/sparse_decomposition.cc index 4501599fe6..c816300198 100644 --- a/source/lac/sparse_decomposition.cc +++ b/source/lac/sparse_decomposition.cc @@ -14,7 +14,7 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" DEAL_II_NAMESPACE_OPEN diff --git a/source/lac/sparse_direct.cc b/source/lac/sparse_direct.cc index 000732abce..d314482ce6 100644 --- a/source/lac/sparse_direct.cc +++ b/source/lac/sparse_direct.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/lac/sparse_ilu.cc b/source/lac/sparse_ilu.cc index 1cd8296147..03fe2b2d07 100644 --- a/source/lac/sparse_ilu.cc +++ b/source/lac/sparse_ilu.cc @@ -13,7 +13,7 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" DEAL_II_NAMESPACE_OPEN diff --git a/source/lac/sparse_matrix.cc b/source/lac/sparse_matrix.cc index fe5c0f4389..e74e0213d7 100644 --- a/source/lac/sparse_matrix.cc +++ b/source/lac/sparse_matrix.cc @@ -13,7 +13,6 @@ // // --------------------------------------------------------------------- -#include #include #include @@ -21,6 +20,8 @@ DEAL_II_NAMESPACE_OPEN #define SPLIT_INSTANTIATIONS_COUNT 2 #define SPLIT_INSTANTIATIONS_INDEX 0 +#include "deal.II/base/config.h" + #include "sparse_matrix.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/lac/sparse_matrix_ez.cc b/source/lac/sparse_matrix_ez.cc index 4f52dc440b..8423b7b549 100644 --- a/source/lac/sparse_matrix_ez.cc +++ b/source/lac/sparse_matrix_ez.cc @@ -13,9 +13,11 @@ // // --------------------------------------------------------------------- -#include #include DEAL_II_NAMESPACE_OPEN +#include "deal.II/base/config.h" + #include "sparse_matrix_ez.inst" + DEAL_II_NAMESPACE_CLOSE diff --git a/source/lac/sparse_matrix_inst2.cc b/source/lac/sparse_matrix_inst2.cc index ffb3531903..3ce0814234 100644 --- a/source/lac/sparse_matrix_inst2.cc +++ b/source/lac/sparse_matrix_inst2.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include @@ -22,6 +21,8 @@ DEAL_II_NAMESPACE_OPEN #define SPLIT_INSTANTIATIONS_COUNT 2 #define SPLIT_INSTANTIATIONS_INDEX 1 +#include "deal.II/base/config.h" + #include "sparse_matrix.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/lac/sparse_mic.cc b/source/lac/sparse_mic.cc index 9f2f629718..0daf26c482 100644 --- a/source/lac/sparse_mic.cc +++ b/source/lac/sparse_mic.cc @@ -14,7 +14,7 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" DEAL_II_NAMESPACE_OPEN diff --git a/source/lac/sparse_vanka.cc b/source/lac/sparse_vanka.cc index d5adf026b0..3efb57b64e 100644 --- a/source/lac/sparse_vanka.cc +++ b/source/lac/sparse_vanka.cc @@ -13,7 +13,7 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" DEAL_II_NAMESPACE_OPEN @@ -30,9 +30,6 @@ SparseVanka::vmult(Vector & dst, const Vector &src) const; -template class SparseBlockVanka; -template class SparseBlockVanka; - template void SparseBlockVanka::vmult(Vector & dst, const Vector &src) const; diff --git a/source/lac/sparsity_pattern.cc b/source/lac/sparsity_pattern.cc index 0fea8a96d7..84cfab1fc1 100644 --- a/source/lac/sparsity_pattern.cc +++ b/source/lac/sparsity_pattern.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/lac/sparsity_tools.cc b/source/lac/sparsity_tools.cc index 0d36b69f9d..36c3ec9c55 100644 --- a/source/lac/sparsity_tools.cc +++ b/source/lac/sparsity_tools.cc @@ -44,6 +44,8 @@ extern "C" # include #endif +#include "deal.II/base/config.h" + #include diff --git a/source/lac/swappable_vector.cc b/source/lac/swappable_vector.cc index 9041629356..0bdead5b98 100644 --- a/source/lac/swappable_vector.cc +++ b/source/lac/swappable_vector.cc @@ -13,7 +13,7 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" DEAL_II_NAMESPACE_OPEN diff --git a/source/lac/tridiagonal_matrix.cc b/source/lac/tridiagonal_matrix.cc index 48aec2743a..66a18f345e 100644 --- a/source/lac/tridiagonal_matrix.cc +++ b/source/lac/tridiagonal_matrix.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/lac/vector.cc b/source/lac/vector.cc index 085f136551..c7b2a2edde 100644 --- a/source/lac/vector.cc +++ b/source/lac/vector.cc @@ -13,10 +13,10 @@ // // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN +#include "deal.II/base/config.h" + #include "vector.inst" // instantiate for integers: diff --git a/source/lac/vector_memory.cc b/source/lac/vector_memory.cc index 0b5e84c3ae..a07f30f6b6 100644 --- a/source/lac/vector_memory.cc +++ b/source/lac/vector_memory.cc @@ -13,7 +13,6 @@ // // --------------------------------------------------------------------- -#include #include #include #include @@ -28,6 +27,8 @@ DEAL_II_NAMESPACE_OPEN +#include "deal.II/base/config.h" + #include "vector_memory.inst" #ifdef DEAL_II_WITH_CUDA diff --git a/source/lac/vector_view.cc b/source/lac/vector_view.cc index 11b4f1f200..3d1aa1b52d 100644 --- a/source/lac/vector_view.cc +++ b/source/lac/vector_view.cc @@ -17,6 +17,8 @@ DEAL_II_NAMESPACE_OPEN +#include "deal.II/base/config.h" + #include "vector_view.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/matrix_free/mapping_info.cc b/source/matrix_free/mapping_info.cc index fd8cff5596..f3f068b85b 100644 --- a/source/matrix_free/mapping_info.cc +++ b/source/matrix_free/mapping_info.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include @@ -23,6 +22,8 @@ DEAL_II_NAMESPACE_OPEN +#include "deal.II/base/config.h" + #include "mapping_info.inst" template struct internal::MatrixFreeFunctions::FPArrayComparator; diff --git a/source/matrix_free/matrix_free.cc b/source/matrix_free/matrix_free.cc index 8d0fe0d735..1d91e24a1c 100644 --- a/source/matrix_free/matrix_free.cc +++ b/source/matrix_free/matrix_free.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include @@ -24,6 +23,8 @@ DEAL_II_NAMESPACE_OPEN +#include "deal.II/base/config.h" + #include "matrix_free.inst" template struct internal::MatrixFreeFunctions::ShapeInfo; diff --git a/source/matrix_free/task_info.cc b/source/matrix_free/task_info.cc index ede8eb3563..ab28b26444 100644 --- a/source/matrix_free/task_info.cc +++ b/source/matrix_free/task_info.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include #include @@ -31,6 +30,8 @@ # include #endif +#include "deal.II/base/config.h" + #include #include diff --git a/source/meshworker/mesh_worker.cc b/source/meshworker/mesh_worker.cc index 33cef92a37..5ca119392f 100644 --- a/source/meshworker/mesh_worker.cc +++ b/source/meshworker/mesh_worker.cc @@ -14,7 +14,7 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include #include diff --git a/source/meshworker/mesh_worker_info.cc b/source/meshworker/mesh_worker_info.cc index 58878c3de3..6b06a58bd5 100644 --- a/source/meshworker/mesh_worker_info.cc +++ b/source/meshworker/mesh_worker_info.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include #include @@ -25,6 +24,8 @@ DEAL_II_NAMESPACE_OPEN // explicit instantiations +#include "deal.II/base/config.h" + #include "mesh_worker_info.inst" diff --git a/source/meshworker/mesh_worker_vector_selector.cc b/source/meshworker/mesh_worker_vector_selector.cc index bb7faf41c4..3eae4879f3 100644 --- a/source/meshworker/mesh_worker_vector_selector.cc +++ b/source/meshworker/mesh_worker_vector_selector.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include #include @@ -28,6 +27,8 @@ DEAL_II_NAMESPACE_OPEN +#include "deal.II/base/config.h" + #include "mesh_worker_vector_selector.inst" diff --git a/source/multigrid/mg_base.cc b/source/multigrid/mg_base.cc index 8744c6cf40..132f320f63 100644 --- a/source/multigrid/mg_base.cc +++ b/source/multigrid/mg_base.cc @@ -13,7 +13,6 @@ // // --------------------------------------------------------------------- -#include #include #include #include @@ -41,6 +40,8 @@ MGSmootherBase::apply(const unsigned int level, // Explicit instantiations +#include "deal.II/base/config.h" + #include "mg_base.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/multigrid/mg_level_global_transfer.cc b/source/multigrid/mg_level_global_transfer.cc index 30052c40d3..6daf957e96 100644 --- a/source/multigrid/mg_level_global_transfer.cc +++ b/source/multigrid/mg_level_global_transfer.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include @@ -435,6 +434,8 @@ MGLevelGlobalTransfer< // explicit instantiation +#include "deal.II/base/config.h" + #include "mg_level_global_transfer.inst" // create an additional instantiation currently not supported by the automatic diff --git a/source/multigrid/mg_tools.cc b/source/multigrid/mg_tools.cc index d107f40bda..5cb4edb41c 100644 --- a/source/multigrid/mg_tools.cc +++ b/source/multigrid/mg_tools.cc @@ -13,7 +13,9 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + +#include "deal.II/base/types.h" #include #include diff --git a/source/multigrid/mg_transfer_block.cc b/source/multigrid/mg_transfer_block.cc index 237b807a63..7069aa2e0b 100644 --- a/source/multigrid/mg_transfer_block.cc +++ b/source/multigrid/mg_transfer_block.cc @@ -14,7 +14,7 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include #include diff --git a/source/multigrid/mg_transfer_component.cc b/source/multigrid/mg_transfer_component.cc index 5d770bdf8b..aac9d31a02 100644 --- a/source/multigrid/mg_transfer_component.cc +++ b/source/multigrid/mg_transfer_component.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/multigrid/mg_transfer_internal.cc b/source/multigrid/mg_transfer_internal.cc index b884e92f71..053a23d160 100644 --- a/source/multigrid/mg_transfer_internal.cc +++ b/source/multigrid/mg_transfer_internal.cc @@ -14,7 +14,9 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + +#include "deal.II/base/types.h" #include diff --git a/source/multigrid/mg_transfer_matrix_free.cc b/source/multigrid/mg_transfer_matrix_free.cc index 906fdda090..689c8c9bdf 100644 --- a/source/multigrid/mg_transfer_matrix_free.cc +++ b/source/multigrid/mg_transfer_matrix_free.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include @@ -745,6 +744,8 @@ MGTransferBlockMatrixFree::memory_consumption() const // explicit instantiation +#include "deal.II/base/config.h" + #include "mg_transfer_matrix_free.inst" diff --git a/source/multigrid/mg_transfer_prebuilt.cc b/source/multigrid/mg_transfer_prebuilt.cc index f2d89d9d54..1257021382 100644 --- a/source/multigrid/mg_transfer_prebuilt.cc +++ b/source/multigrid/mg_transfer_prebuilt.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include @@ -404,6 +403,8 @@ MGTransferPrebuilt::memory_consumption() const // explicit instantiation +#include "deal.II/base/config.h" + #include "mg_transfer_prebuilt.inst" diff --git a/source/multigrid/multigrid.cc b/source/multigrid/multigrid.cc index af0f49d958..d49ab82cd8 100644 --- a/source/multigrid/multigrid.cc +++ b/source/multigrid/multigrid.cc @@ -14,7 +14,6 @@ // --------------------------------------------------------------------- -#include #include #include #include @@ -304,14 +303,12 @@ MGTransferBlockSelect::restrict_and_add(const unsigned int from_level, // Explicit instantiations +#include "deal.II/base/config.h" + #include "multigrid.inst" template class MGTransferBlock; template class MGTransferBlock; -template class MGTransferSelect; -template class MGTransferSelect; -template class MGTransferBlockSelect; -template class MGTransferBlockSelect; DEAL_II_NAMESPACE_CLOSE diff --git a/source/non_matching/coupling.cc b/source/non_matching/coupling.cc index 380c081a87..d0187be839 100644 --- a/source/non_matching/coupling.cc +++ b/source/non_matching/coupling.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/non_matching/immersed_surface_quadrature.cc b/source/non_matching/immersed_surface_quadrature.cc index 99ec807ef4..b589e579f9 100644 --- a/source/non_matching/immersed_surface_quadrature.cc +++ b/source/non_matching/immersed_surface_quadrature.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include DEAL_II_NAMESPACE_OPEN diff --git a/source/numerics/data_out.cc b/source/numerics/data_out.cc index 0786356d96..cc7c4f1a6a 100644 --- a/source/numerics/data_out.cc +++ b/source/numerics/data_out.cc @@ -13,7 +13,7 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include #include diff --git a/source/numerics/data_out_dof_data.cc b/source/numerics/data_out_dof_data.cc index 79b9a37ec8..3b83451693 100644 --- a/source/numerics/data_out_dof_data.cc +++ b/source/numerics/data_out_dof_data.cc @@ -13,7 +13,6 @@ // // --------------------------------------------------------------------- -#include #include #include #include @@ -31,6 +30,8 @@ DEAL_II_NAMESPACE_OPEN #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 diff --git a/source/numerics/data_out_dof_data_codim.cc b/source/numerics/data_out_dof_data_codim.cc index e085c3d382..5ab68863e6 100644 --- a/source/numerics/data_out_dof_data_codim.cc +++ b/source/numerics/data_out_dof_data_codim.cc @@ -13,7 +13,6 @@ // // --------------------------------------------------------------------- -#include #include #include #include @@ -29,6 +28,8 @@ DEAL_II_NAMESPACE_OPEN +#include "deal.II/base/config.h" + #include "data_out_dof_data_codim.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/numerics/data_out_dof_data_inst2.cc b/source/numerics/data_out_dof_data_inst2.cc index a2a1311d6a..2fc22f91a1 100644 --- a/source/numerics/data_out_dof_data_inst2.cc +++ b/source/numerics/data_out_dof_data_inst2.cc @@ -13,7 +13,6 @@ // // --------------------------------------------------------------------- -#include #include #include #include @@ -31,6 +30,8 @@ DEAL_II_NAMESPACE_OPEN #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 diff --git a/source/numerics/data_out_faces.cc b/source/numerics/data_out_faces.cc index 89d173bc78..4aec22a309 100644 --- a/source/numerics/data_out_faces.cc +++ b/source/numerics/data_out_faces.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/numerics/data_out_rotation.cc b/source/numerics/data_out_rotation.cc index fc8815f3ee..29cf5b7664 100644 --- a/source/numerics/data_out_rotation.cc +++ b/source/numerics/data_out_rotation.cc @@ -13,7 +13,8 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/numerics/data_out_stack.cc b/source/numerics/data_out_stack.cc index 2f56b7fa3f..1e6d481e4f 100644 --- a/source/numerics/data_out_stack.cc +++ b/source/numerics/data_out_stack.cc @@ -13,7 +13,6 @@ // // --------------------------------------------------------------------- -#include #include #include @@ -32,6 +31,7 @@ #include +#include #include DEAL_II_NAMESPACE_OPEN @@ -504,6 +504,8 @@ DataOutStack::get_dataset_names() const // explicit instantiations +#include "deal.II/base/config.h" + #include "data_out_stack.inst" diff --git a/source/numerics/derivative_approximation.cc b/source/numerics/derivative_approximation.cc index f4bdf5a237..ebb8a69ba5 100644 --- a/source/numerics/derivative_approximation.cc +++ b/source/numerics/derivative_approximation.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #include diff --git a/source/numerics/dof_output_operator.cc b/source/numerics/dof_output_operator.cc index 431331c807..023db29677 100644 --- a/source/numerics/dof_output_operator.cc +++ b/source/numerics/dof_output_operator.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/numerics/error_estimator.cc b/source/numerics/error_estimator.cc index 5031949597..ccb029e9a1 100644 --- a/source/numerics/error_estimator.cc +++ b/source/numerics/error_estimator.cc @@ -13,12 +13,12 @@ // // --------------------------------------------------------------------- -#include - 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 diff --git a/source/numerics/error_estimator_1d.cc b/source/numerics/error_estimator_1d.cc index eef1d7454a..4b15d8bad9 100644 --- a/source/numerics/error_estimator_1d.cc +++ b/source/numerics/error_estimator_1d.cc @@ -13,7 +13,6 @@ // // --------------------------------------------------------------------- -#include #include #include #include @@ -560,6 +559,8 @@ KellyErrorEstimator<1, spacedim>::estimate( // explicit instantiations +#include "deal.II/base/config.h" + #include "error_estimator_1d.inst" diff --git a/source/numerics/error_estimator_inst2.cc b/source/numerics/error_estimator_inst2.cc index 31d35d1772..0dca070676 100644 --- a/source/numerics/error_estimator_inst2.cc +++ b/source/numerics/error_estimator_inst2.cc @@ -13,12 +13,12 @@ // // --------------------------------------------------------------------- -#include - 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 diff --git a/source/numerics/fe_field_function.cc b/source/numerics/fe_field_function.cc index aa996989e7..948e795d87 100644 --- a/source/numerics/fe_field_function.cc +++ b/source/numerics/fe_field_function.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include diff --git a/source/numerics/histogram.cc b/source/numerics/histogram.cc index b3ecbcf0de..b20eb942e2 100644 --- a/source/numerics/histogram.cc +++ b/source/numerics/histogram.cc @@ -13,7 +13,7 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include diff --git a/source/numerics/kdtree.cc b/source/numerics/kdtree.cc index 4f96a9d281..d9a4c9fa50 100644 --- a/source/numerics/kdtree.cc +++ b/source/numerics/kdtree.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #ifdef DEAL_II_WITH_NANOFLANN diff --git a/source/numerics/matrix_creator.cc b/source/numerics/matrix_creator.cc index 9f49484ad6..1014f3ed78 100644 --- a/source/numerics/matrix_creator.cc +++ b/source/numerics/matrix_creator.cc @@ -13,8 +13,6 @@ // // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN @@ -23,6 +21,8 @@ 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 diff --git a/source/numerics/matrix_tools.cc b/source/numerics/matrix_tools.cc index a5f62cd223..38480abb45 100644 --- a/source/numerics/matrix_tools.cc +++ b/source/numerics/matrix_tools.cc @@ -13,7 +13,6 @@ // // --------------------------------------------------------------------- -#include #include #include #include @@ -52,10 +51,20 @@ # include #endif +#include "deal.II/base/config.h" + +#include "deal.II/base/types.h" + #include #include #include +namespace dealii +{ + template + class Vector; +} // namespace dealii + DEAL_II_NAMESPACE_OPEN diff --git a/source/numerics/matrix_tools_once.cc b/source/numerics/matrix_tools_once.cc index aded4396a4..bb247942da 100644 --- a/source/numerics/matrix_tools_once.cc +++ b/source/numerics/matrix_tools_once.cc @@ -13,7 +13,6 @@ // // --------------------------------------------------------------------- -#include #include #include #include @@ -53,6 +52,8 @@ # include #endif +#include "deal.II/base/config.h" + #include #include diff --git a/source/numerics/point_value_history.cc b/source/numerics/point_value_history.cc index d082043b61..bdf886f235 100644 --- a/source/numerics/point_value_history.cc +++ b/source/numerics/point_value_history.cc @@ -14,7 +14,8 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + #include #include #include diff --git a/source/numerics/solution_transfer.cc b/source/numerics/solution_transfer.cc index bc97775ab0..72f40c44f1 100644 --- a/source/numerics/solution_transfer.cc +++ b/source/numerics/solution_transfer.cc @@ -13,8 +13,6 @@ // // --------------------------------------------------------------------- -#include - #include #include @@ -622,6 +620,8 @@ SolutionTransfer::Pointerstruct:: #ifndef SPLIT_INSTANTIATIONS_INDEX # define SPLIT_INSTANTIATIONS_INDEX 0 #endif +#include "deal.II/base/config.h" + #include "solution_transfer.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/numerics/time_dependent.cc b/source/numerics/time_dependent.cc index ad5f8fecd4..423fd8743a 100644 --- a/source/numerics/time_dependent.cc +++ b/source/numerics/time_dependent.cc @@ -13,7 +13,6 @@ // // --------------------------------------------------------------------- -#include #include #include #include @@ -1269,6 +1268,8 @@ TimeStepBase_Tria_Flags::RefinementData::RefinementData( /*-------------- Explicit Instantiations -------------------------------*/ +#include "deal.II/base/config.h" + #include "time_dependent.inst" diff --git a/source/numerics/vector_tools_boundary.cc b/source/numerics/vector_tools_boundary.cc index e3a12974fe..44fac26acc 100644 --- a/source/numerics/vector_tools_boundary.cc +++ b/source/numerics/vector_tools_boundary.cc @@ -14,11 +14,11 @@ // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN // ---------------------------- explicit instantiations -------------------- +#include "deal.II/base/config.h" + #include "vector_tools_boundary.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/numerics/vector_tools_constraints.cc b/source/numerics/vector_tools_constraints.cc index 5fc9d7bf1c..823c1cdb0c 100644 --- a/source/numerics/vector_tools_constraints.cc +++ b/source/numerics/vector_tools_constraints.cc @@ -14,11 +14,11 @@ // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN // ---------------------------- explicit instantiations -------------------- +#include "deal.II/base/config.h" + #include "vector_tools_constraints.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/numerics/vector_tools_integrate_difference.cc b/source/numerics/vector_tools_integrate_difference.cc index 3427c3455c..253fd9bb7e 100644 --- a/source/numerics/vector_tools_integrate_difference.cc +++ b/source/numerics/vector_tools_integrate_difference.cc @@ -14,11 +14,11 @@ // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN // ---------------------------- explicit instantiations -------------------- +#include "deal.II/base/config.h" + #include "vector_tools_integrate_difference.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/numerics/vector_tools_interpolate.cc b/source/numerics/vector_tools_interpolate.cc index 7897902fc0..8681e8d4dc 100644 --- a/source/numerics/vector_tools_interpolate.cc +++ b/source/numerics/vector_tools_interpolate.cc @@ -14,11 +14,11 @@ // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN // ---------------------------- explicit instantiations -------------------- +#include "deal.II/base/config.h" + #include "vector_tools_interpolate.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/numerics/vector_tools_mean_value.cc b/source/numerics/vector_tools_mean_value.cc index f1d3229d29..4b74096dc2 100644 --- a/source/numerics/vector_tools_mean_value.cc +++ b/source/numerics/vector_tools_mean_value.cc @@ -14,11 +14,11 @@ // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN // ---------------------------- explicit instantiations -------------------- +#include "deal.II/base/config.h" + #include "vector_tools_mean_value.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/numerics/vector_tools_point_gradient.cc b/source/numerics/vector_tools_point_gradient.cc index a0ef0f7994..72738bed7f 100644 --- a/source/numerics/vector_tools_point_gradient.cc +++ b/source/numerics/vector_tools_point_gradient.cc @@ -14,11 +14,11 @@ // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN // ---------------------------- explicit instantiations -------------------- +#include "deal.II/base/config.h" + #include "vector_tools_point_gradient.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/numerics/vector_tools_point_value.cc b/source/numerics/vector_tools_point_value.cc index 3efaa572fe..f166d3ce23 100644 --- a/source/numerics/vector_tools_point_value.cc +++ b/source/numerics/vector_tools_point_value.cc @@ -14,11 +14,11 @@ // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN // ---------------------------- explicit instantiations -------------------- +#include "deal.II/base/config.h" + #include "vector_tools_point_value.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/numerics/vector_tools_project.cc b/source/numerics/vector_tools_project.cc index d0a3cec227..f42361e769 100644 --- a/source/numerics/vector_tools_project.cc +++ b/source/numerics/vector_tools_project.cc @@ -14,8 +14,6 @@ // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN // ---------------------------- explicit instantiations -------------------- @@ -23,6 +21,8 @@ DEAL_II_NAMESPACE_OPEN #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 diff --git a/source/numerics/vector_tools_project_codim.cc b/source/numerics/vector_tools_project_codim.cc index b2a7641ec9..abba3cc721 100644 --- a/source/numerics/vector_tools_project_codim.cc +++ b/source/numerics/vector_tools_project_codim.cc @@ -14,12 +14,12 @@ // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN // ---------------------------- explicit instantiations -------------------- +#include "deal.II/base/config.h" + #include "vector_tools_project_codim.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/numerics/vector_tools_project_hp.cc b/source/numerics/vector_tools_project_hp.cc index 1eee77e594..8d749764b9 100644 --- a/source/numerics/vector_tools_project_hp.cc +++ b/source/numerics/vector_tools_project_hp.cc @@ -14,12 +14,12 @@ // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN // ---------------------------- explicit instantiations -------------------- +#include "deal.II/base/config.h" + #include "vector_tools_project_hp.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/numerics/vector_tools_project_qp.cc b/source/numerics/vector_tools_project_qp.cc index f19bc7a3e3..f2613269b0 100644 --- a/source/numerics/vector_tools_project_qp.cc +++ b/source/numerics/vector_tools_project_qp.cc @@ -14,11 +14,11 @@ // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN // ---------------------------- explicit instantiations -------------------- +#include "deal.II/base/config.h" + #include "vector_tools_project_qp.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/numerics/vector_tools_project_qpmf.cc b/source/numerics/vector_tools_project_qpmf.cc index 8fd28bd00e..24e54a140d 100644 --- a/source/numerics/vector_tools_project_qpmf.cc +++ b/source/numerics/vector_tools_project_qpmf.cc @@ -14,11 +14,11 @@ // --------------------------------------------------------------------- -#include - DEAL_II_NAMESPACE_OPEN // ---------------------------- explicit instantiations -------------------- +#include "deal.II/base/config.h" + #include "vector_tools_project_qpmf.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/numerics/vector_tools_rhs.cc b/source/numerics/vector_tools_rhs.cc index 93f6571e0c..3bbc9912cd 100644 --- a/source/numerics/vector_tools_rhs.cc +++ b/source/numerics/vector_tools_rhs.cc @@ -14,7 +14,13 @@ // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" + +namespace dealii +{ + template + class Vector; +} // namespace dealii DEAL_II_NAMESPACE_OPEN diff --git a/source/opencascade/boundary_lib.cc b/source/opencascade/boundary_lib.cc index d18e92bead..ef4da20bea 100644 --- a/source/opencascade/boundary_lib.cc +++ b/source/opencascade/boundary_lib.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #ifdef DEAL_II_WITH_OPENCASCADE diff --git a/source/opencascade/manifold_lib.cc b/source/opencascade/manifold_lib.cc index c872b0d2fc..6eacb18633 100644 --- a/source/opencascade/manifold_lib.cc +++ b/source/opencascade/manifold_lib.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #ifdef DEAL_II_WITH_OPENCASCADE diff --git a/source/opencascade/utilities.cc b/source/opencascade/utilities.cc index e2bd301c7e..fba93eff4e 100644 --- a/source/opencascade/utilities.cc +++ b/source/opencascade/utilities.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include #ifdef DEAL_II_WITH_OPENCASCADE diff --git a/source/particles/particle.cc b/source/particles/particle.cc index b5dea11fa8..03fb858d71 100644 --- a/source/particles/particle.cc +++ b/source/particles/particle.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/array_view.h" + #include DEAL_II_NAMESPACE_OPEN diff --git a/source/particles/particle_accessor.cc b/source/particles/particle_accessor.cc index 2f861c3424..369ac751c3 100644 --- a/source/particles/particle_accessor.cc +++ b/source/particles/particle_accessor.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/array_view.h" + #include DEAL_II_NAMESPACE_OPEN diff --git a/source/particles/particle_handler.cc b/source/particles/particle_handler.cc index cc0255d33d..db9d3a4c59 100644 --- a/source/particles/particle_handler.cc +++ b/source/particles/particle_handler.cc @@ -13,7 +13,7 @@ // // --------------------------------------------------------------------- -#include +#include "deal.II/base/config.h" #include #include diff --git a/source/particles/particle_iterator.cc b/source/particles/particle_iterator.cc index 9b5345ee6d..d71b051c11 100644 --- a/source/particles/particle_iterator.cc +++ b/source/particles/particle_iterator.cc @@ -13,6 +13,8 @@ // // --------------------------------------------------------------------- +#include "deal.II/base/config.h" + #include DEAL_II_NAMESPACE_OPEN diff --git a/source/particles/property_pool.cc b/source/particles/property_pool.cc index 8e72e6510c..48990284a3 100644 --- a/source/particles/property_pool.cc +++ b/source/particles/property_pool.cc @@ -14,6 +14,8 @@ // --------------------------------------------------------------------- +#include "deal.II/base/array_view.h" + #include DEAL_II_NAMESPACE_OPEN diff --git a/source/physics/elasticity/standard_tensors.cc b/source/physics/elasticity/standard_tensors.cc index 80d44b3c34..a6398897c4 100644 --- a/source/physics/elasticity/standard_tensors.cc +++ b/source/physics/elasticity/standard_tensors.cc @@ -13,8 +13,6 @@ // // --------------------------------------------------------------------- -#include - #include DEAL_II_NAMESPACE_OPEN @@ -46,6 +44,8 @@ const SymmetricTensor<4, dim> #endif // DOXYGEN // explicit instantiations +#include "deal.II/base/config.h" + #include "standard_tensors.inst" DEAL_II_NAMESPACE_CLOSE diff --git a/source/sundials/copy.cc b/source/sundials/copy.cc index 701001789d..0c31b62403 100644 --- a/source/sundials/copy.cc +++ b/source/sundials/copy.cc @@ -13,8 +13,12 @@ // //----------------------------------------------------------- +#include "deal.II/base/config.h" + #include +#include + #ifdef DEAL_II_WITH_SUNDIALS DEAL_II_NAMESPACE_OPEN