From 5b2b1725a3a94e3a973cb2c9c77f956507c1b036 Mon Sep 17 00:00:00 2001
From: heltai
Date: Tue, 23 Jul 2013 13:01:18 +0000
Subject: [PATCH] Merged from mainline
git-svn-id: https://svn.dealii.org/branches/branch_manifold_id@30130 0785d39b-7218-0410-832d-ea1e28bc413d
---
deal.II/CMakeLists.txt | 60 +-
deal.II/LICENSE | 44 -
deal.II/VERSION | 2 +-
deal.II/bundled/CMakeLists.txt | 18 +-
.../include/boost/thread/xtime.hpp | 4 +-
.../libs/serialization/src/CMakeLists.txt | 18 +-
.../libs/thread/example/starvephil.cpp | 6 +-
.../libs/thread/example/tennis.cpp | 2 +-
.../libs/thread/example/thread.cpp | 2 +-
.../libs/thread/example/xtime.cpp | 2 +-
.../libs/thread/src/CMakeLists.txt | 18 +-
.../libs/thread/src/pthread/thread.cpp | 4 +-
.../libs/thread/src/pthread/timeconv.inl | 16 +-
.../libs/thread/src/win32/timeconv.inl | 16 +-
deal.II/bundled/functionparser/CMakeLists.txt | 18 +-
.../tbb41_20130401oss/src/CMakeLists.txt | 18 +-
.../bundled/umfpack/AMD/Source/CMakeLists.txt | 18 +-
.../umfpack/UMFPACK/Source/CMakeLists.txt | 18 +-
deal.II/cmake/TODO.CMAKE | 7 -
.../checks/check_01_compiler_features.cmake | 30 +-
.../cmake/checks/check_01_cpu_features.cmake | 38 +-
.../cmake/checks/check_01_cxx_features.cmake | 38 +-
.../checks/check_02_system_features.cmake | 70 +-
.../cmake/checks/check_03_compiler_bugs.cmake | 60 +-
deal.II/cmake/config/CMakeLists.txt | 50 +-
deal.II/cmake/config/Config.cmake.in | 41 +-
.../cmake/configure/configure_1_lapack.cmake | 134 +-
deal.II/cmake/configure/configure_1_mpi.cmake | 56 +-
.../cmake/configure/configure_1_threads.cmake | 69 +-
.../cmake/configure/configure_1_umfpack.cmake | 18 +-
...re_metis.cmake => configure_2_metis.cmake} | 20 +-
...re_petsc.cmake => configure_2_petsc.cmake} | 54 +-
...linos.cmake => configure_2_trilinos.cmake} | 75 +-
.../cmake/configure/configure_arpack.cmake | 18 +-
deal.II/cmake/configure/configure_boost.cmake | 48 +-
.../configure/configure_functionparser.cmake | 18 +-
deal.II/cmake/configure/configure_hdf5.cmake | 18 +-
deal.II/cmake/configure/configure_mumps.cmake | 18 +-
.../cmake/configure/configure_netcdf.cmake | 18 +-
deal.II/cmake/configure/configure_p4est.cmake | 18 +-
deal.II/cmake/configure/configure_slepc.cmake | 18 +-
deal.II/cmake/configure/configure_zlib.cmake | 18 +-
deal.II/cmake/macros/macro_add_flags.cmake | 18 +-
.../macros/macro_check_cxx_compiler_bug.cmake | 18 +-
.../cmake/macros/macro_cond_set_to_yes.cmake | 18 +-
.../macros/macro_configure_feature.cmake | 40 +-
.../macro_deal_ii_add_definitions.cmake | 18 +-
.../macro_deal_ii_add_dependencies.cmake | 18 +-
.../macros/macro_deal_ii_add_library.cmake | 24 +-
..._deal_ii_initialize_cached_variables.cmake | 54 +-
.../macro_deal_ii_invoke_autopilot.cmake | 48 +-
.../macros/macro_deal_ii_setup_target.cmake | 30 +-
.../cmake/macros/macro_enable_if_links.cmake | 18 +-
.../macros/macro_enable_if_supported.cmake | 19 +-
.../macro_enable_language_optional.cmake | 66 +
.../macros/macro_expand_instantiations.cmake | 18 +-
deal.II/cmake/macros/macro_find_package.cmake | 16 +-
deal.II/cmake/macros/macro_item_matches.cmake | 18 +-
.../cmake/macros/macro_pop_test_flag.cmake | 18 +-
.../cmake/macros/macro_push_test_flag.cmake | 18 +-
deal.II/cmake/macros/macro_replace_flag.cmake | 18 +-
deal.II/cmake/macros/macro_set_if_empty.cmake | 18 +-
.../macros/macro_split_debug_release.cmake | 16 +-
deal.II/cmake/macros/macro_strip_flag.cmake | 18 +-
.../macro_switch_library_preference.cmake | 33 +
deal.II/cmake/macros/macro_to_string.cmake | 18 +-
.../macro_to_string_and_add_prefix.cmake | 18 +-
deal.II/cmake/modules/FindARPACK.cmake | 36 +-
deal.II/cmake/modules/FindHDF5.cmake | 36 +-
deal.II/cmake/modules/FindMETIS.cmake | 56 +-
deal.II/cmake/modules/FindMUMPS.cmake | 43 +-
deal.II/cmake/modules/FindNETCDF.cmake | 31 +-
deal.II/cmake/modules/FindP4EST.cmake | 36 +-
deal.II/cmake/modules/FindPETSC.cmake | 52 +-
deal.II/cmake/modules/FindSCALAPACK.cmake | 43 +-
deal.II/cmake/modules/FindSLEPC.cmake | 34 +-
deal.II/cmake/modules/FindTBB.cmake | 27 +-
deal.II/cmake/modules/FindTRILINOS.cmake | 51 +-
deal.II/cmake/modules/FindUMFPACK.cmake | 75 +-
deal.II/cmake/scripts/CMakeLists.txt | 39 +-
.../cmake/scripts/expand_instantiations.cc | 22 +-
deal.II/cmake/scripts/make_dependencies.cc | 22 +-
deal.II/cmake/scripts/report_features.cc.in | 26 +-
deal.II/cmake/setup_cached_variables.cmake | 168 +-
deal.II/cmake/setup_compiler_flags.cmake | 84 +-
deal.II/cmake/setup_compiler_flags_gnu.cmake | 48 +-
.../cmake/setup_compiler_flags_intel.cmake | 34 +-
deal.II/cmake/setup_compiler_flags_msvc.cmake | 18 +-
deal.II/cmake/setup_custom_targets.cmake | 44 -
deal.II/cmake/setup_deal_ii.cmake | 58 +-
deal.II/cmake/setup_external_macros.cmake | 19 +-
deal.II/cmake/setup_finalize.cmake | 60 +-
deal.II/contrib/CMakeLists.txt | 22 +-
.../example_custom_target.cmake | 16 +
.../lapack_templates/lapack_templates.pl | 47 +-
.../contrib/mesh_conversion/CMakeLists.txt | 20 +-
deal.II/contrib/parameter_gui/CMakeLists.txt | 18 +-
deal.II/contrib/parameter_gui/README | 2 +-
.../contrib/parameter_gui/browse_lineedit.cpp | 20 +-
.../contrib/parameter_gui/browse_lineedit.h | 20 +-
.../contrib/parameter_gui/info_message.cpp | 20 +-
deal.II/contrib/parameter_gui/info_message.h | 20 +-
deal.II/contrib/parameter_gui/main.cpp | 20 +-
deal.II/contrib/parameter_gui/mainwindow.cpp | 20 +-
deal.II/contrib/parameter_gui/mainwindow.h | 20 +-
.../parameter_gui/parameter_delegate.cpp | 20 +-
.../parameter_gui/parameter_delegate.h | 20 +-
.../parameter_gui/xml_parameter_reader.cpp | 20 +-
.../parameter_gui/xml_parameter_reader.h | 20 +-
.../parameter_gui/xml_parameter_writer.cpp | 20 +-
.../parameter_gui/xml_parameter_writer.h | 20 +-
deal.II/contrib/test_affinity/CMakeLists.txt | 46 +
.../contrib/test_affinity/test_affinity.cc | 29 +
deal.II/doc/CMakeLists.txt | 23 +-
deal.II/doc/authors.html | 16 +-
deal.II/doc/development/Config.sample | 45 +-
deal.II/doc/development/cmake-internals.html | 37 +-
deal.II/doc/development/cmake.html | 28 +-
deal.II/doc/development/index.html | 8 +-
deal.II/doc/development/navbar.html | 23 +-
deal.II/doc/development/testsuite.html | 20 +-
deal.II/doc/doxygen/CMakeLists.txt | 18 +-
deal.II/doc/doxygen/header.html.in | 4 +-
deal.II/doc/doxygen/headers/boundary.h | 22 +-
.../doc/doxygen/headers/coding_conventions.h | 22 +-
deal.II/doc/doxygen/headers/constraints.h | 22 +-
deal.II/doc/doxygen/headers/distributed.h | 22 +-
deal.II/doc/doxygen/headers/dofs.h | 22 +-
deal.II/doc/doxygen/headers/exceptions.h | 24 +-
deal.II/doc/doxygen/headers/fe.h | 22 +-
deal.II/doc/doxygen/headers/functions.h | 22 +-
deal.II/doc/doxygen/headers/geodynamics.h | 22 +-
.../doxygen/headers/geometry_and_primitives.h | 22 +-
.../doc/doxygen/headers/global_dof_index.h | 70 +
deal.II/doc/doxygen/headers/glossary.h | 28 +-
deal.II/doc/doxygen/headers/grid.h | 22 +-
deal.II/doc/doxygen/headers/hp.h | 22 +-
deal.II/doc/doxygen/headers/instantiations.h | 22 +-
deal.II/doc/doxygen/headers/integrators.h | 22 +-
deal.II/doc/doxygen/headers/io.h | 22 +-
deal.II/doc/doxygen/headers/iterators.h | 16 +
deal.II/doc/doxygen/headers/lac.h | 22 +-
deal.II/doc/doxygen/headers/main.h | 22 +-
deal.II/doc/doxygen/headers/matrices.h | 22 +-
deal.II/doc/doxygen/headers/memory.h | 22 +-
deal.II/doc/doxygen/headers/mesh_worker.h | 22 +-
deal.II/doc/doxygen/headers/mg.h | 22 +-
deal.II/doc/doxygen/headers/multithreading.h | 22 +-
.../doc/doxygen/headers/namespace_dealii.h | 16 +
.../doxygen/headers/numerical_algorithms.h | 22 +-
deal.II/doc/doxygen/headers/parallel.h | 22 +-
deal.II/doc/doxygen/headers/petsc.h | 22 +-
deal.II/doc/doxygen/headers/polynomials.h | 22 +-
deal.II/doc/doxygen/headers/preconditioners.h | 22 +-
deal.II/doc/doxygen/headers/quadrature.h | 22 +-
deal.II/doc/doxygen/headers/slepc.h | 22 +-
deal.II/doc/doxygen/headers/solvers.h | 22 +-
deal.II/doc/doxygen/headers/std_cxx1x.h | 22 +-
deal.II/doc/doxygen/headers/trilinos.h | 22 +-
deal.II/doc/doxygen/headers/tutorial.h | 22 +-
deal.II/doc/doxygen/headers/update_flags.h | 22 +-
deal.II/doc/doxygen/headers/utilities.h | 22 +-
deal.II/doc/doxygen/headers/vector_memory.h | 22 +-
deal.II/doc/doxygen/headers/vector_valued.h | 32 +-
deal.II/doc/doxygen/headers/vectors.h | 22 +-
deal.II/doc/doxygen/images/CMakeLists.txt | 15 +
deal.II/doc/doxygen/scripts/create_anchors | 27 +-
deal.II/doc/doxygen/scripts/intro2toc | 27 +-
deal.II/doc/doxygen/scripts/make_step.pl | 27 +-
deal.II/doc/doxygen/scripts/program2doxygen | 28 +-
deal.II/doc/doxygen/scripts/program2doxyplain | 27 +-
deal.II/doc/doxygen/scripts/program2html | 27 +-
deal.II/doc/doxygen/scripts/program2plain | 27 +-
deal.II/doc/doxygen/scripts/program2toc | 27 +-
deal.II/doc/doxygen/tutorial/CMakeLists.txt | 18 +-
deal.II/doc/external-libs/mumps.html | 5 +-
deal.II/doc/external-libs/p4est.html | 48 +-
deal.II/doc/external-libs/petsc.html | 19 +-
deal.II/doc/external-libs/slepc.html | 8 +
deal.II/doc/external-libs/trilinos.html | 50 +-
deal.II/doc/index.html | 2 +-
deal.II/doc/license/adjust.pl | 29 +
deal.II/doc/license/header-template | 7 +-
deal.II/doc/license/header-template.cmake | 15 +
deal.II/doc/license/replace.sh | 51 +
deal.II/doc/navbar.html | 9 +-
deal.II/doc/news/7.3.0-vs-8.0.0.h | 627 ++++++
deal.II/doc/news/changes.h | 431 +---
deal.II/doc/news/news.html | 28 +-
deal.II/doc/publications/index.html | 465 +++--
deal.II/doc/readme.html | 39 +-
deal.II/examples/CMakeLists.txt | 18 +-
.../examples/doxygen/block_matrix_array.cc | 20 +-
.../compressed_block_sparsity_pattern.cc | 21 +-
deal.II/examples/doxygen/product_matrix.cc | 21 +-
.../examples/doxygen/theta_timestepping.cc | 21 +-
deal.II/examples/step-1/step-1.cc | 25 +-
deal.II/examples/step-10/step-10.cc | 30 +-
deal.II/examples/step-11/step-11.cc | 30 +-
deal.II/examples/step-12/step-12.cc | 30 +-
deal.II/examples/step-13/step-13.cc | 35 +-
deal.II/examples/step-14/step-14.cc | 35 +-
deal.II/examples/step-15/step-15.cc | 41 +-
deal.II/examples/step-16/step-16.cc | 38 +-
deal.II/examples/step-17/step-17.cc | 39 +-
deal.II/examples/step-18/step-18.cc | 43 +-
deal.II/examples/step-19/step-19.cc | 29 +-
deal.II/examples/step-2/step-2.cc | 30 +-
deal.II/examples/step-20/step-20.cc | 32 +-
deal.II/examples/step-21/step-21.cc | 36 +-
deal.II/examples/step-22/step-22.cc | 33 +-
deal.II/examples/step-23/step-23.cc | 34 +-
deal.II/examples/step-24/step-24.cc | 30 +-
deal.II/examples/step-25/step-25.cc | 32 +-
deal.II/examples/step-26/step-26.cc | 62 +-
deal.II/examples/step-27/step-27.cc | 30 +-
deal.II/examples/step-28/step-28.cc | 38 +-
deal.II/examples/step-29/step-29.cc | 33 +-
deal.II/examples/step-3/doc/intro.dox | 68 +
deal.II/examples/step-3/doc/results.dox | 2 +-
deal.II/examples/step-3/step-3.cc | 45 +-
deal.II/examples/step-30/step-30.cc | 35 +-
deal.II/examples/step-31/doc/results.dox | 24 +-
deal.II/examples/step-31/step-31.cc | 58 +-
deal.II/examples/step-32/step-32.cc | 48 +-
deal.II/examples/step-33/step-33.cc | 48 +-
deal.II/examples/step-34/step-34.cc | 32 +-
deal.II/examples/step-35/step-35.cc | 43 +-
deal.II/examples/step-36/step-36.cc | 32 +-
deal.II/examples/step-37/step-37.cc | 41 +-
deal.II/examples/step-38/step-38.cc | 32 +-
deal.II/examples/step-39/step-39.cc | 58 +-
deal.II/examples/step-4/step-4.cc | 32 +-
deal.II/examples/step-40/doc/intro.dox | 12 +
deal.II/examples/step-40/step-40.cc | 137 +-
deal.II/examples/step-41/step-41.cc | 38 +-
deal.II/examples/step-42/step-42.cc | 188 +-
deal.II/examples/step-43/doc/intro.dox | 6 +-
deal.II/examples/step-43/step-43.cc | 53 +-
deal.II/examples/step-44/step-44.cc | 54 +-
deal.II/examples/step-45/step-45.cc | 31 +-
deal.II/examples/step-46/step-46.cc | 35 +-
deal.II/examples/step-47/step-47.cc | 33 +-
deal.II/examples/step-48/step-48.cc | 101 +-
deal.II/examples/step-49/step-49.cc | 60 +-
deal.II/examples/step-5/step-5.cc | 34 +-
deal.II/examples/step-50/step-50.cc | 553 ++---
deal.II/examples/step-6/step-6.cc | 30 +-
deal.II/examples/step-7/step-7.cc | 34 +-
deal.II/examples/step-8/step-8.cc | 32 +-
deal.II/examples/step-9/step-9.cc | 48 +-
deal.II/include/CMakeLists.txt | 18 +-
deal.II/include/deal.II/algorithms/newton.h | 21 +-
.../deal.II/algorithms/newton.templates.h | 21 +-
deal.II/include/deal.II/algorithms/operator.h | 32 +-
.../deal.II/algorithms/operator.templates.h | 21 +-
.../deal.II/algorithms/theta_timestepping.h | 21 +-
.../algorithms/theta_timestepping.templates.h | 21 +-
.../deal.II/algorithms/timestep_control.h | 21 +-
.../deal.II/base/auto_derivative_function.h | 21 +-
.../deal.II/base/conditional_ostream.h | 21 +-
deal.II/include/deal.II/base/config.h.in | 15 +-
.../include/deal.II/base/convergence_table.h | 23 +-
deal.II/include/deal.II/base/data_out_base.h | 177 +-
.../include/deal.II/base/derivative_form.h | 18 +-
deal.II/include/deal.II/base/event.h | 21 +-
deal.II/include/deal.II/base/exceptions.h | 47 +-
deal.II/include/deal.II/base/flow_function.h | 21 +-
deal.II/include/deal.II/base/function.h | 655 ++----
.../include/deal.II/base/function_bessel.h | 21 +-
.../deal.II/base/function_derivative.h | 21 +-
deal.II/include/deal.II/base/function_lib.h | 21 +-
.../include/deal.II/base/function_parser.h | 21 +-
deal.II/include/deal.II/base/function_time.h | 21 +-
deal.II/include/deal.II/base/geometry_info.h | 25 +-
deal.II/include/deal.II/base/index_set.h | 146 +-
deal.II/include/deal.II/base/job_identifier.h | 21 +-
deal.II/include/deal.II/base/logstream.h | 28 +-
.../include/deal.II/base/memory_consumption.h | 39 +-
.../include/deal.II/base/mg_level_object.h | 21 +-
deal.II/include/deal.II/base/mpi.h | 32 +-
.../include/deal.II/base/multithread_info.h | 23 +-
deal.II/include/deal.II/base/named_data.h | 21 +-
deal.II/include/deal.II/base/numbers.h | 21 +-
deal.II/include/deal.II/base/parallel.h | 21 +-
.../include/deal.II/base/parameter_handler.h | 1853 ++++++-----------
.../include/deal.II/base/parsed_function.h | 21 +-
deal.II/include/deal.II/base/partitioner.h | 57 +-
deal.II/include/deal.II/base/path_search.h | 21 +-
deal.II/include/deal.II/base/point.h | 21 +-
deal.II/include/deal.II/base/polynomial.h | 21 +-
.../include/deal.II/base/polynomial_space.h | 23 +-
.../include/deal.II/base/polynomials_abf.h | 21 +-
.../include/deal.II/base/polynomials_adini.h | 21 +-
.../include/deal.II/base/polynomials_bdm.h | 21 +-
.../deal.II/base/polynomials_nedelec.h | 21 +-
deal.II/include/deal.II/base/polynomials_p.h | 21 +-
.../deal.II/base/polynomials_piecewise.h | 23 +-
.../deal.II/base/polynomials_raviart_thomas.h | 21 +-
deal.II/include/deal.II/base/qprojector.h | 21 +-
deal.II/include/deal.II/base/quadrature.h | 21 +-
deal.II/include/deal.II/base/quadrature_lib.h | 25 +-
.../deal.II/base/quadrature_selector.h | 21 +-
deal.II/include/deal.II/base/smartpointer.h | 21 +-
.../include/deal.II/base/std_cxx1x/array.h | 22 +-
deal.II/include/deal.II/base/std_cxx1x/bind.h | 22 +-
.../base/std_cxx1x/condition_variable.h | 22 +-
.../include/deal.II/base/std_cxx1x/function.h | 22 +-
.../include/deal.II/base/std_cxx1x/mutex.h | 22 +-
.../deal.II/base/std_cxx1x/shared_ptr.h | 22 +-
.../include/deal.II/base/std_cxx1x/thread.h | 22 +-
.../include/deal.II/base/std_cxx1x/tuple.h | 22 +-
.../deal.II/base/std_cxx1x/type_traits.h | 22 +-
deal.II/include/deal.II/base/subscriptor.h | 29 +-
.../include/deal.II/base/symmetric_tensor.h | 21 +-
.../deal.II/base/synchronous_iterator.h | 21 +-
deal.II/include/deal.II/base/table.h | 71 +-
deal.II/include/deal.II/base/table_handler.h | 23 +-
deal.II/include/deal.II/base/table_indices.h | 37 +-
.../deal.II/base/template_constraints.h | 21 +-
deal.II/include/deal.II/base/tensor.h | 118 +-
deal.II/include/deal.II/base/tensor_base.h | 97 +-
.../include/deal.II/base/tensor_function.h | 126 +-
.../deal.II/base/tensor_product_polynomials.h | 21 +-
.../base/tensor_product_polynomials_const.h | 21 +-
.../deal.II/base/thread_local_storage.h | 25 +-
.../include/deal.II/base/thread_management.h | 99 +-
deal.II/include/deal.II/base/timer.h | 27 +-
deal.II/include/deal.II/base/types.h | 116 +-
deal.II/include/deal.II/base/utilities.h | 45 +-
deal.II/include/deal.II/base/vector_slice.h | 21 +-
deal.II/include/deal.II/base/vectorization.h | 22 +-
deal.II/include/deal.II/base/work_stream.h | 369 +++-
.../deal.II/distributed/grid_refinement.h | 21 +-
.../deal.II/distributed/solution_transfer.h | 21 +-
deal.II/include/deal.II/distributed/tria.h | 42 +-
deal.II/include/deal.II/dofs/block_info.h | 29 +-
deal.II/include/deal.II/dofs/dof_accessor.h | 210 +-
.../deal.II/dofs/dof_accessor.templates.h | 412 ++--
deal.II/include/deal.II/dofs/dof_faces.h | 25 +-
deal.II/include/deal.II/dofs/dof_handler.h | 181 +-
.../include/deal.II/dofs/dof_handler_policy.h | 27 +-
.../deal.II/dofs/dof_iterator_selector.h | 21 +-
deal.II/include/deal.II/dofs/dof_levels.h | 23 +-
deal.II/include/deal.II/dofs/dof_objects.h | 37 +-
.../include/deal.II/dofs/dof_renumbering.h | 78 +-
deal.II/include/deal.II/dofs/dof_tools.h | 53 +-
deal.II/include/deal.II/dofs/function_map.h | 21 +-
deal.II/include/deal.II/dofs/number_cache.h | 27 +-
deal.II/include/deal.II/fe/block_mask.h | 21 +-
deal.II/include/deal.II/fe/component_mask.h | 21 +-
deal.II/include/deal.II/fe/fe.h | 33 +-
deal.II/include/deal.II/fe/fe_abf.h | 21 +-
deal.II/include/deal.II/fe/fe_base.h | 21 +-
deal.II/include/deal.II/fe/fe_bdm.h | 21 +-
deal.II/include/deal.II/fe/fe_dg_vector.h | 21 +-
.../deal.II/fe/fe_dg_vector.templates.h | 21 +-
deal.II/include/deal.II/fe/fe_dgp.h | 21 +-
deal.II/include/deal.II/fe/fe_dgp_monomial.h | 21 +-
.../include/deal.II/fe/fe_dgp_nonparametric.h | 21 +-
deal.II/include/deal.II/fe/fe_dgq.h | 21 +-
deal.II/include/deal.II/fe/fe_face.h | 21 +-
deal.II/include/deal.II/fe/fe_nedelec.h | 21 +-
deal.II/include/deal.II/fe/fe_nothing.h | 21 +-
deal.II/include/deal.II/fe/fe_poly.h | 21 +-
.../include/deal.II/fe/fe_poly.templates.h | 21 +-
deal.II/include/deal.II/fe/fe_poly_face.h | 21 +-
.../deal.II/fe/fe_poly_face.templates.h | 21 +-
deal.II/include/deal.II/fe/fe_poly_tensor.h | 21 +-
deal.II/include/deal.II/fe/fe_q.h | 21 +-
deal.II/include/deal.II/fe/fe_q_base.h | 21 +-
deal.II/include/deal.II/fe/fe_q_dg0.h | 21 +-
.../include/deal.II/fe/fe_q_hierarchical.h | 21 +-
deal.II/include/deal.II/fe/fe_q_iso_q1.h | 21 +-
.../include/deal.II/fe/fe_raviart_thomas.h | 21 +-
deal.II/include/deal.II/fe/fe_system.h | 21 +-
deal.II/include/deal.II/fe/fe_tools.h | 27 +-
deal.II/include/deal.II/fe/fe_update_flags.h | 21 +-
deal.II/include/deal.II/fe/fe_values.h | 475 ++++-
.../include/deal.II/fe/fe_values_extractors.h | 92 +-
deal.II/include/deal.II/fe/mapping.h | 21 +-
deal.II/include/deal.II/fe/mapping_c1.h | 21 +-
.../include/deal.II/fe/mapping_cartesian.h | 21 +-
deal.II/include/deal.II/fe/mapping_q.h | 21 +-
deal.II/include/deal.II/fe/mapping_q1.h | 21 +-
.../include/deal.II/fe/mapping_q1_eulerian.h | 21 +-
.../include/deal.II/fe/mapping_q_eulerian.h | 21 +-
deal.II/include/deal.II/grid/cell_id.h | 134 ++
.../include/deal.II/grid/filtered_iterator.h | 187 +-
deal.II/include/deal.II/grid/grid_generator.h | 54 +-
deal.II/include/deal.II/grid/grid_in.h | 21 +-
deal.II/include/deal.II/grid/grid_out.h | 105 +-
.../include/deal.II/grid/grid_refinement.h | 21 +-
.../include/deal.II/grid/grid_reordering.h | 21 +-
.../deal.II/grid/grid_reordering_internal.h | 21 +-
deal.II/include/deal.II/grid/grid_tools.h | 21 +-
deal.II/include/deal.II/grid/intergrid_map.h | 21 +-
deal.II/include/deal.II/grid/magic_numbers.h | 21 +-
.../include/deal.II/grid/persistent_tria.h | 21 +-
deal.II/include/deal.II/grid/tria.h | 76 +-
deal.II/include/deal.II/grid/tria_accessor.h | 143 +-
.../deal.II/grid/tria_accessor.templates.h | 91 +-
deal.II/include/deal.II/grid/tria_boundary.h | 21 +-
.../include/deal.II/grid/tria_boundary_lib.h | 21 +-
deal.II/include/deal.II/grid/tria_faces.h | 21 +-
deal.II/include/deal.II/grid/tria_iterator.h | 134 +-
.../deal.II/grid/tria_iterator.templates.h | 21 +-
.../include/deal.II/grid/tria_iterator_base.h | 21 +-
.../deal.II/grid/tria_iterator_selector.h | 21 +-
deal.II/include/deal.II/grid/tria_levels.h | 21 +-
deal.II/include/deal.II/grid/tria_object.h | 21 +-
deal.II/include/deal.II/grid/tria_objects.h | 21 +-
deal.II/include/deal.II/hp/dof_faces.h | 25 +-
deal.II/include/deal.II/hp/dof_handler.h | 107 +-
deal.II/include/deal.II/hp/dof_levels.h | 21 +-
deal.II/include/deal.II/hp/dof_objects.h | 85 +-
deal.II/include/deal.II/hp/fe_collection.h | 21 +-
deal.II/include/deal.II/hp/fe_values.h | 21 +-
.../include/deal.II/hp/mapping_collection.h | 21 +-
deal.II/include/deal.II/hp/q_collection.h | 21 +-
.../include/deal.II/integrators/advection.h | 21 +-
.../include/deal.II/integrators/divergence.h | 21 +-
.../include/deal.II/integrators/elasticity.h | 109 +-
deal.II/include/deal.II/integrators/l2.h | 21 +-
deal.II/include/deal.II/integrators/laplace.h | 21 +-
.../deal.II/integrators/local_integrators.h | 21 +-
deal.II/include/deal.II/integrators/maxwell.h | 21 +-
deal.II/include/deal.II/integrators/patches.h | 21 +-
deal.II/include/deal.II/lac/arpack_solver.h | 49 +-
deal.II/include/deal.II/lac/block_indices.h | 100 +-
deal.II/include/deal.II/lac/block_list.h | 198 +-
deal.II/include/deal.II/lac/block_matrix.h | 21 +-
.../include/deal.II/lac/block_matrix_array.h | 95 +-
.../include/deal.II/lac/block_matrix_base.h | 372 ++--
.../include/deal.II/lac/block_sparse_matrix.h | 33 +-
.../lac/block_sparse_matrix.templates.h | 55 +-
.../deal.II/lac/block_sparse_matrix_ez.h | 96 +-
.../lac/block_sparse_matrix_ez.templates.h | 25 +-
.../deal.II/lac/block_sparsity_pattern.h | 214 +-
deal.II/include/deal.II/lac/block_vector.h | 41 +-
.../deal.II/lac/block_vector.templates.h | 51 +-
.../include/deal.II/lac/block_vector_base.h | 213 +-
.../include/deal.II/lac/chunk_sparse_matrix.h | 148 +-
.../lac/chunk_sparse_matrix.templates.h | 260 +--
.../deal.II/lac/chunk_sparsity_pattern.h | 247 +--
.../lac/compressed_set_sparsity_pattern.h | 106 +-
.../lac/compressed_simple_sparsity_pattern.h | 148 +-
.../deal.II/lac/compressed_sparsity_pattern.h | 124 +-
.../include/deal.II/lac/constraint_matrix.h | 314 +--
.../deal.II/lac/constraint_matrix.templates.h | 1066 +++++-----
deal.II/include/deal.II/lac/eigen.h | 37 +-
deal.II/include/deal.II/lac/exceptions.h | 21 +-
deal.II/include/deal.II/lac/filtered_matrix.h | 52 +-
deal.II/include/deal.II/lac/full_matrix.h | 251 +--
.../deal.II/lac/full_matrix.templates.h | 382 ++--
.../deal.II/lac/generic_linear_algebra.h | 239 +++
deal.II/include/deal.II/lac/householder.h | 58 +-
deal.II/include/deal.II/lac/identity_matrix.h | 44 +-
.../include/deal.II/lac/iterative_inverse.h | 21 +-
.../include/deal.II/lac/lapack_full_matrix.h | 72 +-
deal.II/include/deal.II/lac/lapack_support.h | 21 +-
.../include/deal.II/lac/lapack_templates.h | 21 +-
deal.II/include/deal.II/lac/matrix_block.h | 231 +-
deal.II/include/deal.II/lac/matrix_iterator.h | 38 +-
deal.II/include/deal.II/lac/matrix_lib.h | 30 +-
.../deal.II/lac/matrix_lib.templates.h | 27 +-
deal.II/include/deal.II/lac/matrix_out.h | 86 +-
.../deal.II/lac/parallel_block_vector.h | 61 +-
deal.II/include/deal.II/lac/parallel_vector.h | 141 +-
.../deal.II/lac/parallel_vector.templates.h | 115 +-
.../deal.II/lac/petsc_block_sparse_matrix.h | 29 +-
.../include/deal.II/lac/petsc_block_vector.h | 79 +-
.../include/deal.II/lac/petsc_full_matrix.h | 30 +-
.../include/deal.II/lac/petsc_matrix_base.h | 298 +--
.../include/deal.II/lac/petsc_matrix_free.h | 26 +-
.../lac/petsc_parallel_block_sparse_matrix.h | 55 +-
.../deal.II/lac/petsc_parallel_block_vector.h | 130 +-
.../lac/petsc_parallel_sparse_matrix.h | 164 +-
.../deal.II/lac/petsc_parallel_vector.h | 123 +-
.../include/deal.II/lac/petsc_precondition.h | 28 +-
deal.II/include/deal.II/lac/petsc_solver.h | 41 +-
.../include/deal.II/lac/petsc_sparse_matrix.h | 82 +-
deal.II/include/deal.II/lac/petsc_vector.h | 36 +-
.../include/deal.II/lac/petsc_vector_base.h | 88 +-
deal.II/include/deal.II/lac/pointer_matrix.h | 21 +-
deal.II/include/deal.II/lac/precondition.h | 93 +-
.../include/deal.II/lac/precondition_block.h | 109 +-
.../lac/precondition_block.templates.h | 160 +-
.../deal.II/lac/precondition_block_base.h | 84 +-
.../deal.II/lac/precondition_selector.h | 21 +-
.../include/deal.II/lac/relaxation_block.h | 30 +-
.../deal.II/lac/relaxation_block.templates.h | 49 +-
deal.II/include/deal.II/lac/schur_matrix.h | 25 +-
deal.II/include/deal.II/lac/shifted_matrix.h | 21 +-
deal.II/include/deal.II/lac/slepc_solver.h | 264 +--
.../lac/slepc_spectral_transformation.h | 26 +-
deal.II/include/deal.II/lac/solver.h | 21 +-
deal.II/include/deal.II/lac/solver_bicgstab.h | 21 +-
deal.II/include/deal.II/lac/solver_cg.h | 32 +-
deal.II/include/deal.II/lac/solver_control.h | 21 +-
deal.II/include/deal.II/lac/solver_gmres.h | 23 +-
deal.II/include/deal.II/lac/solver_minres.h | 21 +-
deal.II/include/deal.II/lac/solver_qmrs.h | 21 +-
.../include/deal.II/lac/solver_relaxation.h | 21 +-
.../include/deal.II/lac/solver_richardson.h | 21 +-
deal.II/include/deal.II/lac/solver_selector.h | 21 +-
.../deal.II/lac/sparse_decomposition.h | 33 +-
.../lac/sparse_decomposition.templates.h | 60 +-
deal.II/include/deal.II/lac/sparse_direct.h | 95 +-
deal.II/include/deal.II/lac/sparse_ilu.h | 27 +-
.../deal.II/lac/sparse_ilu.templates.h | 92 +-
deal.II/include/deal.II/lac/sparse_matrix.h | 369 ++--
.../deal.II/lac/sparse_matrix.templates.h | 402 ++--
.../include/deal.II/lac/sparse_matrix_ez.h | 292 +--
.../deal.II/lac/sparse_matrix_ez.templates.h | 93 +-
deal.II/include/deal.II/lac/sparse_mic.h | 29 +-
.../deal.II/lac/sparse_mic.templates.h | 36 +-
deal.II/include/deal.II/lac/sparse_vanka.h | 39 +-
.../deal.II/lac/sparse_vanka.templates.h | 114 +-
.../include/deal.II/lac/sparsity_pattern.h | 279 +--
deal.II/include/deal.II/lac/sparsity_tools.h | 32 +-
.../include/deal.II/lac/swappable_vector.h | 21 +-
.../deal.II/lac/swappable_vector.templates.h | 21 +-
.../include/deal.II/lac/transpose_matrix.h | 21 +-
.../include/deal.II/lac/tridiagonal_matrix.h | 50 +-
.../lac/trilinos_block_sparse_matrix.h | 35 +-
.../deal.II/lac/trilinos_block_vector.h | 65 +-
.../lac/trilinos_parallel_block_vector.h | 43 +-
.../deal.II/lac/trilinos_precondition.h | 43 +-
deal.II/include/deal.II/lac/trilinos_solver.h | 73 +-
.../deal.II/lac/trilinos_sparse_matrix.h | 419 ++--
.../deal.II/lac/trilinos_sparsity_pattern.h | 310 +--
deal.II/include/deal.II/lac/trilinos_vector.h | 122 +-
.../deal.II/lac/trilinos_vector_base.h | 177 +-
deal.II/include/deal.II/lac/vector.h | 87 +-
.../include/deal.II/lac/vector.templates.h | 143 +-
deal.II/include/deal.II/lac/vector_memory.h | 34 +-
deal.II/include/deal.II/lac/vector_view.h | 49 +-
.../include/deal.II/matrix_free/dof_info.h | 65 +-
.../deal.II/matrix_free/dof_info.templates.h | 203 +-
.../deal.II/matrix_free/fe_evaluation.h | 310 +--
.../deal.II/matrix_free/helper_functions.h | 22 +-
.../deal.II/matrix_free/mapping_info.h | 22 +-
.../matrix_free/mapping_info.templates.h | 22 +-
.../include/deal.II/matrix_free/matrix_free.h | 48 +-
.../matrix_free/matrix_free.templates.h | 49 +-
.../include/deal.II/matrix_free/shape_info.h | 22 +-
.../matrix_free/shape_info.templates.h | 28 +-
.../include/deal.II/meshworker/assembler.h | 197 +-
deal.II/include/deal.II/meshworker/dof_info.h | 73 +-
.../deal.II/meshworker/dof_info.templates.h | 21 +-
.../include/deal.II/meshworker/functional.h | 21 +-
.../deal.II/meshworker/integration_info.h | 21 +-
.../meshworker/integration_info.templates.h | 21 +-
.../deal.II/meshworker/local_integrator.h | 81 +-
.../deal.II/meshworker/local_results.h | 25 +-
deal.II/include/deal.II/meshworker/loop.h | 35 +-
deal.II/include/deal.II/meshworker/output.h | 21 +-
deal.II/include/deal.II/meshworker/simple.h | 169 +-
.../deal.II/meshworker/vector_selector.h | 29 +-
.../meshworker/vector_selector.templates.h | 29 +-
deal.II/include/deal.II/multigrid/mg_base.h | 21 +-
.../deal.II/multigrid/mg_block_smoother.h | 21 +-
deal.II/include/deal.II/multigrid/mg_coarse.h | 25 +-
.../deal.II/multigrid/mg_constrained_dofs.h | 126 +-
.../deal.II/multigrid/mg_dof_accessor.h | 21 +-
.../deal.II/multigrid/mg_dof_handler.h | 21 +-
.../multigrid/mg_dof_iterator_selector.h | 21 +-
deal.II/include/deal.II/multigrid/mg_matrix.h | 21 +-
.../include/deal.II/multigrid/mg_smoother.h | 39 +-
deal.II/include/deal.II/multigrid/mg_tools.h | 35 +-
.../include/deal.II/multigrid/mg_transfer.h | 95 +-
.../deal.II/multigrid/mg_transfer.templates.h | 86 +-
.../deal.II/multigrid/mg_transfer_block.h | 29 +-
.../multigrid/mg_transfer_block.templates.h | 23 +-
.../deal.II/multigrid/mg_transfer_component.h | 35 +-
.../mg_transfer_component.templates.h | 32 +-
deal.II/include/deal.II/multigrid/multigrid.h | 23 +-
.../deal.II/multigrid/multigrid.templates.h | 31 +-
.../numerics/data_component_interpretation.h | 21 +-
deal.II/include/deal.II/numerics/data_out.h | 21 +-
.../include/deal.II/numerics/data_out_faces.h | 21 +-
.../deal.II/numerics/data_out_rotation.h | 21 +-
.../include/deal.II/numerics/data_out_stack.h | 21 +-
.../deal.II/numerics/data_postprocessor.h | 21 +-
.../numerics/derivative_approximation.h | 22 +-
.../deal.II/numerics/dof_output_operator.h | 21 +-
.../numerics/dof_output_operator.templates.h | 21 +-
.../deal.II/numerics/dof_print_solver_step.h | 21 +-
.../deal.II/numerics/error_estimator.h | 21 +-
.../deal.II/numerics/fe_field_function.h | 21 +-
.../numerics/fe_field_function.templates.h | 53 +-
deal.II/include/deal.II/numerics/histogram.h | 21 +-
.../include/deal.II/numerics/matrix_tools.h | 61 +-
.../deal.II/numerics/point_value_history.h | 25 +-
.../deal.II/numerics/solution_transfer.h | 29 +-
.../include/deal.II/numerics/time_dependent.h | 21 +-
.../include/deal.II/numerics/vector_tools.h | 104 +-
.../deal.II/numerics/vector_tools.templates.h | 890 ++++----
deal.II/source/CMakeLists.txt | 24 +-
deal.II/source/algorithms/CMakeLists.txt | 16 +-
deal.II/source/algorithms/operator.cc | 22 +-
deal.II/source/algorithms/operator.inst.in | 22 +-
deal.II/source/algorithms/timestep_control.cc | 21 +-
deal.II/source/base/CMakeLists.txt | 18 +-
.../source/base/auto_derivative_function.cc | 22 +-
deal.II/source/base/conditional_ostream.cc | 22 +-
deal.II/source/base/config.cc | 22 +-
deal.II/source/base/convergence_table.cc | 34 +-
deal.II/source/base/data_out_base.cc | 994 +++++----
deal.II/source/base/dummy.cc | 16 +
deal.II/source/base/event.cc | 22 +-
deal.II/source/base/exceptions.cc | 22 +-
deal.II/source/base/flow_function.cc | 22 +-
deal.II/source/base/function.cc | 24 +-
deal.II/source/base/function_derivative.cc | 22 +-
deal.II/source/base/function_lib.cc | 21 +-
deal.II/source/base/function_lib_cutoff.cc | 22 +-
deal.II/source/base/function_parser.cc | 22 +-
deal.II/source/base/function_time.cc | 22 +-
deal.II/source/base/geometry_info.cc | 22 +-
deal.II/source/base/index_set.cc | 61 +-
deal.II/source/base/job_identifier.cc | 22 +-
deal.II/source/base/logstream.cc | 48 +-
deal.II/source/base/memory_consumption.cc | 22 +-
deal.II/source/base/mpi.cc | 38 +-
deal.II/source/base/multithread_info.cc | 28 +-
deal.II/source/base/parallel.cc | 22 +-
deal.II/source/base/parameter_handler.cc | 44 +-
deal.II/source/base/parsed_function.cc | 22 +-
deal.II/source/base/partitioner.cc | 44 +-
deal.II/source/base/path_search.cc | 22 +-
deal.II/source/base/polynomial.cc | 22 +-
deal.II/source/base/polynomial_space.cc | 22 +-
deal.II/source/base/polynomials_abf.cc | 22 +-
deal.II/source/base/polynomials_adini.cc | 22 +-
deal.II/source/base/polynomials_bdm.cc | 22 +-
deal.II/source/base/polynomials_nedelec.cc | 16 +
deal.II/source/base/polynomials_p.cc | 22 +-
deal.II/source/base/polynomials_piecewise.cc | 24 +-
.../source/base/polynomials_raviart_thomas.cc | 22 +-
deal.II/source/base/quadrature.cc | 22 +-
deal.II/source/base/quadrature_lib.cc | 22 +-
deal.II/source/base/quadrature_selector.cc | 22 +-
deal.II/source/base/subscriptor.cc | 40 +-
deal.II/source/base/symmetric_tensor.cc | 22 +-
deal.II/source/base/table_handler.cc | 22 +-
deal.II/source/base/tensor_function.cc | 134 +-
.../source/base/tensor_product_polynomials.cc | 24 +-
.../base/tensor_product_polynomials_const.cc | 22 +-
deal.II/source/base/thread_management.cc | 22 +-
deal.II/source/base/timer.cc | 24 +-
deal.II/source/base/utilities.cc | 98 +-
deal.II/source/distributed/CMakeLists.txt | 18 +-
deal.II/source/distributed/grid_refinement.cc | 22 +-
.../distributed/grid_refinement.inst.in | 22 +-
.../source/distributed/solution_transfer.cc | 22 +-
.../distributed/solution_transfer.inst.in | 22 +-
deal.II/source/distributed/tria.cc | 184 +-
deal.II/source/distributed/tria.inst.in | 22 +-
deal.II/source/dofs/CMakeLists.txt | 18 +-
deal.II/source/dofs/block_info.cc | 28 +-
deal.II/source/dofs/block_info.inst.in | 22 +-
deal.II/source/dofs/dof_accessor.cc | 24 +-
deal.II/source/dofs/dof_accessor.inst.in | 22 +-
deal.II/source/dofs/dof_faces.cc | 22 +-
deal.II/source/dofs/dof_handler.cc | 178 +-
deal.II/source/dofs/dof_handler.inst.in | 86 +-
deal.II/source/dofs/dof_handler_policy.cc | 232 ++-
.../source/dofs/dof_handler_policy.inst.in | 22 +-
deal.II/source/dofs/dof_objects.cc | 24 +-
deal.II/source/dofs/dof_objects.inst.in | 34 +-
deal.II/source/dofs/dof_renumbering.cc | 436 ++--
deal.II/source/dofs/dof_renumbering.inst.in | 74 +-
deal.II/source/dofs/dof_tools.cc | 379 ++--
deal.II/source/dofs/dof_tools.inst.in | 163 +-
deal.II/source/dofs/number_cache.cc | 22 +-
deal.II/source/fe/CMakeLists.txt | 18 +-
deal.II/source/fe/block_mask.cc | 22 +-
deal.II/source/fe/component_mask.cc | 22 +-
deal.II/source/fe/fe.cc | 22 +-
deal.II/source/fe/fe.inst.in | 22 +-
deal.II/source/fe/fe_abf.cc | 24 +-
deal.II/source/fe/fe_abf.inst.in | 22 +-
deal.II/source/fe/fe_bdm.cc | 22 +-
deal.II/source/fe/fe_bdm.inst.in | 22 +-
deal.II/source/fe/fe_data.cc | 22 +-
deal.II/source/fe/fe_dg_vector.cc | 21 +-
deal.II/source/fe/fe_dg_vector.inst.in | 22 +-
deal.II/source/fe/fe_dgp.cc | 22 +-
deal.II/source/fe/fe_dgp.inst.in | 22 +-
deal.II/source/fe/fe_dgp_monomial.cc | 22 +-
deal.II/source/fe/fe_dgp_monomial.inst.in | 22 +-
deal.II/source/fe/fe_dgp_nonparametric.cc | 22 +-
.../source/fe/fe_dgp_nonparametric.inst.in | 22 +-
deal.II/source/fe/fe_dgq.cc | 22 +-
deal.II/source/fe/fe_dgq.inst.in | 22 +-
deal.II/source/fe/fe_face.cc | 22 +-
deal.II/source/fe/fe_face.inst.in | 22 +-
deal.II/source/fe/fe_nedelec.cc | 30 +-
deal.II/source/fe/fe_nedelec.inst.in | 22 +-
deal.II/source/fe/fe_nothing.cc | 22 +-
deal.II/source/fe/fe_nothing.inst.in | 22 +-
deal.II/source/fe/fe_poly.cc | 22 +-
deal.II/source/fe/fe_poly.inst.in | 22 +-
deal.II/source/fe/fe_poly_tensor.cc | 110 +-
deal.II/source/fe/fe_poly_tensor.inst.in | 22 +-
deal.II/source/fe/fe_q.cc | 22 +-
deal.II/source/fe/fe_q.inst.in | 22 +-
deal.II/source/fe/fe_q_base.cc | 37 +-
deal.II/source/fe/fe_q_base.inst.in | 22 +-
deal.II/source/fe/fe_q_dg0.cc | 24 +-
deal.II/source/fe/fe_q_dg0.inst.in | 22 +-
deal.II/source/fe/fe_q_hierarchical.cc | 22 +-
deal.II/source/fe/fe_q_hierarchical.inst.in | 22 +-
deal.II/source/fe/fe_q_iso_q1.cc | 24 +-
deal.II/source/fe/fe_q_iso_q1.inst.in | 22 +-
deal.II/source/fe/fe_raviart_thomas.cc | 22 +-
deal.II/source/fe/fe_raviart_thomas.inst.in | 22 +-
deal.II/source/fe/fe_raviart_thomas_nodal.cc | 22 +-
.../source/fe/fe_raviart_thomas_nodal.inst.in | 22 +-
deal.II/source/fe/fe_system.cc | 74 +-
deal.II/source/fe/fe_system.inst.in | 22 +-
deal.II/source/fe/fe_tools.cc | 46 +-
deal.II/source/fe/fe_tools.inst.in | 24 +-
deal.II/source/fe/fe_values.cc | 453 +++-
deal.II/source/fe/fe_values.decl.1.inst.in | 22 +-
deal.II/source/fe/fe_values.decl.2.inst.in | 22 +-
deal.II/source/fe/fe_values.impl.1.inst.in | 22 +-
deal.II/source/fe/fe_values.impl.2.inst.in | 22 +-
deal.II/source/fe/fe_values.inst.in | 234 ++-
deal.II/source/fe/fe_values_inst2.cc | 22 +-
deal.II/source/fe/mapping.cc | 22 +-
deal.II/source/fe/mapping.inst.in | 22 +-
deal.II/source/fe/mapping_c1.cc | 22 +-
deal.II/source/fe/mapping_c1.inst.in | 22 +-
deal.II/source/fe/mapping_cartesian.cc | 22 +-
deal.II/source/fe/mapping_cartesian.inst.in | 22 +-
deal.II/source/fe/mapping_q.cc | 22 +-
deal.II/source/fe/mapping_q.inst.in | 22 +-
deal.II/source/fe/mapping_q1.cc | 24 +-
deal.II/source/fe/mapping_q1.inst.in | 22 +-
deal.II/source/fe/mapping_q1_eulerian.cc | 22 +-
deal.II/source/fe/mapping_q1_eulerian.inst.in | 22 +-
deal.II/source/fe/mapping_q_eulerian.cc | 26 +-
deal.II/source/fe/mapping_q_eulerian.inst.in | 22 +-
deal.II/source/grid/CMakeLists.txt | 18 +-
deal.II/source/grid/grid_generator.cc | 399 ++--
deal.II/source/grid/grid_generator.inst.in | 28 +-
deal.II/source/grid/grid_in.cc | 22 +-
deal.II/source/grid/grid_in.inst.in | 22 +-
deal.II/source/grid/grid_out.cc | 127 +-
deal.II/source/grid/grid_out.inst.in | 22 +-
deal.II/source/grid/grid_refinement.cc | 22 +-
deal.II/source/grid/grid_refinement.inst.in | 22 +-
deal.II/source/grid/grid_reordering.cc | 22 +-
deal.II/source/grid/grid_tools.cc | 25 +-
deal.II/source/grid/grid_tools.inst.in | 24 +-
deal.II/source/grid/intergrid_map.cc | 22 +-
deal.II/source/grid/intergrid_map.inst.in | 22 +-
deal.II/source/grid/persistent_tria.cc | 22 +-
deal.II/source/grid/tria.cc | 137 +-
deal.II/source/grid/tria.inst.in | 22 +-
deal.II/source/grid/tria_accessor.cc | 28 +-
deal.II/source/grid/tria_accessor.inst.in | 22 +-
deal.II/source/grid/tria_boundary.cc | 22 +-
deal.II/source/grid/tria_boundary.inst.in | 22 +-
deal.II/source/grid/tria_boundary_lib.cc | 26 +-
deal.II/source/grid/tria_boundary_lib.inst.in | 22 +-
deal.II/source/grid/tria_faces.cc | 22 +-
deal.II/source/grid/tria_levels.cc | 22 +-
deal.II/source/grid/tria_objects.cc | 22 +-
deal.II/source/grid/tria_objects.inst.in | 22 +-
deal.II/source/hp/CMakeLists.txt | 18 +-
deal.II/source/hp/dof_faces.cc | 22 +-
deal.II/source/hp/dof_handler.cc | 276 +--
deal.II/source/hp/dof_handler.inst.in | 46 +-
deal.II/source/hp/dof_levels.cc | 22 +-
deal.II/source/hp/dof_objects.cc | 22 +-
deal.II/source/hp/fe_collection.cc | 22 +-
deal.II/source/hp/fe_collection.inst.in | 22 +-
deal.II/source/hp/fe_values.cc | 22 +-
deal.II/source/hp/fe_values.inst.in | 22 +-
deal.II/source/hp/mapping_collection.cc | 22 +-
deal.II/source/hp/mapping_collection.inst.in | 22 +-
deal.II/source/integrators/CMakeLists.txt | 16 +-
deal.II/source/lac/CMakeLists.txt | 18 +-
deal.II/source/lac/block_matrix_array.cc | 29 +-
deal.II/source/lac/block_sparse_matrix.cc | 22 +-
.../source/lac/block_sparse_matrix.inst.in | 16 +
deal.II/source/lac/block_sparse_matrix_ez.cc | 22 +-
deal.II/source/lac/block_sparsity_pattern.cc | 268 +--
deal.II/source/lac/block_vector.cc | 22 +-
deal.II/source/lac/block_vector.inst.in | 22 +-
deal.II/source/lac/chunk_sparse_matrix.cc | 22 +-
.../source/lac/chunk_sparse_matrix.inst.in | 38 +-
deal.II/source/lac/chunk_sparsity_pattern.cc | 287 +--
.../lac/compressed_set_sparsity_pattern.cc | 72 +-
.../lac/compressed_simple_sparsity_pattern.cc | 129 +-
.../source/lac/compressed_sparsity_pattern.cc | 88 +-
deal.II/source/lac/constraint_matrix.cc | 470 +++--
deal.II/source/lac/constraint_matrix.inst.in | 22 +-
deal.II/source/lac/full_matrix.cc | 22 +-
deal.II/source/lac/full_matrix.inst.in | 55 +-
deal.II/source/lac/lapack_full_matrix.cc | 92 +-
deal.II/source/lac/lapack_full_matrix.inst.in | 22 +-
deal.II/source/lac/matrix_lib.cc | 24 +-
deal.II/source/lac/matrix_out.cc | 28 +-
deal.II/source/lac/parallel_vector.cc | 22 +-
deal.II/source/lac/parallel_vector.inst.in | 22 +-
.../source/lac/petsc_block_sparse_matrix.cc | 30 +-
deal.II/source/lac/petsc_full_matrix.cc | 26 +-
deal.II/source/lac/petsc_matrix_base.cc | 97 +-
deal.II/source/lac/petsc_matrix_free.cc | 22 +-
.../lac/petsc_parallel_block_sparse_matrix.cc | 77 +-
.../source/lac/petsc_parallel_block_vector.cc | 39 +-
.../lac/petsc_parallel_sparse_matrix.cc | 409 +++-
deal.II/source/lac/petsc_parallel_vector.cc | 108 +-
deal.II/source/lac/petsc_precondition.cc | 22 +-
deal.II/source/lac/petsc_solver.cc | 30 +-
deal.II/source/lac/petsc_sparse_matrix.cc | 81 +-
deal.II/source/lac/petsc_vector.cc | 30 +-
deal.II/source/lac/petsc_vector_base.cc | 97 +-
deal.II/source/lac/precondition_block.cc | 22 +-
deal.II/source/lac/precondition_block.inst.in | 21 +-
deal.II/source/lac/precondition_block_ez.cc | 22 +-
deal.II/source/lac/relaxation_block.cc | 22 +-
deal.II/source/lac/relaxation_block.inst.in | 21 +-
deal.II/source/lac/slepc_solver.cc | 65 +-
.../lac/slepc_spectral_transformation.cc | 23 +-
deal.II/source/lac/solver.cc | 22 +-
deal.II/source/lac/solver.inst.in | 22 +-
deal.II/source/lac/solver_control.cc | 22 +-
deal.II/source/lac/sparse_decomposition.cc | 22 +-
deal.II/source/lac/sparse_direct.cc | 136 +-
deal.II/source/lac/sparse_ilu.cc | 21 +-
deal.II/source/lac/sparse_matrix.cc | 22 +-
deal.II/source/lac/sparse_matrix.inst.in | 50 +-
deal.II/source/lac/sparse_matrix_ez.cc | 22 +-
deal.II/source/lac/sparse_matrix_ez.inst.in | 22 +-
deal.II/source/lac/sparse_mic.cc | 22 +-
deal.II/source/lac/sparse_vanka.cc | 22 +-
deal.II/source/lac/sparsity_pattern.cc | 260 +--
deal.II/source/lac/sparsity_tools.cc | 138 +-
deal.II/source/lac/swappable_vector.cc | 22 +-
deal.II/source/lac/tridiagonal_matrix.cc | 44 +-
.../lac/trilinos_block_sparse_matrix.cc | 69 +-
deal.II/source/lac/trilinos_block_vector.cc | 138 +-
deal.II/source/lac/trilinos_precondition.cc | 72 +-
deal.II/source/lac/trilinos_solver.cc | 179 +-
deal.II/source/lac/trilinos_sparse_matrix.cc | 354 ++--
.../source/lac/trilinos_sparse_matrix.inst.in | 22 +-
.../source/lac/trilinos_sparsity_pattern.cc | 345 +--
deal.II/source/lac/trilinos_vector.cc | 157 +-
deal.II/source/lac/trilinos_vector_base.cc | 73 +-
.../source/lac/trilinos_vector_base.inst.in | 22 +-
deal.II/source/lac/vector.cc | 22 +-
deal.II/source/lac/vector.inst.in | 22 +-
deal.II/source/lac/vector_memory.cc | 29 +-
deal.II/source/lac/vector_memory.inst.in | 22 +-
deal.II/source/lac/vector_view.cc | 22 +-
deal.II/source/lac/vector_view.inst.in | 22 +-
deal.II/source/matrix_free/CMakeLists.txt | 16 +-
deal.II/source/matrix_free/matrix_free.cc | 22 +-
.../source/matrix_free/matrix_free.inst.in | 22 +-
deal.II/source/meshworker/CMakeLists.txt | 16 +-
deal.II/source/meshworker/mesh_worker.cc | 57 +-
deal.II/source/meshworker/mesh_worker_info.cc | 21 +-
.../meshworker/mesh_worker_info.inst.in | 21 +-
.../meshworker/mesh_worker_vector_selector.cc | 22 +-
.../mesh_worker_vector_selector.inst.in | 21 +-
deal.II/source/multigrid/CMakeLists.txt | 18 +-
deal.II/source/multigrid/mg_base.cc | 22 +-
deal.II/source/multigrid/mg_base.inst.in | 21 +-
deal.II/source/multigrid/mg_dof_handler.cc | 22 +-
.../source/multigrid/mg_dof_handler.inst.in | 22 +-
deal.II/source/multigrid/mg_tools.cc | 400 ++--
deal.II/source/multigrid/mg_tools.inst.in | 37 +-
deal.II/source/multigrid/mg_transfer_block.cc | 102 +-
.../multigrid/mg_transfer_block.inst.in | 22 +-
.../source/multigrid/mg_transfer_component.cc | 90 +-
.../multigrid/mg_transfer_component.inst.in | 26 +-
.../source/multigrid/mg_transfer_prebuilt.cc | 238 ++-
.../multigrid/mg_transfer_prebuilt.inst.in | 21 +-
deal.II/source/multigrid/multigrid.cc | 22 +-
deal.II/source/multigrid/multigrid.inst.in | 21 +-
deal.II/source/numerics/CMakeLists.txt | 18 +-
deal.II/source/numerics/data_out.cc | 22 +-
deal.II/source/numerics/data_out.inst.in | 22 +-
deal.II/source/numerics/data_out_faces.cc | 22 +-
.../source/numerics/data_out_faces.inst.in | 22 +-
deal.II/source/numerics/data_out_rotation.cc | 22 +-
.../source/numerics/data_out_rotation.inst.in | 22 +-
deal.II/source/numerics/data_out_stack.cc | 22 +-
.../source/numerics/data_out_stack.inst.in | 22 +-
deal.II/source/numerics/data_postprocessor.cc | 22 +-
.../numerics/data_postprocessor.inst.in | 22 +-
.../numerics/derivative_approximation.cc | 22 +-
.../numerics/derivative_approximation.inst.in | 22 +-
.../source/numerics/dof_output_operator.cc | 22 +-
.../numerics/dof_output_operator.inst.in | 22 +-
deal.II/source/numerics/error_estimator.cc | 26 +-
.../source/numerics/error_estimator.inst.in | 22 +-
deal.II/source/numerics/fe_field_function.cc | 22 +-
.../source/numerics/fe_field_function.inst.in | 21 +-
deal.II/source/numerics/histogram.cc | 22 +-
deal.II/source/numerics/matrix_tools.cc | 188 +-
deal.II/source/numerics/matrix_tools.inst.in | 160 +-
.../source/numerics/point_value_history.cc | 32 +-
.../numerics/point_value_history.inst.in | 22 +-
deal.II/source/numerics/solution_transfer.cc | 30 +-
.../source/numerics/solution_transfer.inst.in | 22 +-
.../numerics/solution_transfer_inst2.cc | 22 +-
deal.II/source/numerics/time_dependent.cc | 26 +-
.../source/numerics/time_dependent.inst.in | 22 +-
deal.II/source/numerics/vector_tools.cc | 22 +-
deal.II/source/numerics/vector_tools.inst.in | 100 +-
917 files changed, 30439 insertions(+), 21486 deletions(-)
delete mode 100644 deal.II/cmake/TODO.CMAKE
rename deal.II/cmake/configure/{configure_metis.cmake => configure_2_metis.cmake} (51%)
rename deal.II/cmake/configure/{configure_petsc.cmake => configure_2_petsc.cmake} (66%)
rename deal.II/cmake/configure/{configure_trilinos.cmake => configure_2_trilinos.cmake} (74%)
create mode 100644 deal.II/cmake/macros/macro_enable_language_optional.cmake
create mode 100644 deal.II/cmake/macros/macro_switch_library_preference.cmake
delete mode 100644 deal.II/cmake/setup_custom_targets.cmake
create mode 100644 deal.II/contrib/test_affinity/CMakeLists.txt
create mode 100644 deal.II/contrib/test_affinity/test_affinity.cc
create mode 100644 deal.II/doc/doxygen/headers/global_dof_index.h
create mode 100644 deal.II/doc/license/adjust.pl
create mode 100644 deal.II/doc/license/header-template.cmake
create mode 100755 deal.II/doc/license/replace.sh
create mode 100644 deal.II/doc/news/7.3.0-vs-8.0.0.h
create mode 100644 deal.II/include/deal.II/grid/cell_id.h
create mode 100644 deal.II/include/deal.II/lac/generic_linear_algebra.h
diff --git a/deal.II/CMakeLists.txt b/deal.II/CMakeLists.txt
index b665897d70..04dba539c6 100644
--- a/deal.II/CMakeLists.txt
+++ b/deal.II/CMakeLists.txt
@@ -1,30 +1,32 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
-## ##
-# The cmake build system for the deal.II project #
-# #
-# See doc/readme.html and doc/development/cmake.html for further #
-# details on how to use the cmake build system of deal.II. #
-## ##
+## ##
+# The cmake build system for the deal.II project #
+# #
+# See doc/readme.html and doc/development/cmake.html for further #
+# details on how to use the cmake build system of deal.II. #
+## ##
-###########################################################################
-# #
-# Configuration: #
-# #
-###########################################################################
+########################################################################
+# #
+# Configuration: #
+# #
+########################################################################
#
# General configuration for cmake:
@@ -66,7 +68,10 @@ INCLUDE(setup_cached_variables)
#
# Now, set the project and set up the rest:
#
-PROJECT(deal.II)
+PROJECT(deal.II CXX)
+ENABLE_LANGUAGE_OPTIONAL(C)
+ENABLE_LANGUAGE_OPTIONAL(Fortran)
+
INCLUDE(setup_deal_ii)
INCLUDE(setup_compiler_flags)
@@ -105,11 +110,11 @@ ENDFOREACH()
INCLUDE(setup_finalize)
-###########################################################################
-# #
-# Compilation and installation: #
-# #
-###########################################################################
+########################################################################
+# #
+# Compilation and installation: #
+# #
+########################################################################
MESSAGE(STATUS "")
MESSAGE(STATUS "Configuring done. Proceed to target definitions now.")
@@ -130,11 +135,6 @@ ADD_SUBDIRECTORY(cmake/config) # has to be included after source
ADD_SUBDIRECTORY(contrib) # has to be included after source
ADD_SUBDIRECTORY(examples)
-#
-# Define some custom targets for convenience
-#
-INCLUDE(setup_custom_targets)
-
#
# And finally, print the configuration:
#
diff --git a/deal.II/LICENSE b/deal.II/LICENSE
index 2d1d7b4a83..8b89d07dc6 100644
--- a/deal.II/LICENSE
+++ b/deal.II/LICENSE
@@ -477,47 +477,3 @@ SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Libraries
-
- If you develop a new library, and you want it to be of the greatest
-possible use to the public, we recommend making it free software that
-everyone can redistribute and change. You can do so by permitting
-redistribution under these terms (or, alternatively, under the terms of the
-ordinary General Public License).
-
- To apply these terms, attach the following notices to the library. It is
-safest to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least the
-"copyright" line and a pointer to where the full notice is found.
-
-
- Copyright (C)
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the library, if
-necessary. Here is a sample; alter the names:
-
- Yoyodyne, Inc., hereby disclaims all copyright interest in the
- library `Frob' (a library for tweaking knobs) written by James Random Hacker.
-
- , 1 April 1990
- Ty Coon, President of Vice
-
-That's all there is to it!
diff --git a/deal.II/VERSION b/deal.II/VERSION
index 941ceb5b07..091a617214 100644
--- a/deal.II/VERSION
+++ b/deal.II/VERSION
@@ -1 +1 @@
-8.0.pre
+8.1.pre
diff --git a/deal.II/bundled/CMakeLists.txt b/deal.II/bundled/CMakeLists.txt
index 44418f02d4..1e0d8a1e9b 100644
--- a/deal.II/bundled/CMakeLists.txt
+++ b/deal.II/bundled/CMakeLists.txt
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Export information about bundled library locations and do the actual
diff --git a/deal.II/bundled/boost-1.49.0/include/boost/thread/xtime.hpp b/deal.II/bundled/boost-1.49.0/include/boost/thread/xtime.hpp
index 7cc6272d6a..f908298647 100644
--- a/deal.II/bundled/boost-1.49.0/include/boost/thread/xtime.hpp
+++ b/deal.II/bundled/boost-1.49.0/include/boost/thread/xtime.hpp
@@ -20,7 +20,7 @@ namespace boost {
enum xtime_clock_types
{
- TIME_UTC=1
+ TIME_UTC_=1
// TIME_TAI,
// TIME_MONOTONIC,
// TIME_PROCESS,
@@ -68,7 +68,7 @@ inline xtime get_xtime(boost::system_time const& abs_time)
inline int xtime_get(struct xtime* xtp, int clock_type)
{
- if (clock_type == TIME_UTC)
+ if (clock_type == TIME_UTC_)
{
*xtp=get_xtime(get_system_time());
return clock_type;
diff --git a/deal.II/bundled/boost-1.49.0/libs/serialization/src/CMakeLists.txt b/deal.II/bundled/boost-1.49.0/libs/serialization/src/CMakeLists.txt
index 3daeece5c4..b06ba8bd6e 100644
--- a/deal.II/bundled/boost-1.49.0/libs/serialization/src/CMakeLists.txt
+++ b/deal.II/bundled/boost-1.49.0/libs/serialization/src/CMakeLists.txt
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
SET(src_boost_serialization
basic_archive.cpp
diff --git a/deal.II/bundled/boost-1.49.0/libs/thread/example/starvephil.cpp b/deal.II/bundled/boost-1.49.0/libs/thread/example/starvephil.cpp
index 0ef2e0d32d..b37c503498 100644
--- a/deal.II/bundled/boost-1.49.0/libs/thread/example/starvephil.cpp
+++ b/deal.II/bundled/boost-1.49.0/libs/thread/example/starvephil.cpp
@@ -50,7 +50,7 @@ public:
<< "very hot ..." << std::endl;
}
boost::xtime xt;
- boost::xtime_get(&xt, boost::TIME_UTC);
+ boost::xtime_get(&xt, boost::TIME_UTC_);
xt.sec += 3;
boost::thread::sleep(xt);
m_chickens += value;
@@ -85,7 +85,7 @@ void chef()
std::cout << "(" << clock() << ") Chef: cooking ..." << std::endl;
}
boost::xtime xt;
- boost::xtime_get(&xt, boost::TIME_UTC);
+ boost::xtime_get(&xt, boost::TIME_UTC_);
xt.sec += 2;
boost::thread::sleep(xt);
{
@@ -111,7 +111,7 @@ struct phil
if (m_id > 0)
{
boost::xtime xt;
- boost::xtime_get(&xt, boost::TIME_UTC);
+ boost::xtime_get(&xt, boost::TIME_UTC_);
xt.sec += 3;
boost::thread::sleep(xt);
}
diff --git a/deal.II/bundled/boost-1.49.0/libs/thread/example/tennis.cpp b/deal.II/bundled/boost-1.49.0/libs/thread/example/tennis.cpp
index 798f55e5d8..621d0891ce 100644
--- a/deal.II/bundled/boost-1.49.0/libs/thread/example/tennis.cpp
+++ b/deal.II/bundled/boost-1.49.0/libs/thread/example/tennis.cpp
@@ -104,7 +104,7 @@ int main(int argc, char* argv[])
boost::thread thrdb(thread_adapter(&player, (void*)PLAYER_B));
boost::xtime xt;
- boost::xtime_get(&xt, boost::TIME_UTC);
+ boost::xtime_get(&xt, boost::TIME_UTC_);
xt.sec += 1;
boost::thread::sleep(xt);
{
diff --git a/deal.II/bundled/boost-1.49.0/libs/thread/example/thread.cpp b/deal.II/bundled/boost-1.49.0/libs/thread/example/thread.cpp
index c21a3b5ea8..09aa05a0cd 100644
--- a/deal.II/bundled/boost-1.49.0/libs/thread/example/thread.cpp
+++ b/deal.II/bundled/boost-1.49.0/libs/thread/example/thread.cpp
@@ -14,7 +14,7 @@ struct thread_alarm
void operator()()
{
boost::xtime xt;
- boost::xtime_get(&xt, boost::TIME_UTC);
+ boost::xtime_get(&xt, boost::TIME_UTC_);
xt.sec += m_secs;
boost::thread::sleep(xt);
diff --git a/deal.II/bundled/boost-1.49.0/libs/thread/example/xtime.cpp b/deal.II/bundled/boost-1.49.0/libs/thread/example/xtime.cpp
index a9b1933908..0c4fb7150d 100644
--- a/deal.II/bundled/boost-1.49.0/libs/thread/example/xtime.cpp
+++ b/deal.II/bundled/boost-1.49.0/libs/thread/example/xtime.cpp
@@ -10,7 +10,7 @@
int main(int argc, char* argv[])
{
boost::xtime xt;
- boost::xtime_get(&xt, boost::TIME_UTC);
+ boost::xtime_get(&xt, boost::TIME_UTC_);
xt.sec += 1;
boost::thread::sleep(xt); // Sleep for 1 second
}
diff --git a/deal.II/bundled/boost-1.49.0/libs/thread/src/CMakeLists.txt b/deal.II/bundled/boost-1.49.0/libs/thread/src/CMakeLists.txt
index 7a87dfb931..2e3eb8839f 100644
--- a/deal.II/bundled/boost-1.49.0/libs/thread/src/CMakeLists.txt
+++ b/deal.II/bundled/boost-1.49.0/libs/thread/src/CMakeLists.txt
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
IF(DEAL_II_USE_MT_POSIX)
SET(src_boost_thread
diff --git a/deal.II/bundled/boost-1.49.0/libs/thread/src/pthread/thread.cpp b/deal.II/bundled/boost-1.49.0/libs/thread/src/pthread/thread.cpp
index 07b8458bce..847662b90f 100644
--- a/deal.II/bundled/boost-1.49.0/libs/thread/src/pthread/thread.cpp
+++ b/deal.II/bundled/boost-1.49.0/libs/thread/src/pthread/thread.cpp
@@ -354,7 +354,7 @@ namespace boost
cond.timed_wait(lock, xt);
# endif
xtime cur;
- xtime_get(&cur, TIME_UTC);
+ xtime_get(&cur, TIME_UTC_);
if (xtime_cmp(xt, cur) <= 0)
return;
}
@@ -369,7 +369,7 @@ namespace boost
BOOST_VERIFY(!pthread_yield());
# else
xtime xt;
- xtime_get(&xt, TIME_UTC);
+ xtime_get(&xt, TIME_UTC_);
sleep(xt);
# endif
}
diff --git a/deal.II/bundled/boost-1.49.0/libs/thread/src/pthread/timeconv.inl b/deal.II/bundled/boost-1.49.0/libs/thread/src/pthread/timeconv.inl
index 1c0a0cdca8..cab7c55a78 100644
--- a/deal.II/bundled/boost-1.49.0/libs/thread/src/pthread/timeconv.inl
+++ b/deal.II/bundled/boost-1.49.0/libs/thread/src/pthread/timeconv.inl
@@ -20,8 +20,8 @@ const int NANOSECONDS_PER_MICROSECOND = 1000;
inline void to_time(int milliseconds, boost::xtime& xt)
{
int res = 0;
- res = boost::xtime_get(&xt, boost::TIME_UTC);
- BOOST_ASSERT(res == boost::TIME_UTC); (void)res;
+ res = boost::xtime_get(&xt, boost::TIME_UTC_);
+ BOOST_ASSERT(res == boost::TIME_UTC_); (void)res;
xt.sec += (milliseconds / MILLISECONDS_PER_SECOND);
xt.nsec += ((milliseconds % MILLISECONDS_PER_SECOND) *
@@ -56,8 +56,8 @@ inline void to_timespec_duration(const boost::xtime& xt, timespec& ts)
{
boost::xtime cur;
int res = 0;
- res = boost::xtime_get(&cur, boost::TIME_UTC);
- BOOST_ASSERT(res == boost::TIME_UTC); (void)res;
+ res = boost::xtime_get(&cur, boost::TIME_UTC_);
+ BOOST_ASSERT(res == boost::TIME_UTC_); (void)res;
if (boost::xtime_cmp(xt, cur) <= 0)
{
@@ -87,8 +87,8 @@ inline void to_duration(boost::xtime xt, int& milliseconds)
{
boost::xtime cur;
int res = 0;
- res = boost::xtime_get(&cur, boost::TIME_UTC);
- BOOST_ASSERT(res == boost::TIME_UTC); (void)res;
+ res = boost::xtime_get(&cur, boost::TIME_UTC_);
+ BOOST_ASSERT(res == boost::TIME_UTC_); (void)res;
if (boost::xtime_cmp(xt, cur) <= 0)
milliseconds = 0;
@@ -109,8 +109,8 @@ inline void to_microduration(boost::xtime xt, int& microseconds)
{
boost::xtime cur;
int res = 0;
- res = boost::xtime_get(&cur, boost::TIME_UTC);
- BOOST_ASSERT(res == boost::TIME_UTC); (void)res;
+ res = boost::xtime_get(&cur, boost::TIME_UTC_);
+ BOOST_ASSERT(res == boost::TIME_UTC_); (void)res;
if (boost::xtime_cmp(xt, cur) <= 0)
microseconds = 0;
diff --git a/deal.II/bundled/boost-1.49.0/libs/thread/src/win32/timeconv.inl b/deal.II/bundled/boost-1.49.0/libs/thread/src/win32/timeconv.inl
index 5ec3b1798a..c6467832a7 100644
--- a/deal.II/bundled/boost-1.49.0/libs/thread/src/win32/timeconv.inl
+++ b/deal.II/bundled/boost-1.49.0/libs/thread/src/win32/timeconv.inl
@@ -17,8 +17,8 @@ const int NANOSECONDS_PER_MICROSECOND = 1000;
inline void to_time(int milliseconds, boost::xtime& xt)
{
int res = 0;
- res = boost::xtime_get(&xt, boost::TIME_UTC);
- assert(res == boost::TIME_UTC);
+ res = boost::xtime_get(&xt, boost::TIME_UTC_);
+ assert(res == boost::TIME_UTC_);
xt.sec += (milliseconds / MILLISECONDS_PER_SECOND);
xt.nsec += ((milliseconds % MILLISECONDS_PER_SECOND) *
@@ -54,8 +54,8 @@ inline void to_timespec_duration(const boost::xtime& xt, timespec& ts)
{
boost::xtime cur;
int res = 0;
- res = boost::xtime_get(&cur, boost::TIME_UTC);
- assert(res == boost::TIME_UTC);
+ res = boost::xtime_get(&cur, boost::TIME_UTC_);
+ assert(res == boost::TIME_UTC_);
if (boost::xtime_cmp(xt, cur) <= 0)
{
@@ -85,8 +85,8 @@ inline void to_duration(boost::xtime xt, int& milliseconds)
{
boost::xtime cur;
int res = 0;
- res = boost::xtime_get(&cur, boost::TIME_UTC);
- assert(res == boost::TIME_UTC);
+ res = boost::xtime_get(&cur, boost::TIME_UTC_);
+ assert(res == boost::TIME_UTC_);
if (boost::xtime_cmp(xt, cur) <= 0)
milliseconds = 0;
@@ -107,8 +107,8 @@ inline void to_microduration(boost::xtime xt, int& microseconds)
{
boost::xtime cur;
int res = 0;
- res = boost::xtime_get(&cur, boost::TIME_UTC);
- assert(res == boost::TIME_UTC);
+ res = boost::xtime_get(&cur, boost::TIME_UTC_);
+ assert(res == boost::TIME_UTC_);
if (boost::xtime_cmp(xt, cur) <= 0)
microseconds = 0;
diff --git a/deal.II/bundled/functionparser/CMakeLists.txt b/deal.II/bundled/functionparser/CMakeLists.txt
index 45afe46683..9fb68b95dc 100644
--- a/deal.II/bundled/functionparser/CMakeLists.txt
+++ b/deal.II/bundled/functionparser/CMakeLists.txt
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Remove -Wall and -pedantic from CMAKE_CXX_FLAGS (in directory scope) to
diff --git a/deal.II/bundled/tbb41_20130401oss/src/CMakeLists.txt b/deal.II/bundled/tbb41_20130401oss/src/CMakeLists.txt
index 3d5aa530b7..1551dc14de 100644
--- a/deal.II/bundled/tbb41_20130401oss/src/CMakeLists.txt
+++ b/deal.II/bundled/tbb41_20130401oss/src/CMakeLists.txt
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Remove -Wall and -pedantic from CMAKE_CXX_FLAGS (in directory scope) to
diff --git a/deal.II/bundled/umfpack/AMD/Source/CMakeLists.txt b/deal.II/bundled/umfpack/AMD/Source/CMakeLists.txt
index 9739fd4fe4..5f3231de01 100644
--- a/deal.II/bundled/umfpack/AMD/Source/CMakeLists.txt
+++ b/deal.II/bundled/umfpack/AMD/Source/CMakeLists.txt
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
SET(src_amd
amd_1.cc
diff --git a/deal.II/bundled/umfpack/UMFPACK/Source/CMakeLists.txt b/deal.II/bundled/umfpack/UMFPACK/Source/CMakeLists.txt
index a413a24709..4761b3c041 100644
--- a/deal.II/bundled/umfpack/UMFPACK/Source/CMakeLists.txt
+++ b/deal.II/bundled/umfpack/UMFPACK/Source/CMakeLists.txt
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Logic copied from the distributed UMFPACK Makefile.
diff --git a/deal.II/cmake/TODO.CMAKE b/deal.II/cmake/TODO.CMAKE
deleted file mode 100644
index 944e639e52..0000000000
--- a/deal.II/cmake/TODO.CMAKE
+++ /dev/null
@@ -1,7 +0,0 @@
-Some last bits and thoughts:
-
-* A TECPLOT feature has to be written
-
-* Support debug;optimized;general for all FEATURES
-
-* document that we no longer need the two-lib installation of p4est
diff --git a/deal.II/cmake/checks/check_01_compiler_features.cmake b/deal.II/cmake/checks/check_01_compiler_features.cmake
index 17063b529e..c6678d6367 100644
--- a/deal.II/cmake/checks/check_01_compiler_features.cmake
+++ b/deal.II/cmake/checks/check_01_compiler_features.cmake
@@ -1,20 +1,24 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-#####
+## ---------------------------------------------------------------------
-###########################################################################
-# #
-# Check for various compiler features: #
-# #
-###########################################################################
+########################################################################
+# #
+# Check for various compiler features: #
+# #
+########################################################################
#
# This file sets up:
@@ -148,8 +152,8 @@ CHECK_CXX_SOURCE_COMPILES(
"
HAVE_GLIBC_STACKTRACE)
-IF(HAVE_GLIBC_STACKTRACE)
- ENABLE_IF_SUPPORTED(CMAKE_SHARED_LINKER_FLAGS "-rdynamic")
+IF(HAVE_GLIBC_STACKTRACE AND NOT DEAL_II_STATIC_EXECUTABLE)
+ ENABLE_IF_SUPPORTED(DEAL_II_LINKER_FLAGS "-rdynamic")
ENDIF()
diff --git a/deal.II/cmake/checks/check_01_cpu_features.cmake b/deal.II/cmake/checks/check_01_cpu_features.cmake
index 81ac8f6a2e..d8c275b578 100644
--- a/deal.II/cmake/checks/check_01_cpu_features.cmake
+++ b/deal.II/cmake/checks/check_01_cpu_features.cmake
@@ -1,23 +1,25 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
-###########################################################################
-# #
-# Platform and CPU specific tests: #
-# #
-###########################################################################
+########################################################################
+# #
+# Platform and CPU specific tests: #
+# #
+########################################################################
#
# This file sets up
@@ -37,8 +39,14 @@
#
# Determine the Endianess of the platform:
#
-INCLUDE(TestBigEndian)
-TEST_BIG_ENDIAN(DEAL_II_WORDS_BIGENDIAN)
+IF(CMAKE_C_COMPILER_WORKS)
+ INCLUDE(TestBigEndian)
+ TEST_BIG_ENDIAN(DEAL_II_WORDS_BIGENDIAN)
+ELSE()
+ MESSAGE(STATUS
+ "No suitable C compiler was found! Assuming little endian platform."
+ )
+ENDIF()
IF(DEAL_II_ALLOW_PLATFORM_INTROSPECTION)
diff --git a/deal.II/cmake/checks/check_01_cxx_features.cmake b/deal.II/cmake/checks/check_01_cxx_features.cmake
index 374d296e36..7fcf064bfb 100644
--- a/deal.II/cmake/checks/check_01_cxx_features.cmake
+++ b/deal.II/cmake/checks/check_01_cxx_features.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Check for various C++ language features
@@ -26,11 +28,11 @@
#
-###########################################################################
-# #
-# C++11 Support: #
-# #
-###########################################################################
+########################################################################
+# #
+# C++11 Support: #
+# #
+########################################################################
#
# See if there is a compiler flag to enable C++11 features
@@ -219,11 +221,11 @@ ELSE()
ENDIF()
-###########################################################################
-# #
-# Check for various C++ features: #
-# #
-###########################################################################
+########################################################################
+# #
+# Check for various C++ features: #
+# #
+########################################################################
CHECK_CXX_SOURCE_COMPILES(
"
diff --git a/deal.II/cmake/checks/check_02_system_features.cmake b/deal.II/cmake/checks/check_02_system_features.cmake
index 4288bff50b..25d54167f5 100644
--- a/deal.II/cmake/checks/check_02_system_features.cmake
+++ b/deal.II/cmake/checks/check_02_system_features.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# This file sets up:
@@ -29,11 +31,11 @@
#
-###########################################################################
-# #
-# POSIX and Linux specific tests: #
-# #
-###########################################################################
+########################################################################
+# #
+# POSIX and Linux specific tests: #
+# #
+########################################################################
#
# Check for various posix (and linux) specific header files and symbols
@@ -56,24 +58,30 @@ CHECK_CXX_SYMBOL_EXISTS("rand_r" "stdlib.h" HAVE_RAND_R)
#
# Do we have the Bessel function jn?
#
-FIND_LIBRARY(m_lib NAMES m)
-MARK_AS_ADVANCED(m_lib)
+# Switch the library preference back to prefer dynamic libraries if
+# DEAL_II_PREFER_STATIC_LIBS=TRUE but DEAL_II_STATIC_EXECUTABLE=FALSE. In
+# this case system libraries should be linked dynamically.
+#
+SWITCH_LIBRARY_PREFERENCE()
+FIND_LIBRARY(m_LIBRARY NAMES m)
+SWITCH_LIBRARY_PREFERENCE()
+MARK_AS_ADVANCED(m_LIBRARY)
-IF(NOT m_lib MATCHES "-NOTFOUND")
- SET(CMAKE_REQUIRED_LIBRARIES ${m_lib})
+IF(NOT m_LIBRARY MATCHES "-NOTFOUND")
+ SET(CMAKE_REQUIRED_LIBRARIES ${m_LIBRARY})
CHECK_CXX_SYMBOL_EXISTS("jn" "math.h" HAVE_JN)
SET(CMAKE_REQUIRED_LIBRARIES)
IF(HAVE_JN)
- LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${m_lib})
+ LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${m_LIBRARY})
ENDIF()
ENDIF()
-###########################################################################
-# #
-# Mac OSX specific setup: #
-# #
-###########################################################################
+########################################################################
+# #
+# Mac OSX specific setup: #
+# #
+########################################################################
IF(CMAKE_SYSTEM_NAME MATCHES "Darwin")
#
@@ -90,16 +98,16 @@ IF(CMAKE_SYSTEM_NAME MATCHES "Darwin")
#
# TODO: MM: Check whether this is still necessary...
#
- STRIP_FLAG(CMAKE_SHARED_LINKER_FLAGS "-rdynamic")
+ STRIP_FLAG(DEAL_II_LINKER_FLAGS "-rdynamic")
ENDIF()
-###########################################################################
-# #
-# Windows and CYGWIN specific setup: #
-# #
-###########################################################################
+########################################################################
+# #
+# Windows and CYGWIN specific setup: #
+# #
+########################################################################
IF(CMAKE_SYSTEM_NAME MATCHES "Windows")
#
@@ -122,9 +130,9 @@ IF(CMAKE_SYSTEM_NAME MATCHES "Windows")
# - Matthias Maier, 2012
#
STRIP_FLAG(DEAL_II_CXX_FLAGS_DEBUG "-ggdb")
- STRIP_FLAG(DEAL_II_SHARED_LINKER_FLAGS_DEBUG "-ggdb")
+ STRIP_FLAG(DEAL_II_LINKER_FLAGS_DEBUG "-ggdb")
STRIP_FLAG(DEAL_II_CXX_FLAGS_DEBUG "-g")
- STRIP_FLAG(DEAL_II_SHARED_LINKER_FLAGS_DEBUG "-g")
+ STRIP_FLAG(DEAL_II_LINKER_FLAGS_DEBUG "-g")
ENDIF()
IF(CMAKE_SYSTEM_NAME MATCHES "CYGWIN")
diff --git a/deal.II/cmake/checks/check_03_compiler_bugs.cmake b/deal.II/cmake/checks/check_03_compiler_bugs.cmake
index b33e40b11c..cf49fb0e57 100644
--- a/deal.II/cmake/checks/check_03_compiler_bugs.cmake
+++ b/deal.II/cmake/checks/check_03_compiler_bugs.cmake
@@ -1,20 +1,24 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-#####
+## ---------------------------------------------------------------------
-###########################################################################
-# #
-# Check for various compiler bugs: #
-# #
-###########################################################################
+########################################################################
+# #
+# Check for various compiler bugs: #
+# #
+########################################################################
#
@@ -96,38 +100,6 @@ IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU" AND
ENDIF()
-#
-# Some gcc compiler versions have a problem when using an unsigned count
-# in the std::advance function. Unfortunately, this also happens
-# occasionally from within the standard library, so we can't prevent the
-# warning messages. Since this is annoying, switch of the flag -W which
-# causes this.
-#
-# - Matthias Maier, rewritten 2012
-#
-
-# TODO: We use the mpi.h header file for this check. We should test this
-# bug directly...
-CHECK_INCLUDE_FILE_CXX("mpi.h" HAVE_MPI_H)
-
-IF(HAVE_MPI_H)
- PUSH_TEST_FLAG("-Wunused-parameter")
- PUSH_TEST_FLAG("-Werror")
- CHECK_CXX_COMPILER_BUG(
- "
- #include
- int main() { return 0; }
- "
- DEAL_II_ADVANCE_WARNING_BUG)
- POP_TEST_FLAG()
- POP_TEST_FLAG()
-
- IF(DEAL_II_ADVANCE_WARNING_BUG)
- ENABLE_IF_SUPPORTED(CMAKE_CXX_FLAGS "-Wno-unused-parameter")
- ENDIF()
-ENDIF()
-
-
#
# In some cases, we would like to name partial specializations
# as friends. However, the standard forbids us to do so. But
@@ -256,7 +228,7 @@ CHECK_CXX_SOURCE_COMPILES(
explicit X(T) {}
};
void f(X) {}
- int main() { f(1) };
+ int main() { f(1); }
"
DEAL_II_EXPLICIT_CONSTRUCTOR_BUG
)
diff --git a/deal.II/cmake/config/CMakeLists.txt b/deal.II/cmake/config/CMakeLists.txt
index 206504899c..037af96e8c 100644
--- a/deal.II/cmake/config/CMakeLists.txt
+++ b/deal.II/cmake/config/CMakeLists.txt
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
@@ -22,11 +24,11 @@ CONFIGURE_FILE(
)
-###########################################################################
-# #
-# Setup and install the convenience macros: #
-# #
-###########################################################################
+########################################################################
+# #
+# Setup and install the convenience macros: #
+# #
+########################################################################
INSTALL(FILES
${CMAKE_SOURCE_DIR}/cmake/macros/macro_deal_ii_initialize_cached_variables.cmake
@@ -37,11 +39,11 @@ INSTALL(FILES
)
-###########################################################################
-# #
-# Configure and install the cmake project configuration: #
-# #
-###########################################################################
+########################################################################
+# #
+# Configure and install the cmake project configuration: #
+# #
+########################################################################
#
# Strip -Wno-deprecated from CMAKE_CXX_FLAGS so that deprecation warnings
@@ -136,11 +138,11 @@ INSTALL(FILES
)
-###########################################################################
-# #
-# Configure and install the old Makefile configuration: #
-# #
-###########################################################################
+########################################################################
+# #
+# Configure and install the old Makefile configuration: #
+# #
+########################################################################
IF(DEAL_II_COMPONENT_COMPAT_FILES)
@@ -241,7 +243,7 @@ IF(DEAL_II_COMPONENT_COMPAT_FILES)
# Set up our linker flags:
#
SET(MAKEFILE_LDFLAGS_${build}
- "${CMAKE_CXX_FLAGS} ${DEAL_II_CXX_FLAGS_${build}} ${CMAKE_SHARED_LINKER_FLAGS} ${DEAL_II_SHARED_LINKER_FLAGS_${build}}"
+ "${CMAKE_CXX_FLAGS} ${DEAL_II_CXX_FLAGS_${build}} ${DEAL_II_LINKER_FLAGS} ${DEAL_II_LINKER_FLAGS_${build}}"
)
ENDFOREACH()
diff --git a/deal.II/cmake/config/Config.cmake.in b/deal.II/cmake/config/Config.cmake.in
index c28eb39495..150793f5cc 100644
--- a/deal.II/cmake/config/Config.cmake.in
+++ b/deal.II/cmake/config/Config.cmake.in
@@ -1,23 +1,25 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
-##########################################################################
-## ##
-## The deal.II project configuration file ##
-## ##
-##########################################################################
+########################################################################
+## ##
+## The deal.II project configuration file ##
+## ##
+########################################################################
#
@@ -108,13 +110,13 @@ SET(DEAL_II_CXX_FLAGS_DEBUG "@DEAL_II_CXX_FLAGS_DEBUG@")
SET(DEAL_II_CXX_FLAGS_RELEASE "@DEAL_II_CXX_FLAGS_RELEASE@")
# used for all targets:
-SET(DEAL_II_LINKER_FLAGS "@CMAKE_SHARED_LINKER_FLAGS@")
+SET(DEAL_II_LINKER_FLAGS "@DEAL_II_LINKER_FLAGS@")
# _additionally_ used for debug targets:
-SET(DEAL_II_LINKER_FLAGS_DEBUG "@DEAL_II_SHARED_LINKER_FLAGS_DEBUG@")
+SET(DEAL_II_LINKER_FLAGS_DEBUG "@DEAL_II_LINKER_FLAGS_DEBUG@")
# _additionally_ used for release targets:
-SET(DEAL_II_LINKER_FLAGS_RELEASE "@DEAL_II_SHARED_LINKER_FLAGS_RELEASE@")
+SET(DEAL_II_LINKER_FLAGS_RELEASE "@DEAL_II_LINKER_FLAGS_RELEASE@")
# used for all targets:
SET(DEAL_II_USER_DEFINITIONS "@DEAL_II_USER_DEFINITIONS@")
@@ -126,6 +128,13 @@ SET(DEAL_II_USER_DEFINITIONS_DEBUG "@DEAL_II_USER_DEFINITIONS_DEBUG@")
SET(DEAL_II_USER_DEFINITIONS_RELEASE "@DEAL_II_USER_DEFINITIONS_RELEASE@")
+#
+# Build a static executable:
+#
+
+SET(DEAL_II_STATIC_EXECUTABLE "@DEAL_II_STATIC_EXECUTABLE@")
+
+
#
# Information about include directories and libraries
#
diff --git a/deal.II/cmake/configure/configure_1_lapack.cmake b/deal.II/cmake/configure/configure_1_lapack.cmake
index 6445f6b1f1..a319fe155b 100644
--- a/deal.II/cmake/configure/configure_1_lapack.cmake
+++ b/deal.II/cmake/configure/configure_1_lapack.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Configuration for the lapack library:
@@ -19,18 +21,62 @@
MACRO(FEATURE_LAPACK_FIND_EXTERNAL var)
FIND_PACKAGE(LAPACK)
- IF(LAPACK_FOUND)
- MARK_AS_ADVANCED(
- atlas_LIBRARY
- blas_LIBRARY
- gslcblas_LIBRARY
- lapack_LIBRARY
- m_LIBRARY
- ptf77blas_LIBRARY
- ptlapack_LIBRARY
- refblas_LIBRARY
- reflapack_LIBRARY
+ #
+ # So, well... LAPACK_LINKER_FLAGS and LAPACK_LIBRARIES should contain the
+ # complete link interface. But for invalid user overrides we include
+ # BLAS_LIBRARIES and BLAS_LINKER_FLAGS as well..
+ #
+ IF(NOT LAPACK_LINKER_FLAGS MATCHES "${BLAS_LINKER_FLAGS}")
+ MESSAGE(STATUS
+ "Manually adding BLAS_LINKER_FLAGS to LAPACK_LINKER_FLAGS"
)
+ ADD_FLAGS(LAPACK_LINKER_FLAGS "${BLAS_LINKER_FLAGS}")
+ ENDIF()
+ IF(NOT "${LAPACK_LIBRARIES}" MATCHES "${BLAS_LIBRARIES}")
+ MESSAGE(STATUS
+ "Manually adding BLAS_LIBRARIES to LAPACK_LIBRARIES"
+ )
+ LIST(APPEND LAPACK_LIBRARIES ${BLAS_LIBRARIES})
+ ENDIF()
+
+ MARK_AS_ADVANCED(
+ atlas_LIBRARY
+ blas_LIBRARY
+ gslcblas_LIBRARY
+ lapack_LIBRARY
+ m_LIBRARY
+ ptf77blas_LIBRARY
+ ptlapack_LIBRARY
+ refblas_LIBRARY
+ reflapack_LIBRARY
+ )
+
+ IF(LAPACK_FOUND)
+ #
+ # Well, in case of static archives we have to manually pick up the
+ # complete link interface. *sigh*
+ #
+ # Do this unconditionally for the most common case:
+ # TODO: Non-GNU setups...
+ #
+ #
+ # Switch the library preference back to prefer dynamic libraries if
+ # DEAL_II_PREFER_STATIC_LIBS=TRUE but DEAL_II_STATIC_EXECUTABLE=FALSE. In
+ # this case system libraries should be linked dynamically.
+ #
+ SWITCH_LIBRARY_PREFERENCE()
+ FOREACH(_lib gfortran m quadmath)
+ FIND_LIBRARY(${_lib}_LIBRARY
+ NAMES ${_lib}
+ HINTS ${CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES})
+ MARK_AS_ADVANCED(${_lib}_LIBRARY)
+
+ IF(NOT ${_lib}_LIBRARY MATCHES "-NOTFOUND")
+ LIST(APPEND LAPACK_LIBRARIES ${${_lib}_LIBRARY})
+ ENDIF()
+ ENDFOREACH()
+ SWITCH_LIBRARY_PREFERENCE()
+
SET(${var} TRUE)
ENDIF()
ENDMACRO()
@@ -52,24 +98,29 @@ SET(DEAL_II_LAPACK_FUNCTIONS
MACRO(CHECK_FOR_LAPACK_FUNCTIONS)
SET(CMAKE_REQUIRED_LIBRARIES ${LAPACK_LIBRARIES})
+ ADD_FLAGS(CMAKE_REQUIRED_FLAGS "${LAPACK_LINKER_FLAGS}")
#
- # For some static lapack versions it is necessary to link with -lm.
- # So link with it as well if -lm is already present in our link
- # interface:
+ # Push -pthread as well:
#
- IF(NOT m_lib MATCHES "-NOTFOUND")
- LIST(APPEND CMAKE_REQUIRED_LIBRARIES ${m_lib})
+ ENABLE_IF_SUPPORTED(CMAKE_REQUIRED_FLAGS "-pthread")
+
+ IF(CMAKE_C_COMPILER_WORKS)
+ FOREACH(_func ${DEAL_II_LAPACK_FUNCTIONS})
+ STRING(TOUPPER ${_func} _func_uppercase)
+ CHECK_FUNCTION_EXISTS(${_func} HAVE_${_func_uppercase})
+ ENDFOREACH()
+ ELSE()
+ MESSAGE(STATUS
+ "No suitable C compiler was found! Skipping LAPACK symbol check."
+ )
+ FOREACH(_func ${DEAL_II_LAPACK_FUNCTIONS})
+ SET_IF_EMPTY(HAVE_${_func_uppercase} TRUE)
+ ENDFOREACH()
ENDIF()
- ADD_FLAGS(CMAKE_REQUIRED_FLAGS "${LAPACK_LINKER_FLAGS}")
-
- FOREACH(_func ${DEAL_II_LAPACK_FUNCTIONS})
- STRING(TOUPPER ${_func} _func_uppercase)
- CHECK_FUNCTION_EXISTS(${_func} HAVE_${_func_uppercase})
- ENDFOREACH()
-
SET(CMAKE_REQUIRED_LIBRARIES)
STRIP_FLAG(CMAKE_REQUIRED_FLAGS "${LAPACK_LINKER_FLAGS}")
+ STRIP_FLAG(CMAKE_REQUIRED_FLAGS "-pthread")
ENDMACRO()
@@ -81,29 +132,12 @@ MACRO(RESET_LAPACK_FUNCTIONS_CACHE)
ENDMACRO()
+
MACRO(FEATURE_LAPACK_CONFIGURE_EXTERNAL)
- #
- # So, well... LAPACK_LINKER_FLAGS and LAPACK_LIBRARIES should contain the
- # complete link interface. But for invalid user overrides we include
- # BLAS_LIBRARIES and BLAS_LINKER_FLAGS as well..
- #
- IF(NOT LAPACK_LINKER_FLAGS MATCHES "${BLAS_LINKER_FLAGS}")
- MESSAGE(STATUS
- "Manually adding BLAS_LINKER_FLAGS to LAPACK_LINKER_FLAGS"
- )
- ADD_FLAGS(LAPACK_LINKER_FLAGS "${BLAS_LINKER_FLAGS}")
- ENDIF()
- IF(NOT "${LAPACK_LIBRARIES}" MATCHES "${BLAS_LIBRARIES}")
- MESSAGE(STATUS
- "Manually adding BLAS_LIBRARIES to LAPACK_LIBRARIES"
- )
- LIST(APPEND LAPACK_LIBRARIES ${BLAS_LIBRARIES})
- ENDIF()
- ADD_FLAGS(CMAKE_SHARED_LINKER_FLAGS "${LAPACK_LINKER_FLAGS}")
+ ADD_FLAGS(DEAL_II_LINKER_FLAGS "${LAPACK_LINKER_FLAGS}")
LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${LAPACK_LIBRARIES})
-
CHECK_FOR_LAPACK_FUNCTIONS()
ENDMACRO()
diff --git a/deal.II/cmake/configure/configure_1_mpi.cmake b/deal.II/cmake/configure/configure_1_mpi.cmake
index e0c1766d41..85de2a41c2 100644
--- a/deal.II/cmake/configure/configure_1_mpi.cmake
+++ b/deal.II/cmake/configure/configure_1_mpi.cmake
@@ -1,20 +1,25 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Configuration for mpi support:
#
+# We look for the C and Fortran libraries as well because they are needed
+# by some external libraries:
+#
MACRO(FEATURE_MPI_FIND_EXTERNAL var)
#
@@ -31,7 +36,22 @@ MACRO(FEATURE_MPI_FIND_EXTERNAL var)
# directly.
#
SET_IF_EMPTY(MPI_CXX_COMPILER ${CMAKE_CXX_COMPILER})
- SET_IF_EMPTY(MPI_C_COMPILER ${CMAKE_C_COMPILER}) # for good measure
+ IF(CMAKE_C_COMPILER_WORKS)
+ SET_IF_EMPTY(MPI_C_COMPILER ${CMAKE_C_COMPILER}) # for good measure
+ ELSE()
+ MESSAGE(STATUS
+ "No suitable C compiler was found! MPI C interface can not be "
+ "autodetected"
+ )
+ ENDIF()
+ IF(CMAKE_Fortran_COMPILER_WORKS)
+ SET_IF_EMPTY(MPI_Fortran_COMPILER ${CMAKE_Fortran_COMPILER}) # for good measure
+ ELSE()
+ MESSAGE(STATUS
+ "No suitable Fortran compiler was found! MPI Fortran interface can "
+ "not be autodetected"
+ )
+ ENDIF()
FIND_PACKAGE(MPI)
IF(NOT MPI_CXX_FOUND)
@@ -48,14 +68,24 @@ MACRO(FEATURE_MPI_FIND_EXTERNAL var)
SET(MPI_FOUND) # clear this value so that FIND_PACKAGE runs again.
UNSET(MPI_CXX_COMPILER CACHE)
UNSET(MPI_C_COMPILER CACHE)
+ UNSET(MPI_Fortran_COMPILER CACHE)
FIND_PACKAGE(MPI)
ENDIF()
ENDIF()
- IF(MPI_CXX_FOUND)
- # Hide some variables:
- MARK_AS_ADVANCED(MPI_EXTRA_LIBRARY MPI_LIBRARY)
+ #
+ # Manually clean up variables:
+ #
+ FOREACH(_lang C CXX Fortran)
+ IF(MPI_${_lang}_LIBRARIES MATCHES "-NOTFOUND")
+ SET(MPI_${_lang}_LIBRARIES)
+ ENDIF()
+ ENDFOREACH()
+ # Hide some variables:
+ MARK_AS_ADVANCED(MPI_EXTRA_LIBRARY MPI_LIBRARY)
+
+ IF(MPI_CXX_FOUND)
SET(${var} TRUE)
ENDIF()
ENDMACRO()
@@ -63,7 +93,7 @@ ENDMACRO()
MACRO(FEATURE_MPI_CONFIGURE_EXTERNAL)
ADD_FLAGS(CMAKE_CXX_FLAGS "${MPI_CXX_COMPILE_FLAGS}")
- ADD_FLAGS(CMAKE_SHARED_LINKER_FLAGS "${MPI_CXX_LINK_FLAGS}")
+ ADD_FLAGS(DEAL_II_LINKER_FLAGS "${MPI_CXX_LINK_FLAGS}")
LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${MPI_CXX_LIBRARIES})
INCLUDE_DIRECTORIES(${MPI_CXX_INCLUDE_PATH})
diff --git a/deal.II/cmake/configure/configure_1_threads.cmake b/deal.II/cmake/configure/configure_1_threads.cmake
index f2df405156..8525ad770e 100644
--- a/deal.II/cmake/configure/configure_1_threads.cmake
+++ b/deal.II/cmake/configure/configure_1_threads.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
@@ -24,10 +26,38 @@
# The macro will be included in CONFIGURE_FEATURE_THREADS_EXTERNAL/BUNDLED.
#
MACRO(SETUP_THREADING)
- FIND_PACKAGE(Threads)
+ #
+ # Unfortunately the FindThreads macro needs a working C compiler
+ #
+ IF(CMAKE_C_COMPILER_WORKS)
+ #
+ # Switch the library preference back to prefer dynamic libraries if
+ # DEAL_II_PREFER_STATIC_LIBS=TRUE but DEAL_II_STATIC_EXECUTABLE=FALSE. In
+ # this case system libraries should be linked dynamically.
+ #
+ SWITCH_LIBRARY_PREFERENCE()
+ FIND_PACKAGE(Threads)
+ SWITCH_LIBRARY_PREFERENCE()
+
+ ELSE()
+
+ #
+ # We have no way to query for thread support. Just assume that it is
+ # provided by Pthreads...
+ #
+ MESSAGE(STATUS
+ "No suitable C compiler was found! Assuming threading is provided by Pthreads."
+ )
+ SET_IF_EMPTY(Threads_FOUND TRUE)
+ SET_IF_EMPTY(CMAKE_THREAD_LIBS_INIT "-lpthread")
+ SET_IF_EMPTY(CMAKE_USE_PTHREADS_INIT TRUE)
+ ENDIF()
IF(NOT Threads_FOUND)
- # TODO:
+ #
+ # TODO: This is a dead end. Threading might be setup with internal TBB
+ # so we have no way of returning unsuccessfully...
+ #
MESSAGE(FATAL_ERROR
"\nInternal configuration error: No Threading support found\n\n"
)
@@ -50,7 +80,7 @@ MACRO(SETUP_THREADING)
ENDIF()
ENDIF()
- ADD_FLAGS(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_THREAD_LIBS_INIT}")
+ ADD_FLAGS(DEAL_II_LINKER_FLAGS "${CMAKE_THREAD_LIBS_INIT}")
#
# Set up some posix thread specific configuration toggles:
@@ -135,15 +165,6 @@ MACRO(FEATURE_THREADS_CONFIGURE_EXTERNAL)
ENDMACRO()
-#
-# Resolve a cache invalidation problem by searching for these flags
-# unconditionally. They're used in FEATURE_THREADS_CONFIGURE_BUNDLED
-# depending on cached variables.
-#
-ENABLE_IF_SUPPORTED(_dummy "-Wno-parentheses")
-ENABLE_IF_SUPPORTED(_dummy "-Wno-long-long")
-
-
MACRO(FEATURE_THREADS_CONFIGURE_BUNDLED)
#
# Setup threading (before configuring our build...)
@@ -168,10 +189,10 @@ MACRO(FEATURE_THREADS_CONFIGURE_BUNDLED)
#
# tbb uses dlopen/dlclose, so link against libdl.so as well:
#
- FIND_LIBRARY(dl_lib NAMES dl)
- MARK_AS_ADVANCED(dl_lib)
- IF(NOT dl_lib MATCHES "-NOTFOUND")
- LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${dl_lib})
+ FIND_LIBRARY(dl_LIBRARY NAMES dl)
+ MARK_AS_ADVANCED(dl_LIBRARY)
+ IF(NOT dl_LIBRARY MATCHES "-NOTFOUND")
+ LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${dl_LIBRARY})
ENDIF()
INCLUDE_DIRECTORIES(${TBB_FOLDER}/include)
diff --git a/deal.II/cmake/configure/configure_1_umfpack.cmake b/deal.II/cmake/configure/configure_1_umfpack.cmake
index 0d8ebde0d4..56ac7e323d 100644
--- a/deal.II/cmake/configure/configure_1_umfpack.cmake
+++ b/deal.II/cmake/configure/configure_1_umfpack.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Configuration for the umfpack library:
diff --git a/deal.II/cmake/configure/configure_metis.cmake b/deal.II/cmake/configure/configure_2_metis.cmake
similarity index 51%
rename from deal.II/cmake/configure/configure_metis.cmake
rename to deal.II/cmake/configure/configure_2_metis.cmake
index 14f76ca5f5..92a1f10880 100644
--- a/deal.II/cmake/configure/configure_metis.cmake
+++ b/deal.II/cmake/configure/configure_2_metis.cmake
@@ -1,19 +1,21 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
-# Configuration for the netcdf library:
+# Configuration for the metis library:
#
MACRO(FEATURE_METIS_FIND_EXTERNAL var)
diff --git a/deal.II/cmake/configure/configure_petsc.cmake b/deal.II/cmake/configure/configure_2_petsc.cmake
similarity index 66%
rename from deal.II/cmake/configure/configure_petsc.cmake
rename to deal.II/cmake/configure/configure_2_petsc.cmake
index eaad928c7d..a78757796a 100644
--- a/deal.II/cmake/configure/configure_petsc.cmake
+++ b/deal.II/cmake/configure/configure_2_petsc.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Configuration for the petsc library:
@@ -45,7 +47,7 @@ MACRO(FEATURE_PETSC_FIND_EXTERNAL var)
# Petsc has to be configured with the same MPI configuration as
# deal.II.
#
- # petscconf.h should export PETSC_HAVE_MPIUNI 1 in case mpi support is
+ # petscconf.h should export PETSC_HAVE_MPIUNI 1 in case mpi support is
# _NOT_ enabled.
# So we check for this:
#
@@ -65,6 +67,33 @@ MACRO(FEATURE_PETSC_FIND_EXTERNAL var)
SET(${var} FALSE)
ENDIF()
+
+ #
+ # Petsc has to be configured with the same number of bits for indices as
+ # deal.II.
+ #
+ # petscconf.h should export PETSC_WITH_64BIT_INDICES 1 in case 64bits
+ # indices support is enabled.
+ # So we check for this:
+ #
+ IF( (NOT PETSC_WITH_64BIT_INDICES AND DEAL_II_WITH_64BIT_INDICES)
+ OR
+ (PETSC_WITH_64BIT_INDICES AND NOT DEAL_II_WITH_64BIT_INDICES))
+ MESSAGE(STATUS "Could not find a sufficient PETSc installation: "
+ "PETSc has to be configured to use the same number of bits for the "
+ "global indices as deal.II."
+ )
+ SET(PETSC_ADDITIONAL_ERROR_STRING
+ ${PETSC_ADDITIONAL_ERROR_STRING}
+ "Could not find a sufficient PETSc installation:\n"
+ "PETSc has to be configured to use the same number of bits for the "
+ "global indices as deal.II, but found:\n"
+ " DEAL_II_WITH_64BIT_INDICES = ${DEAL_II_WITH_64BIT_INDICES}\n"
+ " PETSC_WITH_64BIT_INDICES = (${PETSC_WITH_64BIT_INDICES})\n"
+ )
+ SET(${var} FALSE)
+ ENDIF()
+
IF(NOT ${var})
UNSET(PETSC_INCLUDE_DIR_ARCH CACHE)
UNSET(PETSC_INCLUDE_DIR_COMMON CACHE)
@@ -80,13 +109,6 @@ MACRO(FEATURE_PETSC_FIND_EXTERNAL var)
ENDMACRO()
-#
-# Resolve a cache invalidation problem by searching for this flag
-# unconditionally. It is used in FEATURE_PETSC_CONFIGURE_EXTERNAL
-# depending on cached variables.
-#
-ENABLE_IF_SUPPORTED(_dummy "-Wno-long-long")
-
MACRO(FEATURE_PETSC_CONFIGURE_EXTERNAL)
INCLUDE_DIRECTORIES(${PETSC_INCLUDE_DIRS})
diff --git a/deal.II/cmake/configure/configure_trilinos.cmake b/deal.II/cmake/configure/configure_2_trilinos.cmake
similarity index 74%
rename from deal.II/cmake/configure/configure_trilinos.cmake
rename to deal.II/cmake/configure/configure_2_trilinos.cmake
index 346d2165fb..41a5f93bf5 100644
--- a/deal.II/cmake/configure/configure_trilinos.cmake
+++ b/deal.II/cmake/configure/configure_2_trilinos.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Configuration for the trilinos library:
@@ -115,9 +117,47 @@ MACRO(FEATURE_TRILINOS_FIND_EXTERNAL var)
SET(${var} FALSE)
ENDIF()
+ #
+ # Trilinos has to be configured with 32bit indices if deal.II uses unsigned long
+ # long int.
+ #
+ IF(TRILINOS_WITH_NO_32BIT_INDICES AND NOT DEAL_II_WITH_64BIT_INDICES)
+ MESSAGE(STATUS "deal.II was configured to use 32bit global indices but "
+ "Trilinos was not."
+ )
+ SET(TRILINOS_ADDITIONAL_ERROR_STRING
+ ${TRILINOS_ADDITIONAL_ERROR_STRING}
+ "The Trilinos installation (found at \"${TRILINOS_DIR}\")\n"
+ "has to be configured to use the same number of bits as deal.II, but "
+ "found:\n"
+ " DEAL_II_WITH_64BIT_INDICES = ${DEAL_II_WITH_64BIT_INDICES}\n"
+ " TRILINOS_WITH_NO_32BIT_INDICES = ${TRILINOS_WITH_NO_32_BIT_INDICES}\n"
+ )
+ SET(${var} FALSE)
+ ENDIF()
#
- # Some verions of Sacado_cmath.hpp does things that aren't compatible
+ # Trilinos has to be configured with 64bit indices if deal.II uses unsigned long
+ # long int.
+ #
+ IF(TRILINOS_WITH_NO_64BIT_INDICES AND DEAL_II_WITH_64BIT_INDICES)
+ MESSAGE(STATUS "deal.II was configured to use 64bit global indices but "
+ "Trilinos was not."
+ )
+ SET(TRILINOS_ADDITIONAL_ERROR_STRING
+ ${TRILINOS_ADDITIONAL_ERROR_STRING}
+ "The Trilinos installation (found at \"${TRILINOS_DIR}\")\n"
+ "has to be configured to use the same number of bits as deal.II, but "
+ "found:\n"
+ " DEAL_II_WITH_64BIT_INDICES = ${DEAL_II_WITH_64BIT_INDICES}\n"
+ " TRILINOS_WITH_NO_64BIT_INDICES = ${TRILINOS_WITH_NO_64_BIT_INDICES}\n"
+ )
+ SET(${var} FALSE)
+ ENDIF()
+
+
+ #
+ # Some versions of Sacado_cmath.hpp do things that aren't compatible
# with the -std=c++0x flag of GCC, see deal.II FAQ.
# Test whether that is indeed the case
#
@@ -177,15 +217,6 @@ MACRO(FEATURE_TRILINOS_FIND_EXTERNAL var)
ENDMACRO()
-#
-# Resolve a cache invalidation problem by searching for these flags
-# unconditionally. They're used in FEATURE_TRILINOS_CONFIGURE_EXTERNAL
-# depending on cached variables.
-#
-ENABLE_IF_SUPPORTED(_dummy "-Wno-unused")
-ENABLE_IF_SUPPORTED(_dummy "-Wno-extra")
-ENABLE_IF_SUPPORTED(_dummy "-Wno-overloaded-virtual")
-
MACRO(FEATURE_TRILINOS_CONFIGURE_EXTERNAL)
#
# *Boy* Sanitize the include paths given by TrilinosConfig.cmake...
@@ -200,13 +231,7 @@ MACRO(FEATURE_TRILINOS_CONFIGURE_EXTERNAL)
# The user has to know the location of the trilinos headers as well:
LIST(APPEND DEAL_II_USER_INCLUDE_DIRS ${TRILINOS_INCLUDE_DIRS})
- LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES
- # The Trilinos libraries:
- ${TRILINOS_LIBRARIES}
- # All external libraries necessary for the Trilinos libraries. Nice and
- # easy :-)
- ${Trilinos_TPL_LIBRARIES}
- )
+ LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${TRILINOS_LIBRARIES})
SET(DEAL_II_EXPAND_TRILINOS_VECTOR "TrilinosWrappers::Vector")
SET(DEAL_II_EXPAND_TRILINOS_BLOCKVECTOR "TrilinosWrappers::BlockVector")
diff --git a/deal.II/cmake/configure/configure_arpack.cmake b/deal.II/cmake/configure/configure_arpack.cmake
index 2ce985674b..bf2f5f4aca 100644
--- a/deal.II/cmake/configure/configure_arpack.cmake
+++ b/deal.II/cmake/configure/configure_arpack.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Configuration for the ARPACK library:
diff --git a/deal.II/cmake/configure/configure_boost.cmake b/deal.II/cmake/configure/configure_boost.cmake
index 8e28bf83e5..7d017236b4 100644
--- a/deal.II/cmake/configure/configure_boost.cmake
+++ b/deal.II/cmake/configure/configure_boost.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Configuration for the boost library:
@@ -35,21 +37,39 @@ SET(DEAL_II_WITH_BOOST ON # Always true. We need it :-]
MACRO(FEATURE_BOOST_FIND_EXTERNAL var)
- #
- # We require at least version 1.44
- #
+
IF(DEAL_II_WITH_THREADS)
- FIND_PACKAGE(Boost 1.44 COMPONENTS serialization system thread)
+ SET(_boost_components serialization system thread)
ELSE()
- FIND_PACKAGE(Boost 1.44 COMPONENTS serialization system)
+ SET(_boost_components serialization system)
+ ENDIF()
+
+ #
+ # Prefer static libs if BUILD_SHARED_LIBS=OFF:
+ #
+ IF(NOT BUILD_SHARED_LIBS)
+ SET(Boost_USE_STATIC_LIBS TRUE)
ENDIF()
+ FIND_PACKAGE(Boost 1.44 COMPONENTS ${_boost_components})
+
+ #
+ # Fall back to dynamic libraries if no static libraries could be found:
+ #
+ IF( Boost_USE_STATIC_LIBS AND
+ (NOT Boost_SERIALIZATION_FOUND OR NOT Boost_SYSTEM_FOUND)
+ )
+ SET(Boost_USE_STATIC_LIBS FALSE)
+ FIND_PACKAGE(Boost 1.44 COMPONENTS ${_boost_components})
+ ENDIF()
+
+ MARK_AS_ADVANCED(Boost_DIR)
+
IF( Boost_SERIALIZATION_FOUND AND
Boost_SYSTEM_FOUND AND
(NOT DEAL_II_WITH_THREADS OR Boost_THREAD_FOUND)
)
SET(${var} TRUE)
- MARK_AS_ADVANCED(Boost_DIR)
ENDIF()
ENDMACRO()
diff --git a/deal.II/cmake/configure/configure_functionparser.cmake b/deal.II/cmake/configure/configure_functionparser.cmake
index 191c33164e..c9abde129d 100644
--- a/deal.II/cmake/configure/configure_functionparser.cmake
+++ b/deal.II/cmake/configure/configure_functionparser.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Configuration for functionparser
diff --git a/deal.II/cmake/configure/configure_hdf5.cmake b/deal.II/cmake/configure/configure_hdf5.cmake
index ff85fe9080..d46c23409b 100644
--- a/deal.II/cmake/configure/configure_hdf5.cmake
+++ b/deal.II/cmake/configure/configure_hdf5.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Configuration for the hdf5 library:
diff --git a/deal.II/cmake/configure/configure_mumps.cmake b/deal.II/cmake/configure/configure_mumps.cmake
index 3757724b59..f4a9a27446 100644
--- a/deal.II/cmake/configure/configure_mumps.cmake
+++ b/deal.II/cmake/configure/configure_mumps.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Configuration for the MUMPS library:
diff --git a/deal.II/cmake/configure/configure_netcdf.cmake b/deal.II/cmake/configure/configure_netcdf.cmake
index a8fb4ebc57..b29db310d4 100644
--- a/deal.II/cmake/configure/configure_netcdf.cmake
+++ b/deal.II/cmake/configure/configure_netcdf.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Configuration for the netcdf library:
diff --git a/deal.II/cmake/configure/configure_p4est.cmake b/deal.II/cmake/configure/configure_p4est.cmake
index a31ff138dd..3773a88b12 100644
--- a/deal.II/cmake/configure/configure_p4est.cmake
+++ b/deal.II/cmake/configure/configure_p4est.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Configuration for the p4est and sc libraries:
diff --git a/deal.II/cmake/configure/configure_slepc.cmake b/deal.II/cmake/configure/configure_slepc.cmake
index cc1ff2b65e..269f85daa1 100644
--- a/deal.II/cmake/configure/configure_slepc.cmake
+++ b/deal.II/cmake/configure/configure_slepc.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Configuration for the SLEPC library:
diff --git a/deal.II/cmake/configure/configure_zlib.cmake b/deal.II/cmake/configure/configure_zlib.cmake
index 88fb255111..250210beac 100644
--- a/deal.II/cmake/configure/configure_zlib.cmake
+++ b/deal.II/cmake/configure/configure_zlib.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Configuration for the zlib library:
diff --git a/deal.II/cmake/macros/macro_add_flags.cmake b/deal.II/cmake/macros/macro_add_flags.cmake
index a56bb3ae30..db70587a7d 100644
--- a/deal.II/cmake/macros/macro_add_flags.cmake
+++ b/deal.II/cmake/macros/macro_add_flags.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# A small macro used for (string-)appending a string "${flags}" to a
diff --git a/deal.II/cmake/macros/macro_check_cxx_compiler_bug.cmake b/deal.II/cmake/macros/macro_check_cxx_compiler_bug.cmake
index ea2c41b433..6c600a2729 100644
--- a/deal.II/cmake/macros/macro_check_cxx_compiler_bug.cmake
+++ b/deal.II/cmake/macros/macro_check_cxx_compiler_bug.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Check for a compiler bug.
diff --git a/deal.II/cmake/macros/macro_cond_set_to_yes.cmake b/deal.II/cmake/macros/macro_cond_set_to_yes.cmake
index a0b6e40438..2eb3efaebc 100644
--- a/deal.II/cmake/macros/macro_cond_set_to_yes.cmake
+++ b/deal.II/cmake/macros/macro_cond_set_to_yes.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# If bool is "true" (in a cmake fashion...), set variable to "yes",
diff --git a/deal.II/cmake/macros/macro_configure_feature.cmake b/deal.II/cmake/macros/macro_configure_feature.cmake
index 991531e19b..0ae79de3c0 100644
--- a/deal.II/cmake/macros/macro_configure_feature.cmake
+++ b/deal.II/cmake/macros/macro_configure_feature.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# This macro is used for the feature configuration in deal.II
@@ -55,11 +57,11 @@
#
-###########################################################################
-# #
-# Helper Macros: #
-# #
-###########################################################################
+########################################################################
+# #
+# Helper Macros: #
+# #
+########################################################################
#
# Some black magic to have substitution in command names:
@@ -143,16 +145,16 @@ MACRO(FEATURE_CONFIGURE_EXTERNAL _feature)
LIST(APPEND DEAL_II_EXTERNAL_LIBRARIES ${${_feature}_LIBRARIES})
ENDIF()
IF(DEFINED ${_feature}_LINKER_FLAGS)
- ADD_FLAGS(CMAKE_SHARED_LINKER_FLAGS "${${_feature}_LINKER_FLAGS}")
+ ADD_FLAGS(DEAL_II_LINKER_FLAGS "${${_feature}_LINKER_FLAGS}")
ENDIF()
ENDMACRO()
-###########################################################################
-# #
-# CONFIGURE_FEATURE: #
-# #
-###########################################################################
+########################################################################
+# #
+# CONFIGURE_FEATURE: #
+# #
+########################################################################
MACRO(CONFIGURE_FEATURE _feature)
#
diff --git a/deal.II/cmake/macros/macro_deal_ii_add_definitions.cmake b/deal.II/cmake/macros/macro_deal_ii_add_definitions.cmake
index d626feafc8..01969882a1 100644
--- a/deal.II/cmake/macros/macro_deal_ii_add_definitions.cmake
+++ b/deal.II/cmake/macros/macro_deal_ii_add_definitions.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# A small wrapper around
diff --git a/deal.II/cmake/macros/macro_deal_ii_add_dependencies.cmake b/deal.II/cmake/macros/macro_deal_ii_add_dependencies.cmake
index 87ea359076..037885ff15 100644
--- a/deal.II/cmake/macros/macro_deal_ii_add_dependencies.cmake
+++ b/deal.II/cmake/macros/macro_deal_ii_add_dependencies.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# A small wrapper around ADD_DEPENDENCIES to add the specified dependencies
diff --git a/deal.II/cmake/macros/macro_deal_ii_add_library.cmake b/deal.II/cmake/macros/macro_deal_ii_add_library.cmake
index a86d4dba44..26c7ee3b81 100644
--- a/deal.II/cmake/macros/macro_deal_ii_add_library.cmake
+++ b/deal.II/cmake/macros/macro_deal_ii_add_library.cmake
@@ -1,28 +1,30 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# A small wrapper around ADD_LIBRARY that will define a target for each
# build type specified in DEAL_II_BUILD_TYPES
#
# It is assumed that the desired compilation configuration is set via
-# DEAL_II_SHARED_LINKER_FLAGS_${build}
+# DEAL_II_LINKER_FLAGS_${build}
# DEAL_II_CXX_FLAGS_${build}
# DEAL_II_DEFINITIONS_${build}
#
# as well as the global (for all build types)
-# CMAKE_SHARED_LINKER_FLAGS
+# DEAL_II_LINKER_FLAGS
# CMAKE_CXX_FLAGS
# DEAL_II_DEFINITIONS
#
@@ -37,7 +39,7 @@ MACRO(DEAL_II_ADD_LIBRARY _library)
)
SET_TARGET_PROPERTIES(${_library}.${_build_lowercase} PROPERTIES
- LINK_FLAGS "${DEAL_II_SHARED_LINKER_FLAGS_${_build}}"
+ LINK_FLAGS "${DEAL_II_LINKER_FLAGS};${DEAL_II_LINKER_FLAGS_${_build}}"
COMPILE_DEFINITIONS "${DEAL_II_DEFINITIONS};${DEAL_II_DEFINITIONS_${_build}}"
COMPILE_FLAGS "${DEAL_II_CXX_FLAGS_${_build}}"
LINKER_LANGUAGE "CXX"
diff --git a/deal.II/cmake/macros/macro_deal_ii_initialize_cached_variables.cmake b/deal.II/cmake/macros/macro_deal_ii_initialize_cached_variables.cmake
index 6aa654d35b..bcd842eb09 100644
--- a/deal.II/cmake/macros/macro_deal_ii_initialize_cached_variables.cmake
+++ b/deal.II/cmake/macros/macro_deal_ii_initialize_cached_variables.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# This file implements the DEAL_II_INITIALIZE_VARIABLES macro, which is
@@ -49,24 +51,34 @@ MACRO(DEAL_II_INITIALIZE_CACHED_VARIABLES)
ENDIF()
#
- # Bail out if build type is unknown...
- #
- IF( NOT "${CMAKE_BUILD_TYPE}" STREQUAL "Release" AND
- NOT "${CMAKE_BUILD_TYPE}" STREQUAL "Debug" )
- MESSAGE(FATAL_ERROR
- "\nCMAKE_BUILD_TYPE does neither match Release nor Debug!\n\n"
- )
- ENDIF()
- #
- # ... or unsupported
+ # Reset build type if unsupported:
#
IF(NOT DEAL_II_BUILD_TYPE MATCHES "${CMAKE_BUILD_TYPE}")
- MESSAGE(FATAL_ERROR "\n"
- "CMAKE_BUILD_TYPE \"${CMAKE_BUILD_TYPE}\" unsupported by current installation!\n"
- "deal.II was build with \"${DEAL_II_BUILD_TYPE}\" only build type.\n\n"
+ IF("${DEAL_II_BUILD_TYPE}" STREQUAL "DebugRelease")
+ SET(_new_build_type "Debug")
+ ELSE()
+ SET(_new_build_type "${DEAL_II_BUILD_TYPE}")
+ ENDIF()
+
+ MESSAGE(
+"###
+#
+# WARNING:
+#
+# CMAKE_BUILD_TYPE \"${CMAKE_BUILD_TYPE}\" unsupported by current installation!
+# deal.II was built with CMAKE_BUILD_TYPE \"${DEAL_II_BUILD_TYPE}\".
+#
+# CMAKE_BUILD_TYPE is forced to \"${_new_build_type}\".
+#
+###"
+ )
+ SET(CMAKE_BUILD_TYPE "${_new_build_type}" CACHE STRING
+ "Choose the type of build, options are: Debug, Release"
+ FORCE
)
ENDIF()
+
SET(CMAKE_CXX_COMPILER ${DEAL_II_CXX_COMPILER} CACHE STRING
"CXX Compiler.")
diff --git a/deal.II/cmake/macros/macro_deal_ii_invoke_autopilot.cmake b/deal.II/cmake/macros/macro_deal_ii_invoke_autopilot.cmake
index e643446317..a895702cd6 100644
--- a/deal.II/cmake/macros/macro_deal_ii_invoke_autopilot.cmake
+++ b/deal.II/cmake/macros/macro_deal_ii_invoke_autopilot.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# This file implements the DEAL_II_INVOKE_AUTOPILOT macro, which is
@@ -81,22 +83,22 @@ MACRO(DEAL_II_INVOKE_AUTOPILOT)
ENDIF()
# Define custom targets to easily switch the build type:
- IF(${DEAL_II_BUILD_TYPE} MATCHES "Debug")
- ADD_CUSTOM_TARGET(debug
- COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Debug ${CMAKE_SOURCE_DIR}
- COMMENT "Switch CMAKE_BUILD_TYPE to Debug"
- )
- SET(_switch_targets
- "# $ make debug - to switch the build type to \"Debug\"\n"
- )
- ENDIF()
- IF(${DEAL_II_BUILD_TYPE} MATCHES "Release")
- ADD_CUSTOM_TARGET(release
- COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Release ${CMAKE_SOURCE_DIR}
- COMMENT "Switch CMAKE_BUILD_TYPE to Release"
- )
+ ADD_CUSTOM_TARGET(debug
+ COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Debug ${CMAKE_SOURCE_DIR}
+ COMMENT "Switch CMAKE_BUILD_TYPE to Debug"
+ )
+
+ ADD_CUSTOM_TARGET(release
+ COMMAND ${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE=Release ${CMAKE_SOURCE_DIR}
+ COMMENT "Switch CMAKE_BUILD_TYPE to Release"
+ )
+
+ # Only mention release and debug targets if it is actuallay possible to
+ # switch between them:
+ IF(${DEAL_II_BUILD_TYPE} MATCHES "DebugRelease")
SET(_switch_targets
- "${_switch_targets}# $ make release - to switch the build type to \"Release\"\n"
+"# $ make debug - to switch the build type to \"Debug\"
+# $ make release - to switch the build type to \"Release\"\n"
)
ENDIF()
diff --git a/deal.II/cmake/macros/macro_deal_ii_setup_target.cmake b/deal.II/cmake/macros/macro_deal_ii_setup_target.cmake
index ef17eb7e7f..e98bd25576 100644
--- a/deal.II/cmake/macros/macro_deal_ii_setup_target.cmake
+++ b/deal.II/cmake/macros/macro_deal_ii_setup_target.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# This file implements the DEAL_II_SETUP_TARGET macro, which is
@@ -68,7 +70,7 @@ MACRO(DEAL_II_SETUP_TARGET _target)
#
# If the global property DEBUG_CONFIGURATIONS is set all build
# types that (case insensitive) match one of the listed build types is
- # considered a "debug" build. Ther rest is "optimized".
+ # considered a "debug" build. The rest is "optimized".
#
# Otherwise every build type that (case insensitively) matches "debug" is
# considered a debug build.
@@ -116,4 +118,14 @@ MACRO(DEAL_II_SETUP_TARGET _target)
#
TARGET_LINK_LIBRARIES(${_target} ${DEAL_II_TARGET})
+ #
+ # If DEAL_II_STATIC_EXECUTABLE is set, switch the final link type to
+ # static:
+ #
+ IF(DEAL_II_STATIC_EXECUTABLE)
+ SET_PROPERTY(TARGET ${_target} PROPERTY
+ LINK_SEARCH_END_STATIC TRUE
+ )
+ ENDIF()
+
ENDMACRO()
diff --git a/deal.II/cmake/macros/macro_enable_if_links.cmake b/deal.II/cmake/macros/macro_enable_if_links.cmake
index e2d2a2b9e3..0f4ef07e96 100644
--- a/deal.II/cmake/macros/macro_enable_if_links.cmake
+++ b/deal.II/cmake/macros/macro_enable_if_links.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Tests whether it is possible to compile and link a dummy program with a
diff --git a/deal.II/cmake/macros/macro_enable_if_supported.cmake b/deal.II/cmake/macros/macro_enable_if_supported.cmake
index 9c98c9155e..8e26c7b0c7 100644
--- a/deal.II/cmake/macros/macro_enable_if_supported.cmake
+++ b/deal.II/cmake/macros/macro_enable_if_supported.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Tests whether the cxx compiler understands a flag.
@@ -26,6 +28,7 @@ MACRO(ENABLE_IF_SUPPORTED _variable _flag)
STRING(REGEX REPLACE "^-" "" _flag_name "${_flag_stripped}")
STRING(REPLACE "," "" _flag_name "${_flag_name}")
STRING(REPLACE "--" "__" _flag_name "${_flag_name}")
+ STRING(REPLACE "++" "__" _flag_name "${_flag_name}")
CHECK_CXX_COMPILER_FLAG(
"${_flag_stripped}"
DEAL_II_HAVE_FLAG_${_flag_name}
diff --git a/deal.II/cmake/macros/macro_enable_language_optional.cmake b/deal.II/cmake/macros/macro_enable_language_optional.cmake
new file mode 100644
index 0000000000..885b960f8c
--- /dev/null
+++ b/deal.II/cmake/macros/macro_enable_language_optional.cmake
@@ -0,0 +1,66 @@
+## ---------------------------------------------------------------------
+## $Id$
+##
+## Copyright (C) 2013 by the deal.II authors
+##
+## This file is part of the deal.II library.
+##
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
+##
+## ---------------------------------------------------------------------
+
+
+#
+# Test whether a usable language compiler is available and if yes, call
+# ENABLE_LANGUAGE(language)
+#
+# This works around a severe bug [1] in
+#
+# ENABLE_LANGUAGE(Fortran OPTIONAL)
+#
+# [1] http://public.kitware.com/Bug/view.php?id=9220
+#
+# Usage:
+# ENABLE_LANGUAGE_FORTRAN_OPTIONAL(language)
+#
+# where language is either C or Fortran
+#
+
+MACRO(ENABLE_LANGUAGE_OPTIONAL _language)
+ #
+ # Run this check exactly once:
+ #
+ IF(NOT ${_language}_CHECKED)
+ SET(${_language}_CHECKED TRUE CACHE INTERNAL "" FORCE)
+
+ SET(_tmp ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/${_language}_test)
+ file(REMOVE ${_tmp})
+
+ IF(DEFINED CMAKE_${_language}_COMPILER)
+ SET(_hint "-DCMAKE_${_language}_COMPILER=${CMAKE_${_language}_COMPILER}")
+ ENDIF()
+
+ FILE(WRITE ${_tmp}/CMakeLists.txt
+ "PROJECT(foobar ${_language})"
+ )
+
+ EXECUTE_PROCESS(
+ COMMAND ${CMAKE_COMMAND} -G${CMAKE_GENERATOR} ${_hint} .
+ WORKING_DIRECTORY ${_tmp}
+ RESULT_VARIABLE _result
+ OUTPUT_QUIET
+ ERROR_QUIET
+ )
+
+ IF("${_result}" STREQUAL "0")
+ ENABLE_LANGUAGE(${_language})
+ ELSE()
+ MESSAGE(STATUS "No working ${_language} compiler found, disabling ${_language}")
+ ENDIF()
+ ENDIF()
+ENDMACRO()
diff --git a/deal.II/cmake/macros/macro_expand_instantiations.cmake b/deal.II/cmake/macros/macro_expand_instantiations.cmake
index f083500249..5516eb01de 100644
--- a/deal.II/cmake/macros/macro_expand_instantiations.cmake
+++ b/deal.II/cmake/macros/macro_expand_instantiations.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# A macro for the inst.in file expansion
diff --git a/deal.II/cmake/macros/macro_find_package.cmake b/deal.II/cmake/macros/macro_find_package.cmake
index 01adf7a2bc..c7e65fbe85 100644
--- a/deal.II/cmake/macros/macro_find_package.cmake
+++ b/deal.II/cmake/macros/macro_find_package.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
## Copyright (C) 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# A small wrapper around FIND_PACKAGE.
diff --git a/deal.II/cmake/macros/macro_item_matches.cmake b/deal.II/cmake/macros/macro_item_matches.cmake
index 748661a2e6..3e747bb4c4 100644
--- a/deal.II/cmake/macros/macro_item_matches.cmake
+++ b/deal.II/cmake/macros/macro_item_matches.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# A small macro to test whether a given list contains an element.
diff --git a/deal.II/cmake/macros/macro_pop_test_flag.cmake b/deal.II/cmake/macros/macro_pop_test_flag.cmake
index c39529c40e..045fe43e2f 100644
--- a/deal.II/cmake/macros/macro_pop_test_flag.cmake
+++ b/deal.II/cmake/macros/macro_pop_test_flag.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# A small macro used in the platform checks to remove the right most flag in
diff --git a/deal.II/cmake/macros/macro_push_test_flag.cmake b/deal.II/cmake/macros/macro_push_test_flag.cmake
index 23f6f30f87..905ce92e16 100644
--- a/deal.II/cmake/macros/macro_push_test_flag.cmake
+++ b/deal.II/cmake/macros/macro_push_test_flag.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# A small macro used in the platform checks to easily add a flag to
diff --git a/deal.II/cmake/macros/macro_replace_flag.cmake b/deal.II/cmake/macros/macro_replace_flag.cmake
index 5ab43cac49..22dd7bafa0 100644
--- a/deal.II/cmake/macros/macro_replace_flag.cmake
+++ b/deal.II/cmake/macros/macro_replace_flag.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Replace all occurences of "${flag}" with "${replacement}" in the string
diff --git a/deal.II/cmake/macros/macro_set_if_empty.cmake b/deal.II/cmake/macros/macro_set_if_empty.cmake
index 98031b0492..43f0125445 100644
--- a/deal.II/cmake/macros/macro_set_if_empty.cmake
+++ b/deal.II/cmake/macros/macro_set_if_empty.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# If 'variable' is empty it will be set to 'value'
diff --git a/deal.II/cmake/macros/macro_split_debug_release.cmake b/deal.II/cmake/macros/macro_split_debug_release.cmake
index c39c5fb4c5..dd05b98c9c 100644
--- a/deal.II/cmake/macros/macro_split_debug_release.cmake
+++ b/deal.II/cmake/macros/macro_split_debug_release.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
## Copyright (C) 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
diff --git a/deal.II/cmake/macros/macro_strip_flag.cmake b/deal.II/cmake/macros/macro_strip_flag.cmake
index d90979ad9b..c1eb32d8e0 100644
--- a/deal.II/cmake/macros/macro_strip_flag.cmake
+++ b/deal.II/cmake/macros/macro_strip_flag.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Remove all occurences of "${flag}" in the string variable.
diff --git a/deal.II/cmake/macros/macro_switch_library_preference.cmake b/deal.II/cmake/macros/macro_switch_library_preference.cmake
new file mode 100644
index 0000000000..9f61f9b094
--- /dev/null
+++ b/deal.II/cmake/macros/macro_switch_library_preference.cmake
@@ -0,0 +1,33 @@
+## ---------------------------------------------------------------------
+## $Id$
+##
+## Copyright (C) 2013 by the deal.II authors
+##
+## This file is part of the deal.II library.
+##
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
+##
+## ---------------------------------------------------------------------
+
+#
+# This macro toggles the preference for static/shared libraries if
+# DEAL_II_PREFER_STATIC_LIBS=TRUE but the final executable will still be
+# dynamically linked, i.e. DEAL_II_STATIC_EXECUTABLE=OFF
+#
+# Usage:
+# SWITCH_LIBRARY_PREFERENCE()
+#
+
+MACRO(SWITCH_LIBRARY_PREFERENCE)
+ IF(DEAL_II_PREFER_STATIC_LIBS AND NOT DEAL_II_STATIC_EXECUTABLE)
+ #
+ # Invert the search order for libraries when DEAL_II_PREFER_STATIC_LIBS
+ # is set. This will prefer static archives instead of shared libraries:
+ LIST(REVERSE CMAKE_FIND_LIBRARY_SUFFIXES)
+ ENDIF()
+ENDMACRO()
diff --git a/deal.II/cmake/macros/macro_to_string.cmake b/deal.II/cmake/macros/macro_to_string.cmake
index 7f52449d38..95b6b06aea 100644
--- a/deal.II/cmake/macros/macro_to_string.cmake
+++ b/deal.II/cmake/macros/macro_to_string.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# A small macro used for converting a list into a space
diff --git a/deal.II/cmake/macros/macro_to_string_and_add_prefix.cmake b/deal.II/cmake/macros/macro_to_string_and_add_prefix.cmake
index 8a7214f114..f382578a97 100644
--- a/deal.II/cmake/macros/macro_to_string_and_add_prefix.cmake
+++ b/deal.II/cmake/macros/macro_to_string_and_add_prefix.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# A small macro used for converting a cmake list into a space
diff --git a/deal.II/cmake/modules/FindARPACK.cmake b/deal.II/cmake/modules/FindARPACK.cmake
index a57f307961..243899b9e0 100644
--- a/deal.II/cmake/modules/FindARPACK.cmake
+++ b/deal.II/cmake/modules/FindARPACK.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Try to find the ARPACK library
@@ -46,21 +48,23 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(ARPACK DEFAULT_MSG
LAPACK_FOUND
)
+MARK_AS_ADVANCED(
+ lapack_LIBRARY
+ atlas_LIBRARY
+ blas_LIBRARY
+ ARPACK_LIBRARY
+ )
+
IF(ARPACK_FOUND)
SET(ARPACK_LIBRARIES
- ${ARPACK_LIBRARY} ${LAPACK_LIBRARIES}
+ ${ARPACK_LIBRARY}
+ ${LAPACK_LIBRARIES}
)
SET(ARPACK_LINKER_FLAGS
${LAPACK_LINKER_FLAGS}
)
- MARK_AS_ADVANCED(
- lapack_LIBRARY
- atlas_LIBRARY
- blas_LIBRARY
- ARPACK_LIBRARY
- ARPACK_DIR
- )
+ MARK_AS_ADVANCED(ARPACK_DIR)
ELSE()
SET(ARPACK_DIR "" CACHE PATH
"An optional hint to an ARPACK installation"
diff --git a/deal.II/cmake/modules/FindHDF5.cmake b/deal.II/cmake/modules/FindHDF5.cmake
index 12675f7ed2..bac83af2d6 100644
--- a/deal.II/cmake/modules/FindHDF5.cmake
+++ b/deal.II/cmake/modules/FindHDF5.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Try to find the HDF5 library
@@ -47,9 +49,15 @@ FIND_LIBRARY(HDF5_HL_LIBRARY NAMES hdf5_hl
lib${LIB_SUFFIX} lib64 lib
)
-SET(_output ${HDF5_LIBRARY} ${HDF5_HL_LIBRARY})
+SET(_output ${HDF5_HL_LIBRARY} ${HDF5_LIBRARY})
FIND_PACKAGE_HANDLE_STANDARD_ARGS(HDF5 DEFAULT_MSG
_output # Cosmetic: Gives nice output
+ HDF5_HL_LIBRARY
+ HDF5_LIBRARY
+ HDF5_INCLUDE_DIR
+ )
+
+MARK_AS_ADVANCED(
HDF5_LIBRARY
HDF5_HL_LIBRARY
HDF5_INCLUDE_DIR
@@ -60,8 +68,9 @@ IF(HDF5_FOUND)
${HDF5_INCLUDE_DIR}
)
SET(HDF5_LIBRARIES
- ${HDF5_LIBRARY}
${HDF5_HL_LIBRARY}
+ ${HDF5_LIBRARY}
+ ${MPI_C_LIBRARIES} # for good measure
)
#
@@ -75,12 +84,7 @@ IF(HDF5_FOUND)
SET(HDF5_WITH_MPI TRUE)
ENDIF()
- MARK_AS_ADVANCED(
- HDF5_DIR
- HDF5_LIBRARY
- HDF5_HL_LIBRARY
- HDF5_INCLUDE_DIR
- )
+ MARK_AS_ADVANCED(HDF5_DIR)
ELSE()
SET(HDF5_DIR "" CACHE PATH
"An optional hint to an hdf5 directory"
diff --git a/deal.II/cmake/modules/FindMETIS.cmake b/deal.II/cmake/modules/FindMETIS.cmake
index b0a92789ee..f0cfa9eba7 100644
--- a/deal.II/cmake/modules/FindMETIS.cmake
+++ b/deal.II/cmake/modules/FindMETIS.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Try to find the (serial) METIS library
@@ -26,8 +28,10 @@ INCLUDE(FindPackageHandleStandardArgs)
SET_IF_EMPTY(METIS_DIR "$ENV{METIS_DIR}")
#
-# TODO: Metis is usually pretty self contained. So no external dependencies
-# so far... But there could be dependencies on pcre and mpi...
+# Metis is usually pretty self contained. So no external dependencies
+# so far. But there could be dependencies on pcre and mpi...
+#
+# Link in MPI unconditionally (if found).
#
FIND_PATH(METIS_INCLUDE_DIR metis.h
@@ -47,13 +51,37 @@ FIND_LIBRARY(METIS_LIBRARY
build/${CMAKE_CXX_PLATFORM_ID}-${CMAKE_SYSTEM_PROCESSOR}/libmetis
)
+FIND_LIBRARY(PARMETIS_LIBRARY
+ NAMES parmetis
+ HINTS
+ ${METIS_DIR}
+ PATH_SUFFIXES
+ lib${LIB_SUFFIX} lib64 lib
+ # This is a hint, isn't it?
+ build/${CMAKE_CXX_PLATFORM_ID}-${CMAKE_SYSTEM_PROCESSOR}/libmetis
+ )
+
FIND_PACKAGE_HANDLE_STANDARD_ARGS(METIS DEFAULT_MSG
METIS_LIBRARY
METIS_INCLUDE_DIR
)
+MARK_AS_ADVANCED(
+ METIS_LIBRARY
+ PARMETIS_LIBRARY
+ METIS_INCLUDE_DIR
+ )
+
IF(METIS_FOUND)
- SET(METIS_LIBRARIES ${METIS_LIBRARY})
+
+ IF(NOT PARMETIS_LIBRARY MATCHES "-NOTFOUND")
+ SET(METIS_LIBRARIES ${PARMETIS_LIBRARY})
+ ENDIF()
+
+ LIST(APPEND METIS_LIBRARIES
+ ${METIS_LIBRARY}
+ ${MPI_C_LIBRARIES} # for good measure
+ )
SET(METIS_INCLUDE_DIRS ${METIS_INCLUDE_DIR})
#
@@ -67,11 +95,7 @@ IF(METIS_FOUND)
REGEX "METIS_VER_MINOR")
STRING(REGEX REPLACE "^.*METIS_VER_MINOR.* ([0-9]+).*" "\\1" METIS_MINOR "${METIS_MINOR_STRING}")
- MARK_AS_ADVANCED(
- METIS_LIBRARY
- METIS_INCLUDE_DIR
- METIS_DIR
- )
+ MARK_AS_ADVANCED(METIS_DIR)
ELSE()
SET(METIS_DIR "" CACHE PATH
"An optional hint to a metis directory"
diff --git a/deal.II/cmake/modules/FindMUMPS.cmake b/deal.II/cmake/modules/FindMUMPS.cmake
index 0c3bcf2952..24e48975de 100644
--- a/deal.II/cmake/modules/FindMUMPS.cmake
+++ b/deal.II/cmake/modules/FindMUMPS.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Try to find the MUMPS library
@@ -31,11 +33,8 @@ INCLUDE(FindPackageHandleStandardArgs)
# (We'll rely on the user of FindMUMPS, setting up mpi *cough*)
#
FIND_PACKAGE(SCALAPACK) # which will also include lapack and blas
+FIND_PACKAGE(METIS)
-#
-# TODO: mumps might link to scotch and or metis as well. Ignore this for
-# now. :-]
-#
FIND_PATH(MUMPS_INCLUDE_DIR dmumps_c.h
HINTS
@@ -62,7 +61,7 @@ FIND_LIBRARY(MUMPS_COMMON_LIBRARY
# If we can find libport.so (or similiar), link it in as well:
#
FIND_LIBRARY(PORD_LIBRARY
- NAMES port
+ NAMES pord
HINTS
${MUMPS_DIR}
PATH_SUFFIXES lib${LIB_SUFFIX} lib64 lib
@@ -82,6 +81,13 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(MUMPS DEFAULT_MSG
SCALAPACK_FOUND
)
+MARK_AS_ADVANCED(
+ DMUMPS_LIBRARY
+ MUMPS_COMMON_LIBRARY
+ MUMPS_INCLUDE_DIR
+ PORT_LIBRARY
+ )
+
IF(MUMPS_FOUND)
SET(MUMPS_INCLUDE_DIRS
${MUMPS_INCLUDE_DIR}
@@ -89,19 +95,16 @@ IF(MUMPS_FOUND)
SET(MUMPS_LIBRARIES
${DMUMPS_LIBRARY}
${MUMPS_COMMON_LIBRARY}
+ ${PORD_LIBRARY}
${SCALAPACK_LIBRARIES}
- ${MPI_CXX_LIBRARIES} # For good measure
+ ${METIS_LIBRARIES} # for good measure
+ ${MPI_Fortran_LIBRARIES} # for good measure
)
SET(MUMPS_LINKER_FLAGS
${SCALAPACK_LINKER_FLAGS}
)
- MARK_AS_ADVANCED(
- DMUMPS_LIBRARY
- MUMPS_COMMON_LIBRARY
- MUMPS_INCLUDE_DIR
- PORT_LIBRARY
- )
+ MARK_AS_ADVANCED(MUMPS_DIR)
ELSE()
SET(MUMPS_DIR "" CACHE PATH
"An optional hint to a mumps directory"
diff --git a/deal.II/cmake/modules/FindNETCDF.cmake b/deal.II/cmake/modules/FindNETCDF.cmake
index 0ae1cf535c..066decd95e 100644
--- a/deal.II/cmake/modules/FindNETCDF.cmake
+++ b/deal.II/cmake/modules/FindNETCDF.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Try to find the NETCDF C and C++ libraries
@@ -61,6 +63,12 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(NETCDF DEFAULT_MSG
NETCDF_INCLUDE_DIR
)
+MARK_AS_ADVANCED(
+ NETCDF_CPLUSPLUS_LIBRARY
+ NETCDF_C_LIBRARY
+ NETCDF_INCLUDE_DIR
+ )
+
IF(NETCDF_FOUND)
SET(NETCDF_INCLUDE_DIRS
${NETCDF_INCLUDE_DIR}
@@ -70,12 +78,7 @@ IF(NETCDF_FOUND)
${NETCDF_C_LIBRARY}
)
- MARK_AS_ADVANCED(
- NETCDF_CPLUSPLUS_LIBRARY
- NETCDF_C_LIBRARY
- NETCDF_INCLUDE_DIR
- NETCDF_DIR
- )
+ MARK_AS_ADVANCED(NETCDF_DIR)
ELSE()
SET(NETCDF_DIR "" CACHE PATH
"An optional hint to a NETCDF installation"
diff --git a/deal.II/cmake/modules/FindP4EST.cmake b/deal.II/cmake/modules/FindP4EST.cmake
index e2c0727dc8..06e031198a 100644
--- a/deal.II/cmake/modules/FindP4EST.cmake
+++ b/deal.II/cmake/modules/FindP4EST.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Try to find the P4EST library
@@ -82,16 +84,26 @@ FIND_LIBRARY(SC_LIBRARY
SET(_output ${P4EST_LIBRARY} ${SC_LIBRARY})
FIND_PACKAGE_HANDLE_STANDARD_ARGS(P4EST DEFAULT_MSG
+ _output # Cosmetic: Gives nice output
P4EST_LIBRARY
SC_LIBRARY
P4EST_INCLUDE_DIR
SC_INCLUDE_DIR
)
+MARK_AS_ADVANCED(
+ P4EST_LIBRARY
+ P4EST_INCLUDE_DIR
+ SC_LIBRARY
+ SC_INCLUDE_DIR
+ )
+
IF(P4EST_FOUND)
SET(P4EST_LIBRARIES
${P4EST_LIBRARY}
${SC_LIBRARY}
+ ${LAPACK_LIBRARIES} # for good measure
+ ${MPI_C_LIBRARIES} # for good measure
)
SET(P4EST_INCLUDE_DIRS
${P4EST_INCLUDE_DIR}
@@ -109,13 +121,7 @@ IF(P4EST_FOUND)
SET(P4EST_WITH_MPI TRUE)
ENDIF()
- MARK_AS_ADVANCED(
- P4EST_DIR
- P4EST_LIBRARY
- P4EST_INCLUDE_DIR
- SC_LIBRARY
- SC_INCLUDE_DIR
- )
+ MARK_AS_ADVANCED(P4EST_DIR)
ELSE()
SET(P4EST_DIR "" CACHE PATH
"An optional hint to a p4est installation/directory"
diff --git a/deal.II/cmake/modules/FindPETSC.cmake b/deal.II/cmake/modules/FindPETSC.cmake
index e61211b6f0..119fa42026 100644
--- a/deal.II/cmake/modules/FindPETSC.cmake
+++ b/deal.II/cmake/modules/FindPETSC.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Try to find the petsc library
@@ -26,6 +28,7 @@
# PETSC_VERSION_SUBMINOR
# PETSC_VERSION_PATCH
# PETSC_WITH_MPIUNI
+# PETSC_WITH_64BIT_INDICES
#
INCLUDE(FindPackageHandleStandardArgs)
@@ -51,8 +54,8 @@ FIND_LIBRARY(PETSC_LIBRARY
FIND_FILE(PETSC_PETSCVARIABLES
NAMES petscvariables
HINTS
- ${PETSC_DIR}
${PETSC_DIR}/${PETSC_ARCH}
+ ${PETSC_DIR}
PATH_SUFFIXES conf
)
@@ -74,7 +77,7 @@ IF(NOT PETSC_PETSCVARIABLES MATCHES "-NOTFOUND")
IF(NOT _token MATCHES "(petsc|stdc\\+\\+|gcc_s)")
FIND_LIBRARY(PETSC_LIBRARY_${_token}
NAMES ${_token}
- HINTS ${_hintes}
+ HINTS ${_hints}
)
IF(NOT PETSC_LIBRARY_${_token} MATCHES "-NOTFOUND")
LIST(APPEND _petsc_libraries ${PETSC_LIBRARY_${_token}})
@@ -129,6 +132,14 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(PETSC DEFAULT_MSG
PETSC_INCLUDE_DIR_COMMON
)
+MARK_AS_ADVANCED(
+ PETSC_INCLUDE_DIR_ARCH
+ PETSC_INCLUDE_DIR_COMMON
+ PETSC_INCLUDE_DIRS
+ PETSC_LIBRARY
+ PETSC_PETSCVARIABLES
+ )
+
IF(PETSC_FOUND)
SET(PETSC_LIBRARIES
${PETSC_LIBRARY}
@@ -153,6 +164,17 @@ IF(PETSC_FOUND)
SET(PETSC_WITH_MPIUNI TRUE)
ENDIF()
+ #
+ # Is petsc compiled with support for 64BIT_INDICES?
+ #
+ FILE(STRINGS "${PETSC_PETSCCONF_H}" PETSC_64BIT_INDICES_STRING
+ REGEX "#define.*PETSC_USE_64BIT_INDICES 1")
+ IF("${PETSC_64BIT_INDICES_STRING}" STREQUAL "")
+ SET(PETSC_WITH_64BIT_INDICES FALSE)
+ ELSE()
+ SET(PETSC_WITH_64BIT_INDICES TRUE)
+ ENDIF()
+
FILE(STRINGS "${PETSC_PETSCVERSION_H}" PETSC_VERSION_MAJOR_STRING
REGEX "#define.*PETSC_VERSION_MAJOR")
STRING(REGEX REPLACE "^.*PETSC_VERSION_MAJOR.*([0-9]+).*" "\\1"
@@ -179,15 +201,7 @@ IF(PETSC_FOUND)
SET(PETSC_VERSION "${PETSC_VERSION_MAJOR}.${PETSC_VERSION_MINOR}.${PETSC_VERSION_SUBMINOR}")
- MARK_AS_ADVANCED(
- PETSC_ARCH
- PETSC_DIR
- PETSC_INCLUDE_DIR_ARCH
- PETSC_INCLUDE_DIR_COMMON
- PETSC_INCLUDE_DIRS
- PETSC_LIBRARY
- PETSC_PETSCVARIABLES
- )
+ MARK_AS_ADVANCED(PETSC_ARCH PETSC_DIR)
ELSE()
SET(PETSC_DIR "" CACHE PATH
"An optional hint to a PETSc directory"
diff --git a/deal.II/cmake/modules/FindSCALAPACK.cmake b/deal.II/cmake/modules/FindSCALAPACK.cmake
index 5b06ce3233..4cd616dbae 100644
--- a/deal.II/cmake/modules/FindSCALAPACK.cmake
+++ b/deal.II/cmake/modules/FindSCALAPACK.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Try to find the SCALAPACK library
@@ -49,7 +51,7 @@ FIND_PACKAGE(LAPACK)
FOREACH(_lib blacs blacsCinit blacsF77init)
STRING(TOUPPER "${_lib}" _lib_upper)
FIND_LIBRARY(${_lib_upper}_LIBRARY
- NAMES ${_lib} ${_lib}_MPI-LINUX-0
+ NAMES ${_lib} ${_lib}_MPI-LINUX-0 ${_lib}_MPI-DARWIN-0
HINTS
${BLACS_DIR}
${SCALAPACK_DIR}
@@ -71,27 +73,28 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(SCALAPACK DEFAULT_MSG
LAPACK_FOUND
)
+MARK_AS_ADVANCED(
+ lapack_LIBRARY
+ atlas_LIBRARY
+ blas_LIBRARY
+ SCALAPACK_LIBRARY
+ BLACS_LIBRARY
+ BLACSCINIT_LIBRARY
+ BLACSF77INIT_LIBRARY
+ )
+
IF(SCALAPACK_FOUND)
SET(SCALAPACK_LIBRARIES
${SCALAPACK_LIBRARY}
${LAPACK_LIBRARIES}
${BLACS_LIBRARIES}
+ ${MPI_Fortran_LIBRARIES} # for good measure
)
SET(SCALAPACK_LINKER_FLAGS
${LAPACK_LINKER_FLAGS}
)
- MARK_AS_ADVANCED(
- lapack_LIBRARY
- atlas_LIBRARY
- blas_LIBRARY
- SCALAPACK_DIR
- SCALAPACK_LIBRARY
- BLACS_DIR
- BLACS_LIBRARY
- BLACSCINIT_LIBRARY
- BLACSF77INIT_LIBRARY
- )
+ MARK_AS_ADVANCED(SCALAPACK_DIR BLACS_DIR)
ELSE()
SET(SCALAPACK_DIR "" CACHE PATH
"An optional hint to a SCALAPACK directory"
diff --git a/deal.II/cmake/modules/FindSLEPC.cmake b/deal.II/cmake/modules/FindSLEPC.cmake
index b4c5c04676..ddb706d05b 100644
--- a/deal.II/cmake/modules/FindSLEPC.cmake
+++ b/deal.II/cmake/modules/FindSLEPC.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Try to find the SLEPC library
@@ -75,6 +77,14 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(SLEPC DEFAULT_MSG
PETSC_FOUND
)
+MARK_AS_ADVANCED(
+ SLEPC_DIR
+ SLEPC_INCLUDE_DIR_ARCH
+ SLEPC_INCLUDE_DIR_COMMON
+ SLEPC_INCLUDE_DIRS
+ SLEPC_LIBRARY
+ )
+
IF(SLEPC_FOUND)
SET(SLEPC_INCLUDE_DIRS
${SLEPC_INCLUDE_DIR_ARCH}
@@ -113,13 +123,7 @@ IF(SLEPC_FOUND)
SET(SLEPC_VERSION "${SLEPC_VERSION_MAJOR}.${SLEPC_VERSION_MINOR}.${SLEPC_VERSION_SUBMINOR}")
- MARK_AS_ADVANCED(
- SLEPC_DIR
- SLEPC_INCLUDE_DIR_ARCH
- SLEPC_INCLUDE_DIR_COMMON
- SLEPC_INCLUDE_DIRS
- SLEPC_LIBRARY
- )
+ MARK_AS_ADVANCED(SLEPC_DIR)
ELSE()
SET(SLEPC_DIR "" CACHE PATH
"An optional hint to a SLEPC directory"
diff --git a/deal.II/cmake/modules/FindTBB.cmake b/deal.II/cmake/modules/FindTBB.cmake
index b3bc3ad288..4c45373cec 100644
--- a/deal.II/cmake/modules/FindTBB.cmake
+++ b/deal.II/cmake/modules/FindTBB.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Try to find the Threading Building Blocks library
@@ -57,8 +59,13 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(TBB DEFAULT_MSG
TBB_INCLUDE_DIR
)
+MARK_AS_ADVANCED(
+ TBB_LIBRARY
+ TBB_DEBUG_LIBRARY
+ TBB_INCLUDE_DIR
+ )
+
IF(TBB_FOUND)
- MARK_AS_ADVANCED(TBB_LIBRARY TBB_DEBUG_LIBRARY TBB_INCLUDE_DIR)
IF(NOT TBB_DEBUG_LIBRARY MATCHES "-NOTFOUND")
SET(TBB_WITH_DEBUGLIB TRUE)
@@ -69,8 +76,8 @@ IF(TBB_FOUND)
SET(TBB_INCLUDE_DIRS ${TBB_INCLUDE_DIR})
+ MARK_AS_ADVANCED(TBB_DIR)
ELSE()
-
SET(TBB_DIR "" CACHE PATH
"An optional hint to a TBB installation"
)
diff --git a/deal.II/cmake/modules/FindTRILINOS.cmake b/deal.II/cmake/modules/FindTRILINOS.cmake
index 0c30184f78..f5f8d2240d 100644
--- a/deal.II/cmake/modules/FindTRILINOS.cmake
+++ b/deal.II/cmake/modules/FindTRILINOS.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Try to find the Trilinos library
@@ -76,11 +78,21 @@ FOREACH(_library ${Trilinos_LIBRARIES})
UNSET(TRILINOS_LIBRARY_${_library} CACHE)
ENDFOREACH()
+#
+# Add the link interface:
+#
+LIST(APPEND TRILINOS_LIBRARIES
+ ${Trilinos_TPL_LIBRARIES}
+ ${MPI_CXX_LIBRARIES} # for good measure
+ )
+
FIND_PACKAGE_HANDLE_STANDARD_ARGS(TRILINOS DEFAULT_MSG
TRILINOS_LIBRARIES # cosmetic: Gives nice output
TRILINOS_CONFIG_FOUND
)
+MARK_AS_ADVANCED(TRILINOS_CONFIG_DIR)
+
IF(TRILINOS_FOUND)
#
@@ -99,7 +111,7 @@ IF(TRILINOS_FOUND)
TRILINOS_VERSION_SUBMINOR "${Trilinos_VERSION}")
#
- # Determine whether Trilinos was configured with MPI:
+ # Determine whether Trilinos was configured with MPI and 64bit indices:
#
FIND_FILE(EPETRA_CONFIG_H Epetra_config.h
HINTS ${TRILINOS_INCLUDE_DIRS}
@@ -117,16 +129,25 @@ IF(TRILINOS_FOUND)
ELSE()
SET(TRILINOS_WITH_MPI TRUE)
ENDIF()
+ FILE(STRINGS "${EPETRA_CONFIG_H}" EPETRA_32BIT_STRING
+ REGEX "#define EPETRA_NO_32BIT_GLOBAL_INDICES")
+ IF("${EPETRA_64BIT_STRING}" STREQUAL "")
+ SET(TRILINOS_WITH_NO_32BITS_INDICES TRUE)
+ ELSE()
+ SET(TRILINOS_WITH_NO_32BITS_INDICES FALSE)
+ ENDIF()
+ FILE(STRINGS "${EPETRA_CONFIG_H}" EPETRA_64BIT_STRING
+ REGEX "#define EPETRA_NO_64BIT_GLOBAL_INDICES")
+ IF("${EPETRA_64BIT_STRING}" STREQUAL "")
+ SET(TRILINOS_WITH_NO_64BITS_INDICES TRUE)
+ ELSE()
+ SET(TRILINOS_WITH_NO_64BITS_INDICES FALSE)
+ ENDIF()
UNSET(EPETRA_CONFIG_H CACHE)
- MARK_AS_ADVANCED(
- TRILINOS_DIR
- TRILINOS_CONFIG_DIR
- )
-
+ MARK_AS_ADVANCED(TRILINOS_DIR)
ELSE()
-
SET(TRILINOS_DIR "" CACHE PATH
"An optional hint to a Trilinos installation"
)
diff --git a/deal.II/cmake/modules/FindUMFPACK.cmake b/deal.II/cmake/modules/FindUMFPACK.cmake
index 029e8708db..378b68cb56 100644
--- a/deal.II/cmake/modules/FindUMFPACK.cmake
+++ b/deal.II/cmake/modules/FindUMFPACK.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Try to find the UMFPACK library
@@ -35,6 +37,7 @@ ENDFOREACH()
# now.
#
FIND_PACKAGE(LAPACK)
+FIND_PACKAGE(METIS)
#
# Two macros to make life easier:
@@ -103,9 +106,11 @@ FIND_UMFPACK_LIBRARY(UMFPACK umfpack REQUIRED)
FIND_UMFPACK_LIBRARY(AMD amd REQUIRED)
FIND_UMFPACK_LIBRARY(CHOLMOD cholmod)
FIND_UMFPACK_LIBRARY(COLAMD colamd)
+FIND_UMFPACK_LIBRARY(CCOLAMD ccolamd)
+FIND_UMFPACK_LIBRARY(CAMD camd)
FIND_UMFPACK_LIBRARY(SuiteSparse_config suitesparseconfig)
-SET(_output ${UMFPACK_LIBRARY} ${CHOLMOD_LIBRARY} ${COLAMD_LIBRARY} ${AMD_LIBRARY} ${SuiteSparse_config_LIBRARY})
+SET(_output ${UMFPACK_LIBRARY} ${CHOLMOD_LIBRARY} ${CCOLAMD_LIBRARY} ${COLAMD_LIBRARY} ${CAMD_LIBRARY} ${AMD_LIBRARY} ${SuiteSparse_config_LIBRARY})
FIND_PACKAGE_HANDLE_STANDARD_ARGS(UMFPACK DEFAULT_MSG
_output # Cosmetic: Gives nice output
UMFPACK_LIBRARY
@@ -116,27 +121,54 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(UMFPACK DEFAULT_MSG
LAPACK_FOUND
)
+MARK_AS_ADVANCED(
+ AMD_INCLUDE_DIR
+ AMD_LIBRARY
+ atlas_LIBRARY
+ blas_LIBRARY
+ CAMD_LIBRARY
+ CHOLMOD_LIBRARY
+ CCOLAMD_LIBRARY
+ COLAMD_LIBRARY
+ SuiteSparse_config_INCLUDE_DIR
+ SuiteSparse_config_LIBRARY
+ UMFPACK_INCLUDE_DIR
+ UMFPACK_LIBRARY
+ )
+
IF(UMFPACK_FOUND)
SET(UMFPACK_LIBRARIES
${UMFPACK_LIBRARY}
${CHOLMOD_LIBRARY}
+ ${CCOLAMD_LIBRARY}
${COLAMD_LIBRARY}
+ ${CAMD_LIBRARY}
${AMD_LIBRARY}
${SuiteSparse_config_LIBRARY}
- ${LAPACK_LIBRARIES}
)
+ #
+ # For good measure:
+ #
+ IF(METIS_FOUND)
+ LIST(APPEND UMFPACK_LIBRARIES ${METIS_LIBRARIES})
+ ENDIF()
+
+ LIST(APPEND UMFPACK_LIBRARIES ${LAPACK_LIBRARIES})
+
#
# Add rt to the link interface as well (for whatever reason,
# libsuitesparse.so depends on clock_gettime but the shared
# lib does not record its dependence on librt.so as evidenced
# by ldd :-( ):
#
- FIND_LIBRARY(rt_lib NAMES rt)
- MARK_AS_ADVANCED(rt_lib)
- IF(NOT rt_lib MATCHES "-NOTFOUND")
- LIST(APPEND UMFPACK_LIBRARIES ${rt_lib})
+ SWITCH_LIBRARY_PREFERENCE()
+ FIND_LIBRARY(rt_LIBRARY NAMES rt)
+ SWITCH_LIBRARY_PREFERENCE()
+ MARK_AS_ADVANCED(rt_LIBRARY)
+ IF(NOT rt_LIBRARY MATCHES "-NOTFOUND")
+ LIST(APPEND UMFPACK_LIBRARIES ${rt_LIBRARY})
ENDIF()
SET(UMFPACK_INCLUDE_DIRS
@@ -148,20 +180,7 @@ IF(UMFPACK_FOUND)
${LAPACK_LINKER_FLAGS}
)
- MARK_AS_ADVANCED(
- atlas_LIBRARY
- blas_LIBRARY
- UMFPACK_LIBRARY
- AMD_LIBRARY
- CHOLMOD_LIBRARY
- COLAMD_LIBRARY
- SuiteSparse_config_LIBRARY
- UMFPACK_INCLUDE_DIR
- AMD_INCLUDE_DIR
- SuiteSparse_config_INCLUDE_DIR
- UMFPACK_DIR
- SUITESPARSE_DIR
- )
+ MARK_AS_ADVANCED(UMFPACK_DIR SUITESPARSE_DIR)
ELSE()
SET(UMFPACK_DIR "" CACHE PATH
"An optional hint to an UMFPACK directory"
diff --git a/deal.II/cmake/scripts/CMakeLists.txt b/deal.II/cmake/scripts/CMakeLists.txt
index 80272980de..5ac93c43cc 100644
--- a/deal.II/cmake/scripts/CMakeLists.txt
+++ b/deal.II/cmake/scripts/CMakeLists.txt
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
ADD_EXECUTABLE(expand_instantiations expand_instantiations.cc)
IF(NOT CMAKE_CROSSCOMPILING)
@@ -49,12 +51,31 @@ IF(DEAL_II_COMPONENT_COMPAT_FILES)
ADD_EXECUTABLE(report_features
${CMAKE_CURRENT_BINARY_DIR}/report_features.cc
)
+
+ #
+ # Link report_features in the same way as the library/final executable:
+ #
TARGET_LINK_LIBRARIES(report_features ${DEAL_II_EXTERNAL_LIBRARIES})
SET_TARGET_PROPERTIES(report_features
PROPERTIES
- LINK_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}"
+ LINK_FLAGS "${DEAL_II_LINKER_FLAGS}"
COMPILE_DEFINITIONS "${DEAL_II_DEFINITIONS}"
)
+ IF(DEAL_II_STATIC_EXECUTABLE)
+ SET_PROPERTY(TARGET report_features PROPERTY
+ LINK_SEARCH_END_STATIC TRUE
+ )
+ ENDIF()
+
+ #
+ # A custom target with the same name as the component:
+ #
+ ADD_CUSTOM_TARGET(compat_files
+ DEPENDS
+ expand_instantiations
+ make_dependencies
+ report_features
+ )
IF(NOT CMAKE_CROSSCOMPILING)
ADD_CUSTOM_TARGET(run_report_features COMMAND report_features)
diff --git a/deal.II/cmake/scripts/expand_instantiations.cc b/deal.II/cmake/scripts/expand_instantiations.cc
index 8f62d4ed71..6f89828b70 100644
--- a/deal.II/cmake/scripts/expand_instantiations.cc
+++ b/deal.II/cmake/scripts/expand_instantiations.cc
@@ -1,15 +1,19 @@
-//---------------------------- expand_instantiations.cc -------------------
-// $Id$
-// Version: $Name$
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2007, 2008, 2009, 2010, 2011 by the deal.II authors
+// Copyright (C) 2007 - 2013 by the deal.II authors
//
-// This file is subject to QPL and may not be distributed
-// without copyright and license information. Please refer
-// to the file deal.II/doc/license.html for the text and
-// further information on this license.
+// This file is part of the deal.II library.
//
-//---------------------------- expand_instantiations.cc -------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
// This is the program that we use to generate explicit instantiations for a
// variety of template arguments. It takes two kinds of input files. The first
diff --git a/deal.II/cmake/scripts/make_dependencies.cc b/deal.II/cmake/scripts/make_dependencies.cc
index 1e6e2bb2f6..b7796338bf 100644
--- a/deal.II/cmake/scripts/make_dependencies.cc
+++ b/deal.II/cmake/scripts/make_dependencies.cc
@@ -1,15 +1,19 @@
-//---------------------------- make_dependencies.cc ------------------------
-// $Id$
-// Version: $Name$
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2003, 2007, 2008, 2010, 2011 by the deal.II authors
+// Copyright (C) 2003 - 2013 by the deal.II authors
//
-// This file is subject to QPL and may not be distributed
-// without copyright and license information. Please refer
-// to the file deal.II/doc/license.html for the text and
-// further information on this license.
+// This file is part of the deal.II library.
//
-//---------------------------- make_dependencies.cc ------------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
// Make a dependency file tree
// usage: make_depencies -Iinc_path1 -Iinc_path2 ... -Bbasepath files
diff --git a/deal.II/cmake/scripts/report_features.cc.in b/deal.II/cmake/scripts/report_features.cc.in
index 6e9570453f..457d226e04 100644
--- a/deal.II/cmake/scripts/report_features.cc.in
+++ b/deal.II/cmake/scripts/report_features.cc.in
@@ -1,15 +1,18 @@
-//----------------------------------------------------------------------
-// $Id$
-// Version: $Name$
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2010, 2011, 2012, 2013 by the deal.II authors
+// Copyright (C) 2010 - 2013 by the deal.II authors
//
-// This file is subject to QPL and may not be distributed
-// without copyright and license information. Please refer
-// to the file deal.II/doc/license.html for the text and
-// further information on this license.
+// This file is part of the deal.II library.
//
-//----------------------------------------------------------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
#include
@@ -61,7 +64,7 @@ int main()
if(${_shared_libs})
std::cout << "dealii-feature: shared_libs=yes" << std::endl;
else
- std::cout << "dealii-feature: shared_libs=yes" << std::endl;
+ std::cout << "dealii-feature: shared_libs=no" << std::endl;
#ifdef DEAL_II_WITH_ARPACK
std::cout << "dealii-feature: ARPACK=yes" << std::endl;
@@ -166,4 +169,7 @@ std::cout << "dealii-feature: BOOST="
std::cout << "dealii-feature: LibZ=yes" << std::endl;
#endif
+#ifdef DEAL_II_WITH_64BIT_INDICES
+ std::cout << "dealii-feature: 64bit_indices=yes" <
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Setup cached variables (prior to the PROJECT(deal.II) call)
@@ -30,30 +32,33 @@
#
# Options regarding compilation and linking:
#
+# CMAKE_BUILD_TYPE
# DEAL_II_ALLOW_PLATFORM_INTROSPECTION
# DEAL_II_SETUP_DEFAULT_COMPILER_FLAGS
-# CMAKE_BUILD_TYPE
# BUILD_SHARED_LIBS
+# DEAL_II_PREFER_STATIC_LIBS
+# DEAL_II_STATIC_EXECUTABLE
# CMAKE_INSTALL_RPATH_USE_LINK_PATH
-# CMAKE_C_FLAGS
+# CMAKE_C_FLAGS *)
# CMAKE_CXX_FLAGS *)
-# CMAKE_SHARED_LINKER_FLAGS *)
+# DEAL_II_LINKER_FLAGS *)
# DEAL_II_CXX_FLAGS_DEBUG
-# DEAL_II_SHARED_LINKER_FLAGS_DEBUG
+# DEAL_II_LINKER_FLAGS_DEBUG
# DEAL_II_CXX_FLAGS_RELEASE
-# DEAL_II_SHARED_LINKER_FLAGS_RELEASE
+# DEAL_II_LINKER_FLAGS_RELEASE
+# DEAL_II_WITH_64BIT_INDICES
#
# *) May also be set via environment variable (CFLAGS, CXXFLAGS, LDFLAGS)
-# (nonempty cached variable has precedence will not be overwritten by
-# environment)
+# (a nonempty cached variable has precedence and will not be
+# overwritten by environment)
#
-###########################################################################
-# #
-# General configuration options: #
-# #
-###########################################################################
+########################################################################
+# #
+# General configuration options: #
+# #
+########################################################################
If(DEAL_II_HAVE_BUNDLED_DIRECTORY)
OPTION(DEAL_II_ALLOW_BUNDLED
@@ -108,23 +113,11 @@ IF("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
ENDIF()
-###########################################################################
-# #
-# Compilation and linking: #
-# #
-###########################################################################
-
-OPTION(DEAL_II_ALLOW_PLATFORM_INTROSPECTION
- "Allow platform introspection for CPU command set, SSE and AVX"
- ON
- )
-MARK_AS_ADVANCED(DEAL_II_ALLOW_PLATFORM_INTROSPECTION)
-
-OPTION(DEAL_II_SETUP_DEFAULT_COMPILER_FLAGS
- "Configure sensible default CFLAGS and CXXFLAGS depending on platform, compiler and build target."
- ON
- )
-MARK_AS_ADVANCED(DEAL_II_SETUP_DEFAULT_COMPILER_FLAGS)
+########################################################################
+# #
+# Compilation and linking: #
+# #
+########################################################################
#
# Setup CMAKE_BUILD_TYPE:
@@ -147,10 +140,46 @@ IF( NOT "${CMAKE_BUILD_TYPE}" STREQUAL "Release" AND
)
ENDIF()
+
+OPTION(DEAL_II_ALLOW_PLATFORM_INTROSPECTION
+ "Allow platform introspection for CPU command set, SSE and AVX"
+ ON
+ )
+MARK_AS_ADVANCED(DEAL_II_ALLOW_PLATFORM_INTROSPECTION)
+
+OPTION(DEAL_II_SETUP_DEFAULT_COMPILER_FLAGS
+ "Configure sensible default CFLAGS and CXXFLAGS depending on platform, compiler and build target."
+ ON
+ )
+MARK_AS_ADVANCED(DEAL_II_SETUP_DEFAULT_COMPILER_FLAGS)
+
SET(BUILD_SHARED_LIBS "ON" CACHE BOOL
"Build a shared library"
)
-MARK_AS_ADVANCED(BUILD_SHARED_LIBS)
+
+OPTION(DEAL_II_PREFER_STATIC_LIBS
+ "Prefer static libraries over dynamic libraries when searching for features and corresponding link interface"
+ OFF
+ )
+MARK_AS_ADVANCED(DEAL_II_PREFER_STATIC_LIBS)
+
+OPTION(DEAL_II_STATIC_EXECUTABLE
+ "Provide a link interface that is suitable for static linkage of executables. Enabling this option forces BUILD_SHARED_LIBS=OFF and DEAL_II_PREFER_STATIC_LIBS=ON"
+ OFF
+ )
+MARK_AS_ADVANCED(DEAL_II_STATIC_EXECUTABLE)
+
+IF(DEAL_II_STATIC_EXECUTABLE)
+ SET(BUILD_SHARED_LIBS "OFF" CACHE BOOL
+ "Build a shared library"
+ FORCE
+ )
+ SET(DEAL_II_PREFER_STATIC_LIBS "ON" CACHE BOOL
+ "Prefer static libraries over dynamic libraries when searching for features and corresponding link interface"
+ FORCE
+ )
+ENDIF()
+
#
# Set CMAKE_INSTALL_RPATH_USE_LINK_PATH to default to ON and promote to
@@ -161,6 +190,18 @@ SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH "ON" CACHE BOOL
)
MARK_AS_ADVANCED(CMAKE_INSTALL_RPATH_USE_LINK_PATH)
+
+#
+# Define the variable that defines whether we should use 32- or 64-bit
+# global DoF indices.
+#
+OPTION(DEAL_II_WITH_64BIT_INDICES
+ "If set to ON, then use 64-bit data types to represent global degree of freedom indices. The default is to OFF. You only want to set this to ON if you will solve problems with more than 2^31 (approximately 2 billion) unknowns. If set to ON, you also need to ensure that both Trilinos and/or PETSc support 64-bit indices."
+ OFF
+ )
+
+
+
#
# Tell the user very prominently, that we're doing things differently w.r.t
# CMAKE_(C|CXX)_FLAGS_(DEBUG|RELEASE)
@@ -191,6 +232,11 @@ FOREACH(_flag
CMAKE_C_FLAGS_DEBUG
CMAKE_C_FLAGS_MINSIZEREL
CMAKE_C_FLAGS_RELWITHDEBINFO
+ CMAKE_Fortran_FLAGS_RELEASE
+ CMAKE_Fortran_FLAGS_DEBUG
+ CMAKE_Fortran_FLAGS_MINSIZEREL
+ CMAKE_Fortran_FLAGS_RELWITHDEBINFO
+ CMAKE_SHARED_LINKER_FLAGS
CMAKE_SHARED_LINKER_FLAGS_DEBUG
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
CMAKE_SHARED_LINKER_FLAGS_RELEASE
@@ -204,13 +250,12 @@ ENDFOREACH()
# Set cached compiler flags to an empty string:
#
SET(DEAL_II_USED_FLAGS
- CMAKE_C_FLAGS
CMAKE_CXX_FLAGS
DEAL_II_CXX_FLAGS_DEBUG
DEAL_II_CXX_FLAGS_RELEASE
- CMAKE_SHARED_LINKER_FLAGS
- DEAL_II_SHARED_LINKER_FLAGS_DEBUG
- DEAL_II_SHARED_LINKER_FLAGS_RELEASE
+ DEAL_II_LINKER_FLAGS
+ DEAL_II_LINKER_FLAGS_DEBUG
+ DEAL_II_LINKER_FLAGS_RELEASE
)
FOREACH(_flag ${DEAL_II_USED_FLAGS})
@@ -236,41 +281,38 @@ FOREACH(_flag ${DEAL_II_USED_FLAGS})
MARK_AS_ADVANCED(${_flag})
ENDFOREACH()
+
#
-# Finally, read in CFLAGS, CXXFLAGS and LDFLAGS from environment and
-# prepend them to the saved variables:
+# Finally, read in CXXFLAGS and LDFLAGS from environment and prepend them
+# to the saved variables:
#
-SET(CMAKE_C_FLAGS_SAVED "$ENV{CFLAGS} ${CMAKE_C_FLAGS_SAVED}")
SET(CMAKE_CXX_FLAGS_SAVED "$ENV{CXXFLAGS} ${CMAKE_CXX_FLAGS_SAVED}")
-SET(CMAKE_SHARED_LINKER_FLAGS_SAVED "$ENV{LDFLAGS} ${CMAKE_SHARED_LINKER_FLAGS_SAVED}")
-UNSET(ENV{CFLAGS})
+SET(DEAL_II_LINKER_FLAGS_SAVED "$ENV{LDFLAGS} ${DEAL_II_LINKER_FLAGS_SAVED}")
UNSET(ENV{CXXFLAGS})
UNSET(ENV{LDFLAGS})
-###########################################################################
-# #
-# Miscellanious setup: #
-# #
-###########################################################################
+########################################################################
+# #
+# Miscellaneous setup: #
+# #
+########################################################################
GET_CMAKE_PROPERTY(_res VARIABLES)
FOREACH(_var ${_res})
#
- # Rename WITH_* by DEAL_II_WITH_*
+ # Rename (ALLOW|WITH|FORCE|COMPONENT)_* by DEAL_II_(ALLOW|WITH|FORCE|COMPONENT)_*
#
- IF(_var MATCHES "^WITH_")
- SET(DEAL_II_${_var} ${${_var}} CACHE BOOL "" FORCE)
- UNSET(${_var} CACHE)
- ENDIF()
+ FOREACH(_match ALLOW_ WITH_ FORCE_ COMPONENT_)
+ IF(_var MATCHES "^${_match}")
+ SET(DEAL_II_${_var} ${${_var}} CACHE BOOL "" FORCE)
+ UNSET(${_var} CACHE)
+ ENDIF()
+ ENDFOREACH()
#
# Same for components:
#
- IF(_var MATCHES "^COMPONENT_")
- SET(DEAL_II_${_var} ${${_var}} CACHE BOOL "" FORCE)
- UNSET(${_var} CACHE)
- ENDIF()
IF(_var MATCHES "^(COMPAT_FILES|DOCUMENTATION|EXAMPLES|MESH_CONVERTER|PARAMETER_GUI)")
SET(DEAL_II_COMPONENT_${_var} ${${_var}} CACHE BOOL "" FORCE)
UNSET(${_var} CACHE)
@@ -280,7 +322,9 @@ FOREACH(_var ${_res})
# If DEAL_II_FORCE_AUTODETECTION is set undefine all feature toggles
# DEAL_II_WITH_* prior to configure:
#
- IF(DEAL_II_FORCE_AUTODETECTION AND _var MATCHES "^DEAL_II_WITH_")
+ IF(DEAL_II_FORCE_AUTODETECTION AND _var MATCHES "^DEAL_II_WITH_"
+ # Exclude FEATURES that do not represent external libraries:
+ AND NOT _var MATCHES "^DEAL_II_WITH_64BIT_INDICES" )
UNSET(${_var} CACHE)
ENDIF()
ENDFOREACH()
diff --git a/deal.II/cmake/setup_compiler_flags.cmake b/deal.II/cmake/setup_compiler_flags.cmake
index db784362b4..4815abf65f 100644
--- a/deal.II/cmake/setup_compiler_flags.cmake
+++ b/deal.II/cmake/setup_compiler_flags.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Setup default compiler flags: This file sets up sensible default compiler
@@ -28,15 +30,15 @@
# CMAKE_CXX_FLAGS
# DEAL_II_CXX_FLAGS_DEBUG
# DEAL_II_CXX_FLAGS_RELEASE
-# CMAKE_SHARED_LINKER_FLAGS
-# DEAL_II_SHARED_LINKER_FLAGS_DEBUG
-# DEAL_II_SHARED_LINKER_FLAGS_RELEASE
+# DEAL_II_LINKER_FLAGS
+# DEAL_II_LINKER_FLAGS_DEBUG
+# DEAL_II_LINKER_FLAGS_RELEASE
#
# All modifications shall be guarded with the ENABLE_IF_SUPPORTED
# or ENABLE_IF_LINKS macro, e.g.
#
# ENABLE_IF_SUPPORTED(CMAKE_CXX_FLAGS "-fpic")
-# ENABLE_IF_LINKS(CMAKE_SHARED_LINKER_FLAGS "-Wl,--as-needed")
+# ENABLE_IF_LINKS(DEAL_II_LINKER_FLAGS "-Wl,--as-needed")
#
# Checks for compiler features (such as C++11 support) and compiler
# specific bugs that
@@ -54,36 +56,16 @@
#
-###########################################################################
-# #
-# Sanity checks: #
-# #
-###########################################################################
+########################################################################
+# #
+# Sanity checks: #
+# #
+########################################################################
#
-# Check the user provided C and CXX flags:
+# Check the user provided CXX flags:
#
-
-IF(NOT "${CMAKE_C_FLAGS_SAVED}" STREQUAL "${DEAL_II_C_FLAGS_SAVED}")
- UNSET(DEAL_II_HAVE_USABLE_C_FLAGS CACHE)
-ENDIF()
-SET(DEAL_II_C_FLAGS_SAVED "${CMAKE_C_FLAGS_SAVED}" CACHE INTERNAL "" FORCE)
-
-SET(CMAKE_REQUIRED_FLAGS "${CMAKE_C_FLAGS_SAVED}")
-CHECK_C_SOURCE_COMPILES(
- "int main(){ return 0; }"
- DEAL_II_HAVE_USABLE_C_FLAGS)
-SET(CMAKE_REQUIRED_FLAGS "")
-
-IF(NOT DEAL_II_HAVE_USABLE_C_FLAGS)
- UNSET(DEAL_II_HAVE_USABLE_C_FLAGS CACHE)
- MESSAGE(FATAL_ERROR "\n"
- "Configuration error: Cannot compile with the specified C flags: "
- "${CMAKE_C_FLAGS_SAVED}\n"
- )
-ENDIF()
-
-
+MESSAGE(STATUS "")
IF(NOT "${CMAKE_CXX_FLAGS_SAVED}" STREQUAL "${DEAL_II_CXX_FLAGS_SAVED}")
UNSET(DEAL_II_HAVE_USABLE_CXX_FLAGS CACHE)
ENDIF()
@@ -104,25 +86,11 @@ IF(NOT DEAL_II_HAVE_USABLE_CXX_FLAGS)
ENDIF()
-#
-# CMAKE_C_COMPILER and CMAKE_CXX_COMPILER have to be of the same brand.
-#
-IF(NOT ( "${CMAKE_C_COMPILER_ID}" STREQUAL "${CMAKE_CXX_COMPILER_ID}" AND
- "${CMAKE_C_COMPILER_VERSION}" STREQUAL "${CMAKE_CXX_COMPILER_VERSION}" ) )
- MESSAGE(FATAL_ERROR "\n"
- "Configuration error: The specified C and CXX compiler have to be of the "
- "same family, but cmake found:\n"
- "CMAKE_C_COMPILER: ${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION}\n"
- "CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}\n"
- )
-ENDIF()
-
-
-###########################################################################
-# #
-# Compiler setup: #
-# #
-###########################################################################
+########################################################################
+# #
+# Compiler setup: #
+# #
+########################################################################
IF(DEAL_II_SETUP_DEFAULT_COMPILER_FLAGS)
#
diff --git a/deal.II/cmake/setup_compiler_flags_gnu.cmake b/deal.II/cmake/setup_compiler_flags_gnu.cmake
index 0b35afc511..63bf98e31a 100644
--- a/deal.II/cmake/setup_compiler_flags_gnu.cmake
+++ b/deal.II/cmake/setup_compiler_flags_gnu.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# General setup for GCC and compilers sufficiently close to GCC
@@ -51,7 +53,7 @@ ENABLE_IF_SUPPORTED(CMAKE_CXX_FLAGS "-fpic")
# Check whether the -as-needed flag is available. If so set it to link
# the deal.II library with it.
#
-ENABLE_IF_LINKS(CMAKE_SHARED_LINKER_FLAGS "-Wl,--as-needed")
+ENABLE_IF_LINKS(DEAL_II_LINKER_FLAGS "-Wl,--as-needed")
#
# Setup various warnings:
@@ -79,6 +81,11 @@ ENABLE_IF_SUPPORTED(CMAKE_CXX_FLAGS "-Wno-deprecated-declarations")
IF(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ #
+ # Silence Clang warnings about unused parameters:
+ #
+ SET(CMAKE_CXX_FLAGS "-Qunused-arguments ${CMAKE_CXX_FLAGS}")
+
#
# *Boy*, clang seems to be the very definition of "pedantic" in
# "-pedantic" mode, so disable a bunch of harmless warnings
@@ -95,6 +102,16 @@ IF(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
ENDIF()
+IF(DEAL_II_STATIC_EXECUTABLE)
+ #
+ # To produce a static executable, we have to statically link libstdc++
+ # and gcc's support libraries and glibc:
+ #
+ ENABLE_IF_SUPPORTED(DEAL_II_LINKER_FLAGS "-static")
+ ENABLE_IF_SUPPORTED(DEAL_II_LINKER_FLAGS "-pthread")
+ENDIF()
+
+
#############################
# #
# For Release target: #
@@ -108,6 +125,7 @@ IF (CMAKE_BUILD_TYPE MATCHES "Release")
ADD_FLAGS(DEAL_II_CXX_FLAGS_RELEASE "-O2")
ENABLE_IF_SUPPORTED(DEAL_II_CXX_FLAGS_RELEASE "-funroll-loops")
+ ENABLE_IF_SUPPORTED(DEAL_II_CXX_FLAGS_RELEASE "-funroll-all-loops")
ENABLE_IF_SUPPORTED(DEAL_II_CXX_FLAGS_RELEASE "-fstrict-aliasing")
ENABLE_IF_SUPPORTED(DEAL_II_CXX_FLAGS_RELEASE "-felide-constructors")
@@ -126,16 +144,22 @@ IF (CMAKE_BUILD_TYPE MATCHES "Debug")
LIST(APPEND DEAL_II_DEFINITIONS_DEBUG "DEBUG")
LIST(APPEND DEAL_II_USER_DEFINITIONS_DEBUG "DEBUG")
- ADD_FLAGS(DEAL_II_CXX_FLAGS_DEBUG "-O0")
+ ENABLE_IF_SUPPORTED(DEAL_II_CXX_FLAGS_DEBUG "-Og")
+ #
+ # If -Og is not available, fall back to -O0:
+ #
+ IF(NOT DEAL_II_HAVE_FLAG_O0)
+ ADD_FLAGS(DEAL_II_CXX_FLAGS_DEBUG "-O0")
+ ENDIF()
ENABLE_IF_SUPPORTED(DEAL_II_CXX_FLAGS_DEBUG "-ggdb")
- ENABLE_IF_SUPPORTED(DEAL_II_SHARED_LINKER_FLAGS_DEBUG "-ggdb")
+ ENABLE_IF_SUPPORTED(DEAL_II_LINKER_FLAGS_DEBUG "-ggdb")
#
# If -ggdb is not available, fall back to -g:
#
IF(NOT DEAL_II_HAVE_FLAG_ggdb)
ENABLE_IF_SUPPORTED(DEAL_II_CXX_FLAGS_DEBUG "-g")
- ENABLE_IF_SUPPORTED(DEAL_II_SHARED_LINKER_FLAGS_DEBUG "-g")
+ ENABLE_IF_SUPPORTED(DEAL_II_LINKER_FLAGS_DEBUG "-g")
ENDIF()
ENDIF()
diff --git a/deal.II/cmake/setup_compiler_flags_intel.cmake b/deal.II/cmake/setup_compiler_flags_intel.cmake
index 1c82c3ef5c..e08b7a382a 100644
--- a/deal.II/cmake/setup_compiler_flags_intel.cmake
+++ b/deal.II/cmake/setup_compiler_flags_intel.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# General setup for the Intel C++ Compiler
@@ -42,7 +44,7 @@ ENABLE_IF_SUPPORTED(CMAKE_CXX_FLAGS "-fpic")
# Check whether the -as-needed flag is available. If so set it to link
# the deal.II library with it.
#
-ENABLE_IF_LINKS(CMAKE_SHARED_LINKER_FLAGS "-Wl,--as-needed")
+ENABLE_IF_LINKS(DEAL_II_LINKER_FLAGS "-Wl,--as-needed")
#
# Set ansi mode:
@@ -80,6 +82,18 @@ ENABLE_IF_SUPPORTED(CMAKE_CXX_FLAGS "-wd1478")
ENABLE_IF_SUPPORTED(CMAKE_CXX_FLAGS "-wd1572")
+IF(DEAL_II_STATIC_EXECUTABLE)
+ #
+ # To produce a static executable, we have to statically link intel's
+ # support libraries:
+ #
+ ENABLE_IF_SUPPORTED(DEAL_II_LINKER_FLAGS "-static")
+ ENABLE_IF_SUPPORTED(DEAL_II_LINKER_FLAGS "-static-intel")
+ ENABLE_IF_SUPPORTED(DEAL_II_LINKER_FLAGS "-static-gcc")
+ ENABLE_IF_SUPPORTED(DEAL_II_LINKER_FLAGS "-pthread")
+ENDIF()
+
+
#############################
# #
# For Release target: #
@@ -90,7 +104,7 @@ IF (CMAKE_BUILD_TYPE MATCHES "Release")
#
# General optimization flags:
#
- ADD_FLAGS(DEAL_II_CXX_FLAGS_RELEASE "-O2")
+ ADD_FLAGS(DEAL_II_CXX_FLAGS_RELEASE "-O1")
ENABLE_IF_SUPPORTED(DEAL_II_CXX_FLAGS_RELEASE "-ip")
ENABLE_IF_SUPPORTED(DEAL_II_CXX_FLAGS_RELEASE "-funroll-loops")
diff --git a/deal.II/cmake/setup_compiler_flags_msvc.cmake b/deal.II/cmake/setup_compiler_flags_msvc.cmake
index b8871633f5..6aeaceb16d 100644
--- a/deal.II/cmake/setup_compiler_flags_msvc.cmake
+++ b/deal.II/cmake/setup_compiler_flags_msvc.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Timo Heister
-##
-#####
+## ---------------------------------------------------------------------
#
# General setup for the Microsoft Visual Studio C++ Compiler (Windows)
diff --git a/deal.II/cmake/setup_custom_targets.cmake b/deal.II/cmake/setup_custom_targets.cmake
deleted file mode 100644
index 2f7b56efa8..0000000000
--- a/deal.II/cmake/setup_custom_targets.cmake
+++ /dev/null
@@ -1,44 +0,0 @@
-#####
-##
-## Copyright (C) 2012, 2013 by the deal.II authors
-##
-## This file is part of the deal.II library.
-##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
-##
-## Author: Matthias Maier
-##
-#####
-
-#
-# Setup some convenience custom targets for the build system:
-#
-
-
-###########################################################################
-# #
-# Custom targets for library, documentation and compat_files components: #
-# #
-###########################################################################
-
-ADD_CUSTOM_TARGET(library)
-FOREACH(_build ${DEAL_II_BUILD_TYPES})
- ADD_DEPENDENCIES(library ${DEAL_II_BASE_NAME}${DEAL_II_${_build}_SUFFIX})
-ENDFOREACH()
-
-IF(DEAL_II_COMPONENT_DOCUMENTATION)
- ADD_CUSTOM_TARGET(documentation
- DEPENDS doxygen
- )
-ENDIF()
-
-IF(DEAL_II_COMPONENT_COMPAT_FILES)
- ADD_CUSTOM_TARGET(compat_files
- DEPENDS
- expand_instantiations
- make_dependencies
- report_features
- )
-ENDIF()
diff --git a/deal.II/cmake/setup_deal_ii.cmake b/deal.II/cmake/setup_deal_ii.cmake
index 5b82eedd22..931bf618f3 100644
--- a/deal.II/cmake/setup_deal_ii.cmake
+++ b/deal.II/cmake/setup_deal_ii.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Set up deal.II specific definitions
@@ -55,11 +57,11 @@
# *) Can be overwritten by the command line via -D<...>
#
-###########################################################################
-# #
-# General information about deal.II: #
-# #
-###########################################################################
+########################################################################
+# #
+# General information about deal.II: #
+# #
+########################################################################
SET_IF_EMPTY(DEAL_II_PACKAGE_NAME "deal.II")
@@ -83,11 +85,11 @@ STRING(REGEX REPLACE
SET(DEAL_II_VERSION ${DEAL_II_VERSION_MAJOR}.${DEAL_II_VERSION_MINOR})
-###########################################################################
-# #
-# Information about paths, install locations and names: #
-# #
-###########################################################################
+########################################################################
+# #
+# Information about paths, install locations and names: #
+# #
+########################################################################
SET(DEAL_II_PROJECT_CONFIG_NAME "${DEAL_II_PACKAGE_NAME}")
@@ -145,11 +147,11 @@ IF(CMAKE_BUILD_TYPE MATCHES "Release")
ENDIF()
-###########################################################################
-# #
-# Cleanup and Includes that have to happen after the call to PROJECT(): #
-# #
-###########################################################################
+########################################################################
+# #
+# Cleanup and setup that has to happen after the call to PROJECT(): #
+# #
+########################################################################
#
# Cleanup some files used for storing the names of all object targets that
@@ -164,6 +166,14 @@ FOREACH(_build ${DEAL_II_BUILD_TYPES})
)
ENDFOREACH()
+IF(DEAL_II_PREFER_STATIC_LIBS)
+ #
+ # Invert the search order for libraries when DEAL_II_PREFER_STATIC_LIBS
+ # is set. This will prefer static archives instead of shared libraries:
+ #
+ # TODO: Does this work on a Windows or CYGWIN target?
+ LIST(REVERSE CMAKE_FIND_LIBRARY_SUFFIXES)
+ENDIF()
#
# Cross compilation stuff:
@@ -180,5 +190,5 @@ IF(CMAKE_CROSSCOMPILING)
SET(DEAL_II_NATIVE "DEAL_II_NATIVE-NOTFOUND" CACHE FILEPATH
"A pointer to a native deal.Ii build directory"
)
- INCLUDE(${DEAL_II_NATIVE}/cmake/scripts//importExecutables.cmake)
+ INCLUDE(${DEAL_II_NATIVE}/cmake/scripts/importExecutables.cmake)
ENDIF()
diff --git a/deal.II/cmake/setup_external_macros.cmake b/deal.II/cmake/setup_external_macros.cmake
index f5c3a150a1..89dc60e9e4 100644
--- a/deal.II/cmake/setup_external_macros.cmake
+++ b/deal.II/cmake/setup_external_macros.cmake
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
# Include all external (cmake) macros that we will use:
@@ -18,7 +20,6 @@
INCLUDE(CheckCXXCompilerFlag)
INCLUDE(CheckCXXSourceCompiles)
-INCLUDE(CheckCSourceCompiles)
INCLUDE(CheckCXXSourceRuns)
INCLUDE(CheckCXXSymbolExists)
INCLUDE(CheckIncludeFileCXX)
diff --git a/deal.II/cmake/setup_finalize.cmake b/deal.II/cmake/setup_finalize.cmake
index d30d86744e..e2f919a309 100644
--- a/deal.II/cmake/setup_finalize.cmake
+++ b/deal.II/cmake/setup_finalize.cmake
@@ -1,23 +1,25 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
-###########################################################################
-# #
-# Finalize the configuration: #
-# #
-###########################################################################
+########################################################################
+# #
+# Finalize the configuration: #
+# #
+########################################################################
#
# Hide some cmake specific cached variables. This is annoying...
@@ -59,11 +61,11 @@ FOREACH(_build ${DEAL_II_BUILD_TYPES})
ENDFOREACH()
-###########################################################################
-# #
-# And write a nice configuration summary to file: #
-# #
-###########################################################################
+########################################################################
+# #
+# And write a nice configuration summary to file: #
+# #
+########################################################################
SET(_log_detailed "${CMAKE_BINARY_DIR}/detailed.log")
SET(_log_summary "${CMAKE_BINARY_DIR}/summary.log")
@@ -99,30 +101,36 @@ _both(
)
IF(CMAKE_CROSSCOMPILING)
_both(
- "# CROSSCOMPILING!\n"
+ "#\n# CROSSCOMPILING!\n"
"# DEAL_II_NATIVE: ${DEAL_II_NATIVE}\n"
)
ENDIF()
+IF(DEAL_II_STATIC_EXECUTABLE)
+ _both(
+ "#\n# STATIC LINKAGE!\n"
+ )
+ENDIF()
+
_both("#\n")
_detailed(
"# Compiler flags used for this build:
-# CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}
+# CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}
"
)
IF(CMAKE_BUILD_TYPE MATCHES "Release")
- _detailed("# DEAL_II_CXX_FLAGS_RELEASE: ${DEAL_II_CXX_FLAGS_RELEASE}\n")
+ _detailed("# DEAL_II_CXX_FLAGS_RELEASE: ${DEAL_II_CXX_FLAGS_RELEASE}\n")
ENDIF()
IF(CMAKE_BUILD_TYPE MATCHES "Debug")
- _detailed("# DEAL_II_CXX_FLAGS_DEBUG: ${DEAL_II_CXX_FLAGS_DEBUG}\n")
+ _detailed("# DEAL_II_CXX_FLAGS_DEBUG: ${DEAL_II_CXX_FLAGS_DEBUG}\n")
ENDIF()
-_detailed("# CMAKE_SHARED_LINKER_FLAGS: ${CMAKE_SHARED_LINKER_FLAGS}\n")
+_detailed("# DEAL_II_LINKER_FLAGS: ${DEAL_II_LINKER_FLAGS}\n")
IF(CMAKE_BUILD_TYPE MATCHES "Release")
- _detailed("# DEAL_II_SHARED_LINKER_FLAGS_RELEASE: ${DEAL_II_SHARED_LINKER_FLAGS_RELEASE}\n")
+ _detailed("# DEAL_II_LINKER_FLAGS_RELEASE: ${DEAL_II_LINKER_FLAGS_RELEASE}\n")
ENDIF()
IF(CMAKE_BUILD_TYPE MATCHES "Debug")
- _detailed("# DEAL_II_SHARED_LINKER_FLAGS_DEBUG: ${DEAL_II_SHARED_LINKER_FLAGS_DEBUG}\n")
+ _detailed("# DEAL_II_LINKER_FLAGS_DEBUG: ${DEAL_II_LINKER_FLAGS_DEBUG}\n")
ENDIF()
_detailed("#\n")
@@ -189,6 +197,8 @@ FOREACH(_var ${_features})
ELSE()
_both("# ${_var} set up with bundled packages\n")
ENDIF()
+ ELSE()
+ _both("# ${_var} = ${${_var}}\n")
ENDIF()
ELSE()
# FEATURE is disabled
diff --git a/deal.II/contrib/CMakeLists.txt b/deal.II/contrib/CMakeLists.txt
index c6569084fb..f507b519eb 100644
--- a/deal.II/contrib/CMakeLists.txt
+++ b/deal.II/contrib/CMakeLists.txt
@@ -1,22 +1,26 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
IF(DEAL_II_COMPONENT_MESH_CONVERTER)
ADD_SUBDIRECTORY(mesh_conversion)
ENDIF()
IF(DEAL_II_COMPONENT_PARAMETER_GUI)
- ADD_SUBDIRECTorY(parameter_gui)
+ ADD_SUBDIRECTORY(parameter_gui)
ENDIF()
+#ADD_SUBDIRECTORY(test_affinity)
+
diff --git a/deal.II/contrib/lapack_templates/example_custom_target.cmake b/deal.II/contrib/lapack_templates/example_custom_target.cmake
index fa77d9ed1b..108cad18f3 100644
--- a/deal.II/contrib/lapack_templates/example_custom_target.cmake
+++ b/deal.II/contrib/lapack_templates/example_custom_target.cmake
@@ -1,3 +1,19 @@
+## ---------------------------------------------------------------------
+## $Id$
+##
+## Copyright (C) 2013 by the deal.II authors
+##
+## This file is part of the deal.II library.
+##
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
+##
+## ---------------------------------------------------------------------
+
ADD_CUSTOM_COMMAND(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/deal.II/lac/lapack_templates.h
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/deal.II/lac/
diff --git a/deal.II/contrib/lapack_templates/lapack_templates.pl b/deal.II/contrib/lapack_templates/lapack_templates.pl
index cbad825c04..acfd48c119 100644
--- a/deal.II/contrib/lapack_templates/lapack_templates.pl
+++ b/deal.II/contrib/lapack_templates/lapack_templates.pl
@@ -1,15 +1,18 @@
-#---------------------------------------------------------------------------
-# $Id$
-# Version: $Name$
-#
-# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2012 by the deal authors
-#
-# This file is subject to QPL and may not be distributed
-# without copyright and license information. Please refer
-# to the file deal.II/doc/license.html for the text and
-# further information on this license.
-#
-#---------------------------------------------------------------------------
+## ---------------------------------------------------------------------
+## $Id$
+##
+## Copyright (C) 2005 - 2013 by the deal.II authors
+##
+## This file is part of the deal.II library.
+##
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
+##
+## ---------------------------------------------------------------------
#---------------------------------------------------------------------------
# This perl script translates lapack_templates.h.in to lapack_templates.h
@@ -37,19 +40,21 @@ my $double;
print << 'EOT'
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------
+// $Id$
//
-// This file was automatically generated from lapack_templates.h.in
-// See blastemplates in the deal.II contrib directory
+// Copyright (C) 2005 - 2013 by the deal.II authors
//
-// Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 by the deal authors
+// This file is part of the deal.II library.
//
-// This file is subject to QPL and may not be distributed
-// without copyright and license information. Please refer
-// to the file deal.II/doc/license.html for the text and
-// further information on this license.
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
//
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------
#ifndef __LAPACK_TEMPLATES_H
#define __LAPACK_TEMPLATES_H
diff --git a/deal.II/contrib/mesh_conversion/CMakeLists.txt b/deal.II/contrib/mesh_conversion/CMakeLists.txt
index c198104103..2c8dbc4c8f 100644
--- a/deal.II/contrib/mesh_conversion/CMakeLists.txt
+++ b/deal.II/contrib/mesh_conversion/CMakeLists.txt
@@ -1,18 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is multi licensed under
-## - QPL 1.0,
-## - GPL 2.0 or any later version,
-## - LGL 2.1 or any later version.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
#PROJECT(mesh_converter)
diff --git a/deal.II/contrib/parameter_gui/CMakeLists.txt b/deal.II/contrib/parameter_gui/CMakeLists.txt
index 929bb5e2a1..542b9a5766 100644
--- a/deal.II/contrib/parameter_gui/CMakeLists.txt
+++ b/deal.II/contrib/parameter_gui/CMakeLists.txt
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012, 2013 by the deal.II authors
+## Copyright (C) 2012 - 2013 by Martin Steigemann and Wolfgang Bangerth
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
#PROJECT(parameter_gui)
diff --git a/deal.II/contrib/parameter_gui/README b/deal.II/contrib/parameter_gui/README
index 43f041a2bd..963da457f9 100644
--- a/deal.II/contrib/parameter_gui/README
+++ b/deal.II/contrib/parameter_gui/README
@@ -1,4 +1,4 @@
-This subdirectory contains the parameterr_gui project.
+This subdirectory contains the parameter_gui project.
It is copyrighted by Martin Steigemann and Wolfgang Bangerth and
distributed under the same license as the deal.II library, i.e.
diff --git a/deal.II/contrib/parameter_gui/browse_lineedit.cpp b/deal.II/contrib/parameter_gui/browse_lineedit.cpp
index 33e89864c1..29d1db3ca0 100644
--- a/deal.II/contrib/parameter_gui/browse_lineedit.cpp
+++ b/deal.II/contrib/parameter_gui/browse_lineedit.cpp
@@ -1,13 +1,19 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2010, 2011 by the deal.II authors
+// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth
//
-// This file is subject to QPL and may not be distributed
-// without copyright and license information. Please refer
-// to the file deal.II/doc/license.html for the text and
-// further information on this license.
+// This file is part of the deal.II library.
//
-//---------------------------------------------------------------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
#include
diff --git a/deal.II/contrib/parameter_gui/browse_lineedit.h b/deal.II/contrib/parameter_gui/browse_lineedit.h
index 2c0a97fada..b03c7a6f8b 100644
--- a/deal.II/contrib/parameter_gui/browse_lineedit.h
+++ b/deal.II/contrib/parameter_gui/browse_lineedit.h
@@ -1,13 +1,19 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2010, 2011 by the deal.II authors
+// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth
//
-// This file is subject to QPL and may not be distributed
-// without copyright and license information. Please refer
-// to the file deal.II/doc/license.html for the text and
-// further information on this license.
+// This file is part of the deal.II library.
//
-//---------------------------------------------------------------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
#ifndef BROWSELINEEDIT_H
#define BROWSELINEEDIT_H
diff --git a/deal.II/contrib/parameter_gui/info_message.cpp b/deal.II/contrib/parameter_gui/info_message.cpp
index db753bc0b1..ca5614c5ce 100644
--- a/deal.II/contrib/parameter_gui/info_message.cpp
+++ b/deal.II/contrib/parameter_gui/info_message.cpp
@@ -1,13 +1,19 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2010, 2011 by the deal.II authors
+// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth
//
-// This file is subject to QPL and may not be distributed
-// without copyright and license information. Please refer
-// to the file deal.II/doc/license.html for the text and
-// further information on this license.
+// This file is part of the deal.II library.
//
-//---------------------------------------------------------------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
#include
diff --git a/deal.II/contrib/parameter_gui/info_message.h b/deal.II/contrib/parameter_gui/info_message.h
index f3ad3711e7..78969ef0c4 100644
--- a/deal.II/contrib/parameter_gui/info_message.h
+++ b/deal.II/contrib/parameter_gui/info_message.h
@@ -1,13 +1,19 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2010, 2011 by the deal.II authors
+// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth
//
-// This file is subject to QPL and may not be distributed
-// without copyright and license information. Please refer
-// to the file deal.II/doc/license.html for the text and
-// further information on this license.
+// This file is part of the deal.II library.
//
-//---------------------------------------------------------------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
#ifndef INFOMESSAGE_H
#define INFOMESSAGE_H
diff --git a/deal.II/contrib/parameter_gui/main.cpp b/deal.II/contrib/parameter_gui/main.cpp
index 461cd0c0aa..f7d1340482 100644
--- a/deal.II/contrib/parameter_gui/main.cpp
+++ b/deal.II/contrib/parameter_gui/main.cpp
@@ -1,13 +1,19 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2010, 2011 by the deal.II authors
+// Copyright (C) 2013 by Martin Steigemann and Wolfgang Bangerth
//
-// This file is subject to QPL and may not be distributed
-// without copyright and license information. Please refer
-// to the file deal.II/doc/license.html for the text and
-// further information on this license.
+// This file is part of the deal.II library.
//
-//---------------------------------------------------------------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
#include
#include
diff --git a/deal.II/contrib/parameter_gui/mainwindow.cpp b/deal.II/contrib/parameter_gui/mainwindow.cpp
index 4cef562f34..dbd2f430f0 100644
--- a/deal.II/contrib/parameter_gui/mainwindow.cpp
+++ b/deal.II/contrib/parameter_gui/mainwindow.cpp
@@ -1,13 +1,19 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2010, 2011 by the deal.II authors
+// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth
//
-// This file is subject to QPL and may not be distributed
-// without copyright and license information. Please refer
-// to the file deal.II/doc/license.html for the text and
-// further information on this license.
+// This file is part of the deal.II library.
//
-//---------------------------------------------------------------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
#include
diff --git a/deal.II/contrib/parameter_gui/mainwindow.h b/deal.II/contrib/parameter_gui/mainwindow.h
index 54deeae047..617c3e3422 100644
--- a/deal.II/contrib/parameter_gui/mainwindow.h
+++ b/deal.II/contrib/parameter_gui/mainwindow.h
@@ -1,13 +1,19 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2010, 2011 by the deal.II authors
+// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth
//
-// This file is subject to QPL and may not be distributed
-// without copyright and license information. Please refer
-// to the file deal.II/doc/license.html for the text and
-// further information on this license.
+// This file is part of the deal.II library.
//
-//---------------------------------------------------------------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
diff --git a/deal.II/contrib/parameter_gui/parameter_delegate.cpp b/deal.II/contrib/parameter_gui/parameter_delegate.cpp
index ec7106f526..1add7f46e0 100644
--- a/deal.II/contrib/parameter_gui/parameter_delegate.cpp
+++ b/deal.II/contrib/parameter_gui/parameter_delegate.cpp
@@ -1,13 +1,19 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2010, 2011 by the deal.II authors
+// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth
//
-// This file is subject to QPL and may not be distributed
-// without copyright and license information. Please refer
-// to the file deal.II/doc/license.html for the text and
-// further information on this license.
+// This file is part of the deal.II library.
//
-//---------------------------------------------------------------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
#include
diff --git a/deal.II/contrib/parameter_gui/parameter_delegate.h b/deal.II/contrib/parameter_gui/parameter_delegate.h
index a4bcb2b98f..155fa8edaa 100644
--- a/deal.II/contrib/parameter_gui/parameter_delegate.h
+++ b/deal.II/contrib/parameter_gui/parameter_delegate.h
@@ -1,13 +1,19 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2010, 2011 by the deal.II authors
+// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth
//
-// This file is subject to QPL and may not be distributed
-// without copyright and license information. Please refer
-// to the file deal.II/doc/license.html for the text and
-// further information on this license.
+// This file is part of the deal.II library.
//
-//---------------------------------------------------------------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
#ifndef PARAMETERDELEGATE_H
#define PARAMETERDELEGATE_H
diff --git a/deal.II/contrib/parameter_gui/xml_parameter_reader.cpp b/deal.II/contrib/parameter_gui/xml_parameter_reader.cpp
index 115da80d12..144dce7e6a 100644
--- a/deal.II/contrib/parameter_gui/xml_parameter_reader.cpp
+++ b/deal.II/contrib/parameter_gui/xml_parameter_reader.cpp
@@ -1,13 +1,19 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2010, 2011 by the deal.II authors
+// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth
//
-// This file is subject to QPL and may not be distributed
-// without copyright and license information. Please refer
-// to the file deal.II/doc/license.html for the text and
-// further information on this license.
+// This file is part of the deal.II library.
//
-//---------------------------------------------------------------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
#include
diff --git a/deal.II/contrib/parameter_gui/xml_parameter_reader.h b/deal.II/contrib/parameter_gui/xml_parameter_reader.h
index 6d90fd4d75..17d6f4a3d8 100644
--- a/deal.II/contrib/parameter_gui/xml_parameter_reader.h
+++ b/deal.II/contrib/parameter_gui/xml_parameter_reader.h
@@ -1,13 +1,19 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2010, 2011 by the deal.II authors
+// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth
//
-// This file is subject to QPL and may not be distributed
-// without copyright and license information. Please refer
-// to the file deal.II/doc/license.html for the text and
-// further information on this license.
+// This file is part of the deal.II library.
//
-//---------------------------------------------------------------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
#ifndef XMLPARAMETERREADER_H
#define XMLPARAMETERREADER_H
diff --git a/deal.II/contrib/parameter_gui/xml_parameter_writer.cpp b/deal.II/contrib/parameter_gui/xml_parameter_writer.cpp
index 553267d873..6bd10fce98 100644
--- a/deal.II/contrib/parameter_gui/xml_parameter_writer.cpp
+++ b/deal.II/contrib/parameter_gui/xml_parameter_writer.cpp
@@ -1,13 +1,19 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2010, 2011 by the deal.II authors
+// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth
//
-// This file is subject to QPL and may not be distributed
-// without copyright and license information. Please refer
-// to the file deal.II/doc/license.html for the text and
-// further information on this license.
+// This file is part of the deal.II library.
//
-//---------------------------------------------------------------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
#include
diff --git a/deal.II/contrib/parameter_gui/xml_parameter_writer.h b/deal.II/contrib/parameter_gui/xml_parameter_writer.h
index 814b486b82..f2597cd4ef 100644
--- a/deal.II/contrib/parameter_gui/xml_parameter_writer.h
+++ b/deal.II/contrib/parameter_gui/xml_parameter_writer.h
@@ -1,13 +1,19 @@
-//---------------------------------------------------------------------------
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2010, 2011 by the deal.II authors
+// Copyright (C) 2010 - 2013 by Martin Steigemann and Wolfgang Bangerth
//
-// This file is subject to QPL and may not be distributed
-// without copyright and license information. Please refer
-// to the file deal.II/doc/license.html for the text and
-// further information on this license.
+// This file is part of the deal.II library.
//
-//---------------------------------------------------------------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
#ifndef XMLPARAMETERWRITER_H
#define XMLPARAMETERWRITER_H
diff --git a/deal.II/contrib/test_affinity/CMakeLists.txt b/deal.II/contrib/test_affinity/CMakeLists.txt
new file mode 100644
index 0000000000..83075153c0
--- /dev/null
+++ b/deal.II/contrib/test_affinity/CMakeLists.txt
@@ -0,0 +1,46 @@
+## ---------------------------------------------------------------------
+## $Id$
+##
+## Copyright (C) 2013 by the deal.II authors
+##
+## This file is part of the deal.II library.
+##
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
+##
+## ---------------------------------------------------------------------
+
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
+
+INCLUDE_DIRECTORIES(
+ BEFORE
+ ${CMAKE_SOURCE_DIR}/include/
+ ${CMAKE_BINARY_DIR}/include/
+ )
+
+ADD_EXECUTABLE(test_affinity
+ test_affinity.cc
+ )
+
+IF(CMAKE_BUILD_TYPE MATCHES "Debug")
+ SET(_build "DEBUG")
+ELSE()
+ SET(_build "RELEASE")
+ENDIF()
+
+SET_TARGET_PROPERTIES(test_affinity PROPERTIES
+ LINK_FLAGS "${DEAL_II_LINKER_FLAGS} ${DEAL_II_LINKER_FLAGS_${_build}}"
+ COMPILE_DEFINITIONS "${DEAL_II_DEFINITIONS};${DEAL_II_DEFINITIONS_${_build}}"
+ COMPILE_FLAGS "${DEAL_II_CXX_FLAGS_${_build}}"
+ LINKER_LANGUAGE "CXX"
+ )
+
+TARGET_LINK_LIBRARIES(test_affinity ${DEAL_II_BASE_NAME}${DEAL_II_${_build}_SUFFIX})
+
+IF(NOT CMAKE_CROSSCOMPILING)
+ ADD_CUSTOM_TARGET(run_test_affinity COMMAND test_affinity)
+ENDIF()
diff --git a/deal.II/contrib/test_affinity/test_affinity.cc b/deal.II/contrib/test_affinity/test_affinity.cc
new file mode 100644
index 0000000000..81549ae370
--- /dev/null
+++ b/deal.II/contrib/test_affinity/test_affinity.cc
@@ -0,0 +1,29 @@
+#include
+#include
+
+int main ()
+{
+ // we need this, otherwise gcc will not link against deal.II
+ dealii::Triangulation<2> test;
+
+ cpu_set_t my_set;
+ CPU_ZERO(&my_set);
+
+ unsigned int len = sizeof(my_set);
+ int ret = sched_getaffinity(0, len, &my_set);
+
+ if (ret!=0)
+ {
+ printf("sched_getaffinity() failed, return value: %d\n", ret);
+ return -1;
+ }
+
+ unsigned int bits_set = CPU_COUNT(&my_set);
+
+ if (bits_set==1)
+ {
+ printf("Warning: sched_getaffinity() returns that we can only use one CPU.\n");
+ return 1;
+ }
+ printf("ncpus=%d, mask=%08X\n", bits_set, *(unsigned int*)(&my_set));
+}
diff --git a/deal.II/doc/CMakeLists.txt b/deal.II/doc/CMakeLists.txt
index 6d9e9412de..eeb7064928 100644
--- a/deal.II/doc/CMakeLists.txt
+++ b/deal.II/doc/CMakeLists.txt
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
#
@@ -44,6 +46,11 @@ IF(DEAL_II_COMPONENT_DOCUMENTATION)
#
ADD_SUBDIRECTORY(doxygen)
+ #
+ # A custom target with the same name as the component:
+ #
+ ADD_CUSTOM_TARGET(documentation DEPENDS doxygen)
+
#
# Install the static elements of the html documentation:
#
diff --git a/deal.II/doc/authors.html b/deal.II/doc/authors.html
index 033fb196dc..1af8db86d0 100644
--- a/deal.II/doc/authors.html
+++ b/deal.II/doc/authors.html
@@ -59,7 +59,7 @@
Step-29 tutorial program.
Fahad Alrashed:
- work in PETScWrappers.
+ work in PETScWrappers, various other fixes.
Michael Anderson:
Linear complexity grid reordering algorithm in 2d and 3d.
@@ -94,6 +94,9 @@
Chih-Che Chueh:
Step-43 tutorial program.
+
Denis Davydov:
+ FEValuesExtractors::Tensor and associated functionality, various other changes.
+
Kevin Dugan:
Fixes in VectorTools::interpolate.
@@ -260,7 +263,9 @@
Eulerian mappings.
Martin Steigemann:
- Graphical user interface for the ParameterHandler class. ParaSails preconditioner.
+ Graphical user interface for the ParameterHandler
+ class. ParaSails preconditioner. Functionality in various
+ places of the library.
Franz-Theo Suttmeier:
Initial parts of the linear algebra libraries.
@@ -272,11 +277,11 @@
Packaging and configuration issues.
Bruno Turcksin:
- Extending deal.ii for 64-bit integer support.
+ Extending deal.ii for 64-bit integer support, various other changes.
Kainan Wang:
Extending deal.ii for 64-bit integer support.
-
+
Yaqi Wang:
The step-28 tutorial program;
@@ -288,6 +293,9 @@
Joshua White:
Arbitrary order Eulerian mappings.
+
Christian Wülker:
+ GridOut::write_svg.
+
Toby D. Young:
Interfaces to SLEPc; many changes in the interfaces to PETSc;
MUMPS interface;
diff --git a/deal.II/doc/development/Config.sample b/deal.II/doc/development/Config.sample
index 528eb299e8..6f4ad89247 100644
--- a/deal.II/doc/development/Config.sample
+++ b/deal.II/doc/development/Config.sample
@@ -83,6 +83,10 @@
# "C Compiler."
# )
#
+# SET(CMAKE_Fortran_COMPILER "" CACHE STRING
+# "Fortran Compiler."
+# )
+#
# SET(CMAKE_CXX_FLAGS "" CACHE STRING
# "The user supplied cache variable will be appended _at the end_ of the auto generated CMAKE_CXX_FLAGS variable"
# )
@@ -95,26 +99,39 @@
# "The user supplied cache variable will be appended _at the end_ of the auto generated DEAL_II_CXX_FLAGS_RELEASE variable"
# )
#
-# SET(CMAKE_SHARED_LINKER_FLAGS "" CACHE STRING
-# "The user supplied cache variable will be appended _at the end_ of the auto generated CMAKE_SHARED_LINKER_FLAGS variable"
+# SET(DEAL_II_LINKER_FLAGS "" CACHE STRING
+# "The user supplied cache variable will be appended _at the end_ of the auto generated DEAL_II_LINKER_FLAGS variable"
# )
#
-# SET(DEAL_II_SHARED_LINKER_FLAGS_DEBUG "" CACHE STRING
-# "The user supplied cache variable will be appended _at the end_ of the auto generated DEAL_II_SHARED_LINKER_FLAGS_DEBUG variable"
+# SET(DEAL_II_LINKER_FLAGS_DEBUG "" CACHE STRING
+# "The user supplied cache variable will be appended _at the end_ of the auto generated DEAL_II_LINKER_FLAGS_DEBUG variable"
# )
#
-# SET(DEAL_II_SHARED_LINKER_FLAGS_RELEASE "" CACHE STRING
-# "The user supplied cache variable will be appended _at the end_ of the auto generated DEAL_II_SHARED_LINKER_FLAGS_RELEASE variable"
+# SET(DEAL_II_LINKER_FLAGS_RELEASE "" CACHE STRING
+# "The user supplied cache variable will be appended _at the end_ of the auto generated DEAL_II_LINKER_FLAGS_RELEASE variable"
# )
#
# SET(BUILD_SHARED_LIBS "ON" CACHE BOOL
# "Build a shared library"
# )
#
+# SET(DEAL_II_PREFER_STATIC_LIBS "OFF" CACHE BOOL
+# "Prefer static libraries over dynamic libraries when searching for features and corresponding link interface"
+# )
+#
+# OPTION(DEAL_II_STATIC_EXECUTABLE "OFF" CACHE BOOL
+# "Provide a link interface that is suitable for static linkage of executables. Enabling this option forces BUILD_SHARED_LIBS=OFF and DEAL_II_PREFER_STATIC_LIBS=ON"
+# )
+#
# SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH "ON" CACHE BOOL
# "Set the rpath of the library to the external link pathes on installation"
# )
#
+# SET(DEAL_II_WITH_64BIT_INDICES "OFF" CACHE BOOL
+# "If set to ON, then use 64-bit data types to represent global degree of freedom indices. The default is to OFF. You only want to set this to ON if you will solve problems with more than 2^31 (approximately 2 billion) unknowns. If set to ON, you also need to ensure that both Trilinos and/or PETSc support 64-bit indices."
+# )
+#
+#
###########################################################################
@@ -275,17 +292,23 @@
# conservative. Only the current compiler and the variable MPI_CXX_COMPILER
# is used to find MPI. (MPI_CXX_COMPILER takes precedence.)
#
+# (MPI_C_COMPILER and MPI_Fortran_COMPILER are considered, too)
+#
+#
# DEAL_II_WITH_MPI=ON will trigger a more sophisticated search for MPI.
#
# The best way to force a specific MPI implementation to be used is to set
-# CMAKE_C_COMPILER and CMAKE_CXX_COMPILER to the appropriate MPI wrapper
-# (See above).
+# CMAKE_CXX_COMPILER, CMAKE_C_COMPILER and CMAKE_Fortran_COMPILER to the
+# appropriate MPI wrapper (See above).
#
# Alternatively, specify the mpi wrapper that will be queried for the mpi
# link interface:
#
# SET(MPI_CXX_COMPILER "mpicxx" CACHE STRING "")
#
+# SET(MPI_C_COMPILER "mpicc" CACHE STRING "")
+# SET(MPI_Fortran_COMPILER "mpif90" CACHE STRING "")
+#
#
# Manual setup:
#
@@ -300,6 +323,12 @@
# SET(MPI_CXX_COMPILE_FLAGS "..." CACHE STRING "")
# SET(MPI_CXX_LINK_FLAGS "..." CACHE STRING "")
#
+# Additionally:
+#
+# SET(MPI_C_LIBRARIES "library;and;semicolon;separated;list;of;link;interface" CACHE STRING "")
+# SET(MPI_Fortran_LIBRARIES "library;and;semicolon;separated;list;of;link;interface" CACHE STRING "")
+#
+#
#
diff --git a/deal.II/doc/development/cmake-internals.html b/deal.II/doc/development/cmake-internals.html
index a21b8f0b79..cacc2e4bbe 100644
--- a/deal.II/doc/development/cmake-internals.html
+++ b/deal.II/doc/development/cmake-internals.html
@@ -43,7 +43,6 @@
TODO
@@ -110,7 +109,7 @@
PROPERTIES
VERSION ${VERSION}
SOVERSION ${VERSION}
- LINK_FLAGS "${DEAL_II_SHARED_LINKER_FLAGS_${build}}"
+ LINK_FLAGS "${DEAL_II_LINKER_FLAGS_${build}}"
COMPILE_DEFINITIONS "${DEAL_II_DEFINITIONS};${DEAL_II_DEFINITIONS_${build}}"
COMPILE_FLAGS "${DEAL_II_CXX_FLAGS_${build}}"
)
@@ -177,15 +176,15 @@
# CMAKE_CXX_FLAGS
# DEAL_II_CXX_FLAGS_DEBUG
# DEAL_II_CXX_FLAGS_RELEASE
- # CMAKE_SHARED_LINKER_FLAGS
- # DEAL_II_SHARED_LINKER_FLAGS_DEBUG
- # DEAL_II_SHARED_LINKER_FLAGS_RELEASE
+ # DEAL_II_LINKER_FLAGS
+ # DEAL_II_LINKER_FLAGS_DEBUG
+ # DEAL_II_LINKER_FLAGS_RELEASE
#
# All modifications shall be guarded with the ENABLE_IF_SUPPORTED
# or ENABLE_IF_LINKS macro, e.g.
#
# ENABLE_IF_SUPPORTED(CMAKE_CXX_FLAGS "-fpic")
- # ENABLE_IF_LINKS(CMAKE_SHARED_LINKER_FLAGS "-Wl,--as-needed")
+ # ENABLE_IF_LINKS(DEAL_II_LINKER_FLAGS "-Wl,--as-needed")
#
# Compiler flags for platform dependent optimization (such as
# -march=native) must always be guarded with
@@ -513,9 +512,9 @@
For internal use, for setting necessary linker flags for the deal.II library:
-
CMAKE_SHARED_LINKER_FLAGS
-
DEAL_II_SHARED_LINKER_FLAGS_DEBUG
-
DEAL_II_SHARED_LINKER_FLAGS_RELEASE
+
DEAL_II_LINKER_FLAGS
+
DEAL_II_LINKER_FLAGS_DEBUG
+
DEAL_II_LINKER_FLAGS_RELEASE
@@ -601,10 +600,21 @@
two macros:
+ #
+ # Glob for all header files associated with the object target:
+ # As this list is only for cosmetic reasons, so that associated header
+ # files show up in IDEs, we don't manage an explicit list (with the
+ # tradeoff to have to run "make rebuild_cache" when a new header file
+ # emerges...)
+ #
+ FILE(GLOB _header
+ ${CMAKE_SOURCE_DIR}/include/deal.II/dofs/*.h
+ )
+
#
# A list of source files forming the object target:
#
- SET(src
+ SET(_src
...
dof_tools.cc
)
@@ -612,7 +622,7 @@
#
# A list of instantiations that must be expanded:
#
- SET(inst_in_files
+ SET(_inst
...
dof_tools.inst.in
)
@@ -625,7 +635,10 @@
# ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/deal_ii_objects_(debug/release)
# so that it is available in global scope.
#
- DEAL_II_ADD_LIBRARY(obj_dofs OBJECT ${src})
+ # Header files and instatiation files (${_header}, ${_inst}) are added
+ # for cosmetic reasons, so that they show up in IDEs.
+ #
+ DEAL_II_ADD_LIBRARY(obj_dofs OBJECT ${_src} ${_header} ${_inst})
#
# This macro will set up an obj_dofs.inst target for expanding all
diff --git a/deal.II/doc/development/cmake.html b/deal.II/doc/development/cmake.html
index e9e6643ea9..05fe95d6e9 100644
--- a/deal.II/doc/development/cmake.html
+++ b/deal.II/doc/development/cmake.html
@@ -244,6 +244,7 @@
DEAL_II_WITH_TRILINOS
DEAL_II_WITH_UMFPACK
DEAL_II_WITH_ZLIB
+ DEAL_II_WITH_64BIT_INDICES
They all have standard meaning with the exception of
two:
@@ -569,6 +570,19 @@
BUILD_SHARED_LIBS: If set (default),
deal.II will be linked as a shared library
+
+ DEAL_II_PREFER_STATIC_LIBS (defaults to off): If set
+ to true, static archives will be preferred over dynamic libraries when
+ searching for features and corresponding link interface.
+
+
+ DEAL_II_STATIC_EXECUTABLE (defaults to off):
+ If set to true, deal.II will be configured in
+ a way to provide a link interface that is suitable for static
+ linkage of executables. Enabling this option forces
+ BUILD_SHARED_LIBS=OFF and
+ DEAL_II_PERFER_STATIC_LIBS.
+
CMAKE_INSTALL_RPATH_USE_LINK_PATH: If set
(default), the deal.II library will be
@@ -583,12 +597,12 @@
Compilers can be switched either by command line or by setting
- CMAKE_(C|CXX)_COMPILER:
+ CMAKE_(C|CXX|Fortran)_COMPILER:
@@ -596,15 +610,15 @@
The compiler must be specified at the very first
invokation of cmake.
- The specified C and CXX compilers must be the same compiler
- brand and the same compiler version.
+ A working CXX compiler is needed. It is optional to provide a C
+ or Fortran compiler.
- deal.II will configure sensible default CFLAGS and
- CXXFLAGS depending on platform, compiler and build
- target. There are two options to override this behaviour:
+ deal.II will configure sensible default CXXFLAGS
+ depending on platform, compiler and build target. There are two
+ options to override this behaviour:
J. C. Araujo-Cabarcas
+
+ Numerical methods for glacial isostatic adjustment models
+
+
+ MSc thesis, Uppsala University, Uppsala, Sweden, 2013.
+
+
+
G. Alam
+
+ Fast iterative solution of large scale statistical
+ inverse problems
+
+
+ Master Thesis, Stockholm University, 2013.
+
+
+
D. Arndt
+
+ Augmented Taylor-Hood Elements for Incompressible Flow
+
+
+ Msc thesis, University of Göttingen, Germany, 2013.
+
+
+
P. Benner, M. Stoll
+
+ Optimal control for Allen-Cahn equations enhanced by model predictive control
+
+ Preprint, MPI Magdeburg, 2013.
+
+
A. Bonito, R. DeVore, R. H. Nochetto
Adaptive Finite Element Methods for Elliptic Problems with Discontinuous Coefficients
@@ -255,10 +287,25 @@
A. Bonito, I. Kyza, R. H. Nochetto
- A DG approach to higher order ALE formulations in
- time
+ A dG Approach to Higher Order ALE Formulations in Time
+
+
+ 2012 Barrett Lectures, The IMA Volume in Mathematics and its Applications, Vol. 157, 36 pages, 2013, Springer.
+
+
+
A. Bonito, I. Kyza, R. H. Nochetto
+
+ Time-discrete higher order ALE formulations: A
+ priori error analysis
- submitted, 2013.
+ Numer. Math., 23 pages, 2013, 10.1007/s00211-013-0539-3.
+
+
+
A. Bonito, I. Kyza, R. H. Nochetto
+
+ Time-discrete higher order ALE formulations: Stability
+
+ SIAM J. Numer. Anal., 51(1), 577--608, 2013.
J. Bosch, M. Stoll, P. Benner
@@ -270,6 +317,23 @@
Preprint 13/01, MPI Magdeburg, 2013.
+
J. Bosch, D. Kay, M. Stoll, A. J. Wathen
+
+ Fast solvers for Cahn-Hilliard inpainting
+
+ Technical report 1705, The Mathematical Institute,
+ University of Oxford; submitted, 2013.
+
+
+
A. Cangiani, J. Chapman, E. Georgoulis, M. Jensen
+
+ Implementation of the Continuous-Discontinuous
+ Galerkin Finite Element Method
+
+ Numerical Mathematics and Advanced Applications 2011,
+ pp. 315-322, 2013.
+
+
T. Carraro, J. Joos
Parameter estimation for a reconstructed SOFC
@@ -287,6 +351,38 @@
arXiv:1301.6580v0, 2013.
+
C.-C. Chueh, N. Djilali, W. Bangerth
+
+ An h-adaptive Operator Splitting Method for
+ Two-phase Flow in 3D Heterogeneous Porous Media
+
+ SIAM Journal on Scientific Computing, vol. 35, pp. B149-175, 2013.
+
+
+
D. Devaud
+
+ Adaptive Methods for the Stokes System with Discontinuous Viscosities
+
+
+ MSc thesis, EPFL, 2013.
+
+
+
T. Dohnal, W. Dörfler
+
+ Coupled Mode Equation Modeling for Out-of-Plane Gap
+ Solitons in 2D Photonic Crystals
+
+ Multiscale Modeling and Simulation, vol. 11, pp. 162-191, 2013.
+
+
+
I. Donev
+
+ Time Dependent Finite Element Simulations of a Generalized Oldroyd-B Fluid
+
+
+ MSc Thesis, University of Cape Town, 2013.
+
+
W. Dörfler, S. Findeisen
Numerical optimization of a waveguide transition
@@ -315,6 +411,33 @@
Communications in Computational Physics, accepted, 2013.
+
E. Emmrich, A. Wróblewska-Kamińska
+
+ Convergence of a Full Discretization of Quasi-linear Parabolic Equations in Isotropic and Anisotropic Orlicz Spaces
+
+
+ SIAM Journal on Numerical Analysis, vol. 51, pp. 1163-1184, 2013.
+
+
+
J. Fang, X. Gao, A. Zhou
+
+ A finite element recovery approach to eigenvalue
+ approximations with applications to electronic structure
+ calculations
+
+
+ Journal of Scientific Computing, vol. 55, pp. 432-454, 2013.
+
+
+
A. Geringer, B. Lenhof, S. Diebels
+
+ Macroscopic modeling of foams: an order-parameter
+ approach vs. a micropolar model
+
+
+ Technische Mechanik, vol. 33, pp. 87-96, 2013.
+
+
F. Gimbel
Modelling and numerical simulation of contact and lubrication
@@ -339,6 +462,28 @@
arXiv:1303.5362, submitted, 2013.
+
+ R. Hartmann
+
+ Higher-order and adaptive discontinuous Galerkin
+ methods with shock-capturing applied to transonic turbulent
+ delta wing flow
+
+
+ International Journal for Numerical Methods in Fluids,
+ vol. 72, pp. 883-894, 2013.
+
+
+
T. Heister, G. Rapin
+
+ Efficient augmented Lagrangian-type preconditioning
+ for the Oseen problem using Grad-Div stabilization
+
+ Int. J. Num. Meth. Fluids, 71, 118–134, 2013
+ (DOI)
+
+
M. Hinze, U. Mathes
Model order reduction for networks of ODE and PDE systems
@@ -349,6 +494,15 @@
pp 92-101, 2013.
+
S. Joshi, J, Walton
+
+ Reconstruction of the residual stresses in a hyperelastic body using ultrasound techniques
+
+
+ International Journal on Engineering Science, vol. 70,
+ pp. 46-72, 2013.
+
+
T. Krüger
Regularization-based fictitious domain methods
@@ -357,6 +511,26 @@
PhD thesis, University of Siegen, Germany, 2013.
+
K. Kumar, M.F. Wheeler, T. Wick
+
+ Reactive flow in a thin channel
+and reaction-induced boundary movement in
+a monolithic ALE framework
+
+
+ submitted to SISC, 2013.
+
+
+
B. Lenhof, A. Geringer, S. Diebels
+
+ Macroscopic modeling of size effects in foams using
+ an order parameter
+
+
+ Generalized Continua as Models for Materials,
+ Advanced Structured Materials, vol. 22, pp. 237-254, 2013.
+
+
S. H. Lim
Numerical Simulation of Two-phase Heat Flow and Transient
@@ -366,6 +540,24 @@
Undergraduate honors thesis, University of Michigan, Ann Arbor, 2013.
+
A. Mikelic, M.F. Wheeler, T. Wick
+
+ A phase field approach to the fluid filled fracture surrounded by a poroelastic medium
+
+
+ submitted, ICES preprint on http://www.ices.utexas.edu/research/reports/
+
+
+
A. Mola, L. Heltai, A. DeSimone
+
+ A stable and adaptive semi-Lagrangian potential
+ model for unsteady and nonlinear ship-wave
+ interactions
+
+ Engineering Analysis with Boundary Elements, vol. 37,
+ pp. 128-143, 2013.
+
+
R. H. Nochetto, A. J. Salgado, I. Tomas
The micropolar Navier-Stokes equations: A priori error analysis
@@ -373,6 +565,21 @@
arXiv:1303.7005, submitted, 2013.
+
T. Povall
+
+ Single Crystal Plasticity at Finite Strains: A Computational Investigation of Hardening Relations
+
+ MSc Thesis, University of Cape Town, 2013.
+
+
+
T. Richter, T. Wick
+
+ Optimal Control and Parameter Estimation for Stationary Fluid-Structure Interaction Problems
+
+
+ SISC, accepted in May, 2013.
+
+
S. Roy, L. Heltai, D. Drapaca, F. Costanzo
An immersed finite element method approach for brain biomechanics
@@ -398,6 +605,40 @@
(eds.), Spinger Verlag, pp. 293-303, 2013.
+
M. Sagebaum, N. R. Gauger, U. Naumann, J. Lotz, K. Leppkes
+
+ Algorithmic differentiation of a complex C++ code with underlying libraries
+
+
+ Procedia Computer Science, vol. 18, pp. 208-217, 2013.
+
+
+
P. Siehr
+
+ Stabilisierungsmethoden für die Stokes-Gleichungen
+
+
+ Bachelor thesis, University of Heidelberg, Germany, 2013.
+
+
+
+ M. Steigemann, B. Schramm
+
+ Precise computation and error control of stress
+ intensity factors and certain integral characteristics in
+ anisotropic inhomogeneous materials
+
+
+ International Journal of Fracture, vol. 182, pp. 67-91, 2013.
+
+
+
M. Stoll, T. Breiten
+
+ A low-rank in time approach to PDE-constrained optimization
+
+ Max Planck Institute Magdeburg, Preprint MPIMD/13-08, 2013.
+
+
N. Vakulin, R. Shaw, T. Livingston
ELEC 490, final report: High performance computing with GPUs
@@ -407,6 +648,88 @@
2013
+
A. Vidal-Ferrandiz, R. Fayez, D. Ginestar, G. Verdú
+
+ Solution of the Lambda modes problem of a nuclear
+ power reactor using an h-p finite element method
+
+
+ Conference abstract, Mathematical Modelling in Engineering &
+ Human Behaviour 2013, 2013.
+
+
+
T. Wick, A. H. Elsheikh, M.F. Wheeler
+
+ Parameter Estimation for the Coupled Biot-Lam\'e-Navier Problem in Subsurface Modeling
+
+
+ ARMA Conference in San Francisco, Jun 23-26, 2013.
+
+
+
J. Weinbub, K. Rupp, S. Selberherr
+
+ ViennaX: a parallel plugin execution framework for
+ scientific computing
+
+
+ Engineering with Computers, DOI 10.1007/s00366-013-0314-1, February 2013.
+
+
+
T. Wick
+
+ Flapping and Contact FSI Computations with the
+ Fluid-Solid Interface-Tracking/Interface-Capturing Technique
+ and Mesh Adaptivity
+
+
+ Comp. Mech., DOI: 10.1007/s00466-013-0890-3, 2013.
+
+
+
T. Wick
+
+ Coupling of fully Eulerian and arbitrary Lagrangian-Eulerian
+ methods for fluid-structure interaction computations
+
+
+ Comp. Mech., DOI: 10.1007/s00466-013-0866-3, 2013.
+
+
+
T. Wick
+
+ Solving monolithic fluid-structure interaction
+ problems in arbitrary
+ Lagrangian Eulerian coordinates
+ with the deal.II library
+
+
+ ANS, vol. 1, pp. 1-19, 2013. http://www.archnumsoft.org/
+
+
+
T. Wick
+
+ Fully Eulerian fluid-structure interaction for time-dependent problems
+
+
+ Comp. Methods Appl. Mech. Engrg., vol. 255, pp. 14-26, 2013.
+
+
+
J. Willems
+
+ Robust Multilevel Solvers for High-Contrast Anisotropic
+ Multiscale Problems
+
+
+ Journal of Computational and Applied Mathematics, 251:47-60, 2013, doi:10.1016/j.cam.2013.03.030.
+
+
+
J. Willems
+
+ Spectral Coarse Spaces in Robust Two-Level Schwartz Methods
+
+
+ O. Iliev, S. Margenov, P. Minev, P. Vassilevski, L. Zikatanov, editors, Numerical Solution of Partial Differential Equations: Theory, Algorithms and their Applications, 303-326, Springer Proceedings in Mathematics & Statistics, Springer, 2013.
+
+
S. Yoon, Y. T. Kang
Mass transfer enhancement in non-Brownian particle
@@ -479,21 +802,6 @@
-
A. Bonito, I. Kyza, R. H. Nochetto
-
- Time-discrete higher order ALE formulations: a
- priori error analysis
-
- Numer. Math., to appear, 2012.
-
-
-
A. Bonito, I. Kyza, R. H. Nochetto
-
- Time-discrete higher order ALE formulations: stability
-
- SIAM J. Numer. Anal., to appear, 2012.
-
-
M. Braack, G. Lube, L. Röhe
@@ -533,16 +841,6 @@
PhD Thesis, Karlsruhe Institute of Technology (KIT), 2012.
-
A. Cangiani, J. Chapman, E. Georgoulis, M. Jensen
-
- Implementation of the Continuous-Discontinuous
- Galerkin Finite Element Method
-
- arXiv:1201.2878v1 [math.NA], 2012.
-
-
-
-
A. Cangiani, J. Chapman, E. Georgoulis, M. Jensen
On Local Super-Penalization of Interior Penalty Discontinuous Galerkin Methods
@@ -589,15 +887,6 @@
Electrochimica Acta, Volume 77, pp. 309-314, 2012.
-
C.-C. Chueh, N. Djilali, W. Bangerth
-
- An h-adaptive Operator Splitting Method for
- Two-phase Flow in 3D Heterogeneous Porous Media
-
- Preprint, Institute for Applied Mathematics and
- Computational Science, Texas A&M University, 2012.
-
-
A. Demlow, A. H. Georgoulis
Pointwise a posteriori error control for
@@ -615,14 +904,6 @@
Journal of the Electrochemical Society, 159(5), B1-B10, 2012.
-
T. Dohnal, W. Dörfler
-
- Coupled Mode Equation Modeling for Out-of-Plane Gap
- Solitons in 2D Photonic Crystals
-
- arXiv:1202.3583v1 [nlin.PS], 2012.
-
-
Y. Efendiev, J. Galvis, R. Lazarov, J. Willems
Robust domain decomposition preconditioners for abstract
@@ -652,17 +933,6 @@
Journal of Computational Physics, vol. 231, pp. 3166–3180, 2012.
-
J. Fang, X. Gao, A. Zhou
-
- A finite element recovery approach to eigenvalue
- approximations with applications to electronic structure
- calculations
-
-
- Journal of Scientific Computing, in press, 2012.
-
-
-
T. Fankhauser
An hp-adaptive strategy based on smoothness
@@ -717,6 +987,15 @@
Submitted to ACM Trans. Math. Softw., 2011.
+
C. Goll, T. Wick, W. Wollner
+
+ DOpElib: Differential Equations and Optimization Environment;
+A Goal Oriented Software Library for Solving PDEs and Optimization Problems with PDEs
+
+
+ submitted in Dec 2012.
+
+
N. Gupta, N. Nataraj
A posteriori error estimates for an optimal control
@@ -753,15 +1032,6 @@
Springer. In press.
-
T. Heister, G. Rapin
-
- Efficient augmented Lagrangian-type preconditioning
- for the Oseen problem using Grad-Div stabilization
-
- Int. J. Num. Meth. Fluids, 2013, 71, 118–134.
- (DOI)
-
-
L. Heltai, S. Roy, F. Costanzo
A Fully Coupled Immersed Finite Element Method for
@@ -865,15 +1135,6 @@
Journal of the Mechanics and Physics of Solids, vol. 60, pp. 1221-1239, 2012.
-
A. Mola, L. Heltai, A. DeSimone
-
- A stable and adaptive semi-Lagrangian potential
- model for unsteady and nonlinear ship-wave
- interactions
-
- arXiv:1203.3384v1 [math.NA], 2012.
-
-
C. Neuen, M. Griebel, J. Hamaekers
Multiscale simulation of ion migration for battery system
@@ -1046,30 +1307,24 @@
50th AIAA Aerospace Sciences Meeting, AIAA 2012-458, 2012.
-
J. Willems
-
- Robust multilevel methods for general symmetric positive
- definite operators
-
-
- RICAM Report 2012-06, 2012.
-
-
J. Willems
-
- Robust multilevel methods for high-contrast anisotropic
- multiscale problems
-
+
T. Wick
+
+ Goal-oriented mesh adaptivity for fluid-structure interaction with application to heart-valve settings
+
- RICAM Report 2012-07, 2012.
-
J. Willems
- Spectral coarse spaces in robust two-level methods
+ Robust multilevel methods for general symmetric positive
+ definite operators
- RICAM Report 2012-20, 2012.
+ RICAM Report 2012-06, 2012.
S. Yoon, M. A. Walkley, O. G. Harlen
@@ -1624,15 +1879,6 @@
Comp. Geosc., vol. 15, pp. 647-659, 2011.
-
T. Wick
-
- Fluid-Structure Interaction based on Monolithic Variational
- Formulations with Different Types of Pseudo-Structure Extension
-
-
- submitted, 2010
-
-
T. Wick
Fluid-structure interactions using different mesh motion techniques
@@ -1641,15 +1887,6 @@
Computers and Structures, vol. 89, pp. 1456-1467, 2011.
-
T. Wick
-
- Solving Monolithic Fluid-Structure Interaction Problems in
- Arbitrary Lagrangian Eulerian Coordinates with the deal.II Library
-
-
- IWR Report, University of Heidelberg, Germany, 2011.
-
-
T. Wick
Adaptive finite element simulation of fluid-structure
@@ -2222,16 +2459,6 @@
Diploma Thesis, University of Heidelberg, Germany, 2010
-
- T. Wick
-
- Monolithic Fluid-Structure Interaction Modelling for
- a Long Axis Heart Valve Simulation
-
-
- Preprint, IWR Heidelberg, Germany, 2010
-
-
T. D. Young, R. Armiento
diff --git a/deal.II/doc/readme.html b/deal.II/doc/readme.html
index e80ebdac83..46a57e77da 100644
--- a/deal.II/doc/readme.html
+++ b/deal.II/doc/readme.html
@@ -225,7 +225,6 @@
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/path/install/dir ../deal.II
- make
make install
These steps compile, link and install the deal.II library. The
@@ -239,10 +238,12 @@
/path/install/dir is the directory which deal.II
should be installed into. This can be a directory in your home
directory (e.g., ~/bin/deal.II) or a directory
- such as /usr/local if you have root privileges.
+ such as /usr/local if you have root privileges.
+ Another option is to use `pwd`/../installed/ (note the
+ backticks).
If your machine has multiple processors, use make
- -jN in the last two steps, where N is the
+ -jN in the last step, where N is the
number of simultaneous build processes you want make
to use at any given time. Allowing make to use
more simultaneous build processes (assuming you have that many
@@ -364,7 +365,7 @@
paths.
However, this behavior can be changed using command line switches to
the initial call to cmake. A detailed description
- can be found here.
+ can be found here: Detailed build system description.
@@ -414,6 +415,24 @@
-DDEAL_II_COMPONENT_PARAMETER_GUI=ON. Beware of the
fact that parameter_gui needs development packages for Qt.
+
+
+
+ 64bit indices: By default, deal.II use unsigned int (32bit)
+ indices for degrees of freedom, using
+ the types::global_dof_index type. This limits the number of
+ unknowns to approximately four
+ billions. If larger problem must be solved, pass the
+ -DDEAL_II_WITH_64BIT_INDICES=ON argument to
+ cmake. You will not be able to solve problems of this size on
+ a single machine, but only when using clusters of computers and linear
+ algebra packages PETSc or Trilinos.
+ To use this option with PETSc, PESTc must be compiled
+ with the option --with-64-bit-indices. To use this option
+ with Trilinos, Trilinos 11.2 or later is needed (there is a bug in
+ Trilinos 11.0 that prevents the use of 64bit indices).
+
+
@@ -478,7 +497,7 @@
scale eigenvalue problems.
ARPACK
should be readily packaged by most Linux distributions.
- (Don't forget to install a develpment version of the library).
+ (Don't forget to install a development version of the library).
To use a self compiled version, specify
-DARPACK_DIR=/path/to/arpack on the command line.
@@ -502,7 +521,7 @@
matrices.
Both libraries should be packaged by almost all Linux
distributions and found automatically whenever available.
- (You might have to install develpment versions of the libraries
+ (You might have to install development versions of the libraries
for deal.II being able to use them).
For details on how to set up deal.II with a
non standard BLAS/LAPACK implementation, see the
@@ -538,7 +557,7 @@
format.
HDF5 should be
readily packaged by most Linux distributions. (Don't forget
- to install a develpment version of the library).
+ to install a development version of the library).
To use a self compiled version, specify
-DHDF5_DIR=/path/to/hdf5 on the command line.
@@ -577,7 +596,7 @@
across nodes of a cluster.
MUMPS
should be readily packaged by most Linux distributions.
- (Don't forget to install a develpment version of the library).
+ (Don't forget to install a development version of the library).
To use a self compiled version, provide the
-DMUMPS_DIR=/path/to/mumps argument to cmake.
For a detailed description on how to compile MUMPS (and
@@ -597,7 +616,7 @@
one of the functions of the GridIn class.
NetCDF should be readily packaged by most
- Linux distributions. (Don't forget to install a develpment
+ Linux distributions. (Don't forget to install a development
version of the library). To use a self compiled version, pass
-DNETCDF_DIR=/path/to/netcdf to cmake.
@@ -629,7 +648,7 @@
PETSc
is already packaged by some Linux distributions and should be
found automatically if present. (Don't forget to install a
- develpment version of the library). To use a self compiled
+ development version of the library). To use a self compiled
version of PETSc, add -DPETSC_DIR=/path/to/petsc
-DPETSC_ARCH=architecture to the argument list for
cmake. The values for these arguments must be
diff --git a/deal.II/examples/CMakeLists.txt b/deal.II/examples/CMakeLists.txt
index 2f000368c2..3655a42bf1 100644
--- a/deal.II/examples/CMakeLists.txt
+++ b/deal.II/examples/CMakeLists.txt
@@ -1,16 +1,18 @@
-#####
+## ---------------------------------------------------------------------
+## $Id$
##
-## Copyright (C) 2012 by the deal.II authors
+## Copyright (C) 2012 - 2013 by the deal.II authors
##
## This file is part of the deal.II library.
##
-##
-## This file is dual licensed under QPL 1.0 and LGPL 2.1 or any later
-## version of the LGPL license.
+## The deal.II library is free software; you can use it, redistribute
+## it, and/or modify it under the terms of the GNU Lesser General
+## Public License as published by the Free Software Foundation; either
+## version 2.1 of the License, or (at your option) any later version.
+## The full text of the license can be found in the file LICENSE at
+## the top level of the deal.II distribution.
##
-## Author: Matthias Maier
-##
-#####
+## ---------------------------------------------------------------------
IF(DEAL_II_COMPONENT_EXAMPLES)
INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/
diff --git a/deal.II/examples/doxygen/block_matrix_array.cc b/deal.II/examples/doxygen/block_matrix_array.cc
index 9bd247f98f..6a38408631 100644
--- a/deal.II/examples/doxygen/block_matrix_array.cc
+++ b/deal.II/examples/doxygen/block_matrix_array.cc
@@ -1,13 +1,19 @@
-// $Id$
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2005-2006, 2012 by the deal.II authors
+// Copyright (C) 2005 - 2013 by the deal.II authors
//
-// This file is subject to QPL and may not be distributed without copyright
-// and license information. Please refer to the file
-// deal.II/doc/license.html for the text and further information on this
-// license.
+// This file is part of the deal.II library.
//
-//---------------------------------------------------------------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
// See documentation of BlockMatrixArray for documentation of this example
diff --git a/deal.II/examples/doxygen/compressed_block_sparsity_pattern.cc b/deal.II/examples/doxygen/compressed_block_sparsity_pattern.cc
index f7a894dbc8..65b9386800 100644
--- a/deal.II/examples/doxygen/compressed_block_sparsity_pattern.cc
+++ b/deal.II/examples/doxygen/compressed_block_sparsity_pattern.cc
@@ -1,14 +1,19 @@
-//---------------------------------------------------------------------------
-// $Id$
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2006-2007 by the deal.II authors
+// Copyright (C) 2006 - 2013 by the deal.II authors
//
-// This file is subject to QPL and may not be distributed
-// without copyright and license information. Please refer
-// to the file deal.II/doc/license.html for the text and
-// further information on this license.
+// This file is part of the deal.II library.
//
-//---------------------------------------------------------------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
// See documentation of BlockCompressedSparsityPattern for documentation of this example
diff --git a/deal.II/examples/doxygen/product_matrix.cc b/deal.II/examples/doxygen/product_matrix.cc
index 6a2012ed14..b3487b5925 100644
--- a/deal.II/examples/doxygen/product_matrix.cc
+++ b/deal.II/examples/doxygen/product_matrix.cc
@@ -1,14 +1,19 @@
-//---------------------------------------------------------------------------
-// $Id$
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2005-2006, 2010, 2012 by the deal.II authors
+// Copyright (C) 2005 - 2013 by the deal.II authors
//
-// This file is subject to QPL and may not be distributed without copyright
-// and license information. Please refer to the file
-// deal.II/doc/license.html for the text and further information on this
-// license.
+// This file is part of the deal.II library.
//
-//---------------------------------------------------------------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
// See documentation of ProductMatrix for documentation of this example
diff --git a/deal.II/examples/doxygen/theta_timestepping.cc b/deal.II/examples/doxygen/theta_timestepping.cc
index f0900ba50a..94871bd102 100644
--- a/deal.II/examples/doxygen/theta_timestepping.cc
+++ b/deal.II/examples/doxygen/theta_timestepping.cc
@@ -1,14 +1,19 @@
-//---------------------------------------------------------------------------
-// $Id$
+// ---------------------------------------------------------------------
+// $Id$
//
-// Copyright (C) 2005-2006, 2010, 2012 by the deal.II authors
+// Copyright (C) 2005 - 2013 by the deal.II authors
//
-// This file is subject to QPL and may not be distributed
-// without copyright and license information. Please refer
-// to the file deal.II/doc/license.html for the text and
-// further information on this license.
+// This file is part of the deal.II library.
//
-//---------------------------------------------------------------------------
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
// See documentation of ThetaTimestepping for documentation of this example
diff --git a/deal.II/examples/step-1/step-1.cc b/deal.II/examples/step-1/step-1.cc
index 26f93aa863..c887721bed 100644
--- a/deal.II/examples/step-1/step-1.cc
+++ b/deal.II/examples/step-1/step-1.cc
@@ -1,12 +1,19 @@
-/* $Id$
- *
- * Copyright (C) 1999-2003, 2005-2007, 2009, 2011-2013 by the deal.II authors
- *
- * This file is subject to QPL and may not be distributed
- * without copyright and license information. Please refer
- * to the file deal.II/doc/license.html for the text and
- * further information on this license.
- */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1999 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
// @sect3{Include files}
diff --git a/deal.II/examples/step-10/step-10.cc b/deal.II/examples/step-10/step-10.cc
index d9bf4843a7..ca6507013b 100644
--- a/deal.II/examples/step-10/step-10.cc
+++ b/deal.II/examples/step-10/step-10.cc
@@ -1,13 +1,23 @@
-/* Author: Wolfgang Bangerth, Ralf Hartmann, University of Heidelberg, 2001 */
-
-/* $Id$ */
-/* */
-/* Copyright (C) 2001-2004, 2006-2007, 2011-2012 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2001 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Authors: Wolfgang Bangerth, Ralf Hartmann, University of Heidelberg, 2001
+ */
+
// The first of the following include files are probably well-known by now and
// need no further explanation.
diff --git a/deal.II/examples/step-11/step-11.cc b/deal.II/examples/step-11/step-11.cc
index d27b6d1fda..c4f7647646 100644
--- a/deal.II/examples/step-11/step-11.cc
+++ b/deal.II/examples/step-11/step-11.cc
@@ -1,13 +1,23 @@
-/* Author: Wolfgang Bangerth, University of Heidelberg, 2001 */
-
-/* $Id$ */
-/* */
-/* Copyright (C) 2001-2004, 2006, 2009, 2011-2012 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2001 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Wolfgang Bangerth, University of Heidelberg, 2001
+ */
+
// As usual, the program starts with a rather long list of include files which
// you are probably already used to by now:
diff --git a/deal.II/examples/step-12/step-12.cc b/deal.II/examples/step-12/step-12.cc
index 2ad4fc7d51..e50de11a6f 100644
--- a/deal.II/examples/step-12/step-12.cc
+++ b/deal.II/examples/step-12/step-12.cc
@@ -1,13 +1,23 @@
-/* Author: Guido Kanschat, Texas A&M University, 2009 */
-
-/* $Id$ */
-/* */
-/* Copyright (C) 2010-2013 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2009 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Guido Kanschat, Texas A&M University, 2009
+ */
+
// The first few files have already been covered in previous examples and will
// thus not be further commented on:
diff --git a/deal.II/examples/step-13/step-13.cc b/deal.II/examples/step-13/step-13.cc
index 054b3b5f79..4334e90534 100644
--- a/deal.II/examples/step-13/step-13.cc
+++ b/deal.II/examples/step-13/step-13.cc
@@ -1,13 +1,22 @@
-/* Author: Wolfgang Bangerth, University of Heidelberg, 2001, 2002 */
-
-/* $Id$ */
-/* */
-/* Copyright (C) 2001-2004, 2006-2009, 2011-2013 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2001 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Wolfgang Bangerth, University of Heidelberg, 2001, 2002
+ */
// As in all programs, we start with a list of include files from the library,
@@ -765,7 +774,7 @@ namespace Step13
// And while we're already computing things in parallel, interpolating
// boundary values is one more thing that can be done independently, so
// we do it here:
- std::map boundary_value_map;
+ std::map boundary_value_map;
VectorTools::interpolate_boundary_values (dof_handler,
0,
*boundary_values,
@@ -807,7 +816,7 @@ namespace Step13
FullMatrix cell_matrix (dofs_per_cell, dofs_per_cell);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
for (typename DoFHandler::active_cell_iterator cell=begin_cell;
cell!=end_cell; ++cell)
@@ -1026,7 +1035,7 @@ namespace Step13
Vector cell_rhs (dofs_per_cell);
std::vector rhs_values (n_q_points);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
typename DoFHandler::active_cell_iterator
cell = this->dof_handler.begin_active(),
diff --git a/deal.II/examples/step-14/step-14.cc b/deal.II/examples/step-14/step-14.cc
index 9536e7d82c..a8e2883368 100644
--- a/deal.II/examples/step-14/step-14.cc
+++ b/deal.II/examples/step-14/step-14.cc
@@ -1,13 +1,22 @@
-/* Author: Wolfgang Bangerth, ETH Zurich, 2002 */
-
-/* $Id$ */
-/* */
-/* Copyright (C) 2002-2013 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2002 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Wolfgang Bangerth, ETH Zurich, 2002
+ */
// Start out with well known things...
@@ -554,7 +563,7 @@ namespace Step14
assemble_rhs (linear_system.rhs);
linear_system.hanging_node_constraints.condense (linear_system.rhs);
- std::map boundary_value_map;
+ std::map boundary_value_map;
VectorTools::interpolate_boundary_values (dof_handler,
0,
*boundary_values,
@@ -585,7 +594,7 @@ namespace Step14
FullMatrix cell_matrix (dofs_per_cell, dofs_per_cell);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
for (typename DoFHandler::active_cell_iterator cell=begin_cell;
cell!=end_cell; ++cell)
@@ -806,7 +815,7 @@ namespace Step14
Vector cell_rhs (dofs_per_cell);
std::vector rhs_values (n_q_points);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
typename DoFHandler::active_cell_iterator
cell = this->dof_handler.begin_active(),
diff --git a/deal.II/examples/step-15/step-15.cc b/deal.II/examples/step-15/step-15.cc
index 098be10b69..4ec576c051 100644
--- a/deal.II/examples/step-15/step-15.cc
+++ b/deal.II/examples/step-15/step-15.cc
@@ -1,14 +1,23 @@
-/* $Id$ */
-/* Author: Sven Wetterauer, University of Heidelberg, 2012 */
-
-/* $Id$ */
-/* */
-/* Copyright (C) 2012 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2012 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Sven Wetterauer, University of Heidelberg, 2012
+ */
+
// @sect3{Include files}
@@ -243,7 +252,7 @@ namespace Step15
std::vector > old_solution_gradients(n_q_points);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
typename DoFHandler::active_cell_iterator
cell = dof_handler.begin_active(),
@@ -323,7 +332,7 @@ namespace Step15
hanging_node_constraints.condense (system_matrix);
hanging_node_constraints.condense (system_rhs);
- std::map boundary_values;
+ std::map boundary_values;
VectorTools::interpolate_boundary_values (dof_handler,
0,
ZeroFunction(),
@@ -464,12 +473,12 @@ namespace Step15
template
void MinimalSurfaceProblem::set_boundary_values ()
{
- std::map boundary_values;
+ std::map boundary_values;
VectorTools::interpolate_boundary_values (dof_handler,
0,
BoundaryValues(),
boundary_values);
- for (std::map::const_iterator
+ for (std::map::const_iterator
p = boundary_values.begin();
p != boundary_values.end(); ++p)
present_solution(p->first) = p->second;
@@ -514,7 +523,7 @@ namespace Step15
Vector cell_rhs (dofs_per_cell);
std::vector > gradients(n_q_points);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
typename DoFHandler::active_cell_iterator
cell = dof_handler.begin_active(),
diff --git a/deal.II/examples/step-16/step-16.cc b/deal.II/examples/step-16/step-16.cc
index 8ebda66254..81e5ff040d 100644
--- a/deal.II/examples/step-16/step-16.cc
+++ b/deal.II/examples/step-16/step-16.cc
@@ -1,15 +1,25 @@
-/* Author: Guido Kanschat, University of Heidelberg, 2003 */
-/* Baerbel Janssen, University of Heidelberg, 2010 */
-/* Wolfgang Bangerth, Texas A&M University, 2010 */
-
-/* $Id$ */
-/* */
-/* Copyright (C) 2003-2004, 2006-2013 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2003 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Authors: Guido Kanschat, University of Heidelberg, 2003
+ * Baerbel Janssen, University of Heidelberg, 2010
+ * Wolfgang Bangerth, Texas A&M University, 2010
+ */
+
// As discussed in the introduction, most of this program is copied almost
// verbatim from step-6, which itself is only a slight modification of
@@ -367,7 +377,7 @@ namespace Step16
FullMatrix cell_matrix (dofs_per_cell, dofs_per_cell);
Vector cell_rhs (dofs_per_cell);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
const Coefficient coefficient;
std::vector coefficient_values (n_q_points);
@@ -433,7 +443,7 @@ namespace Step16
FullMatrix cell_matrix (dofs_per_cell, dofs_per_cell);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
const Coefficient coefficient;
std::vector coefficient_values (n_q_points);
diff --git a/deal.II/examples/step-17/step-17.cc b/deal.II/examples/step-17/step-17.cc
index 9f7f7c6b14..43e274a2b6 100644
--- a/deal.II/examples/step-17/step-17.cc
+++ b/deal.II/examples/step-17/step-17.cc
@@ -1,13 +1,22 @@
-/* Author: Wolfgang Bangerth, University of Texas at Austin, 2000, 2004 */
-
-/* $Id$ */
-/* */
-/* Copyright (C) 2000, 2004-2009, 2011-2012 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2000 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Wolfgang Bangerth, University of Texas at Austin, 2000, 2004
+ */
// First the usual assortment of header files we have already used in previous
@@ -298,7 +307,7 @@ namespace Step17
// While we're at it, let us also count how many degrees of freedom there
// exist on the present process:
- const unsigned int n_local_dofs
+ const types::global_dof_index n_local_dofs
= DoFTools::count_dofs_with_subdomain_association (dof_handler,
this_mpi_process);
@@ -390,7 +399,7 @@ namespace Step17
FullMatrix cell_matrix (dofs_per_cell, dofs_per_cell);
Vector cell_rhs (dofs_per_cell);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
std::vector lambda_values (n_q_points);
std::vector mu_values (n_q_points);
@@ -503,8 +512,8 @@ namespace Step17
cell->get_dof_indices (local_dof_indices);
hanging_node_constraints
.distribute_local_to_global(cell_matrix, cell_rhs,
- local_dof_indices,
- system_matrix, system_rhs);
+ local_dof_indices,
+ system_matrix, system_rhs);
}
// Now compress the vector and the system matrix:
@@ -517,7 +526,7 @@ namespace Step17
//
// However, we still have to apply boundary values, in the same way as we
// always do:
- std::map boundary_values;
+ std::map boundary_values;
VectorTools::interpolate_boundary_values (dof_handler,
0,
ZeroFunction(dim),
diff --git a/deal.II/examples/step-18/step-18.cc b/deal.II/examples/step-18/step-18.cc
index 607d760ecb..34ed6cb280 100644
--- a/deal.II/examples/step-18/step-18.cc
+++ b/deal.II/examples/step-18/step-18.cc
@@ -1,13 +1,22 @@
-/* Author: Wolfgang Bangerth, University of Texas at Austin, 2000, 2004, 2005 */
-
-/* $Id$ */
-/* */
-/* Copyright (C) 2000, 2004-2009, 2011-2012 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2000 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Wolfgang Bangerth, University of Texas at Austin, 2000, 2004, 2005
+ */
// First the usual list of header files that have already been used in
@@ -512,12 +521,12 @@ namespace Step18
// Here is a vector where each entry denotes the numbers of degrees of
// freedom that are stored on the processor with that particular number:
- std::vector local_dofs_per_process;
+ std::vector local_dofs_per_process;
// Next, how many degrees of freedom the present processor stores. This
// is, of course, an abbreviation to
// local_dofs_per_process[this_mpi_process].
- unsigned int n_local_dofs;
+ types::global_dof_index n_local_dofs;
// In the same direction, also cache how many cells the present processor
// owns. Note that the cells that belong to a processor are not
@@ -1050,7 +1059,7 @@ namespace Step18
FullMatrix cell_matrix (dofs_per_cell, dofs_per_cell);
Vector cell_rhs (dofs_per_cell);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
BodyForce body_force;
std::vector > body_force_values (n_q_points,
@@ -1135,16 +1144,16 @@ namespace Step18
cell->get_dof_indices (local_dof_indices);
hanging_node_constraints
- .distribute_local_to_global (cell_matrix, cell_rhs,
+ .distribute_local_to_global (cell_matrix, cell_rhs,
local_dof_indices,
- system_matrix, system_rhs);
+ system_matrix, system_rhs);
}
// Now compress the vector and the system matrix:
system_matrix.compress(VectorOperation::add);
system_rhs.compress(VectorOperation::add);
-
+
// The last step is to again fix up boundary values, just as we already
// did in previous programs. A slight complication is that the
// apply_boundary_values function wants to have a solution
@@ -1182,7 +1191,7 @@ namespace Step18
// for each vector component and because we only want to restrict vertical
// motion, it has only its last component set:
FEValuesExtractors::Scalar z_component (dim-1);
- std::map boundary_values;
+ std::map boundary_values;
VectorTools::
interpolate_boundary_values (dof_handler,
0,
diff --git a/deal.II/examples/step-19/step-19.cc b/deal.II/examples/step-19/step-19.cc
index cac451597d..6f8b667281 100644
--- a/deal.II/examples/step-19/step-19.cc
+++ b/deal.II/examples/step-19/step-19.cc
@@ -1,13 +1,22 @@
-/* Author: Luca Heltai, Wolfgang Bangerth, 2005 */
-
-/* $Id$ */
-/* */
-/* Copyright (C) 2005-2006, 2011-2012 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2005 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Luca Heltai, Wolfgang Bangerth, 2005
+ */
// @sect4{Preliminaries}
diff --git a/deal.II/examples/step-2/step-2.cc b/deal.II/examples/step-2/step-2.cc
index ad6fd4a15e..1747f1db35 100644
--- a/deal.II/examples/step-2/step-2.cc
+++ b/deal.II/examples/step-2/step-2.cc
@@ -1,13 +1,23 @@
-/* Author: Wolfgang Bangerth, University of Heidelberg, 1999 */
-
-/* $Id$ */
-/* */
-/* Copyright (C) 1999-2003, 2006, 2008-2012 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1999 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Wolfgang Bangerth, University of Heidelberg, 1999
+ */
+
// The first few includes are just like in the previous program, so do not
// require additional comments:
diff --git a/deal.II/examples/step-20/step-20.cc b/deal.II/examples/step-20/step-20.cc
index cea600c2d7..e71fa739e8 100644
--- a/deal.II/examples/step-20/step-20.cc
+++ b/deal.II/examples/step-20/step-20.cc
@@ -1,13 +1,23 @@
-/* Author: Wolfgang Bangerth, Texas A&M University, 2005, 2006 */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2005 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Wolfgang Bangerth, Texas A&M University, 2005, 2006
+ */
-/* $Id$ */
-/* */
-/* Copyright (C) 2005-2008, 2010-2013 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
// @sect3{Include files}
@@ -330,7 +340,7 @@ namespace Step20
// of pressure variables equals the number of shape functions that are
// nonzero in the dim-th component. Let us compute these numbers and then
// create some nice output with that:
- std::vector dofs_per_component (dim+1);
+ std::vector dofs_per_component (dim+1);
DoFTools::count_dofs_per_component (dof_handler, dofs_per_component);
const unsigned int n_u = dofs_per_component[0],
n_p = dofs_per_component[dim];
@@ -422,7 +432,7 @@ namespace Step20
FullMatrix local_matrix (dofs_per_cell, dofs_per_cell);
Vector local_rhs (dofs_per_cell);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
// The next step is to declare objects that represent the source term,
// pressure boundary value, and coefficient in the equation. In addition
diff --git a/deal.II/examples/step-21/step-21.cc b/deal.II/examples/step-21/step-21.cc
index bd22cb396b..fbf4aee19e 100644
--- a/deal.II/examples/step-21/step-21.cc
+++ b/deal.II/examples/step-21/step-21.cc
@@ -1,13 +1,23 @@
-/* Author: Yan Li, Wolfgang Bangerth, Texas A&M University, 2006 */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2006 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Authors: Yan Li, Wolfgang Bangerth, Texas A&M University, 2006
+ */
-/* $Id$ */
-/* */
-/* Copyright (C) 2006-2013 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
// This program is an adaptation of step-20 and includes some technique of DG
// methods from step-12. A good part of the program is therefore very similar
@@ -477,7 +487,7 @@ namespace Step21
void InverseMatrix::vmult (Vector &dst,
const Vector &src) const
{
- SolverControl solver_control (std::max(src.size(), 200U),
+ SolverControl solver_control (std::max(src.size(), static_cast (200)),
1e-8*src.l2_norm());
SolverCG<> cg (solver_control);
@@ -606,7 +616,7 @@ namespace Step21
dof_handler.distribute_dofs (fe);
DoFRenumbering::component_wise (dof_handler);
- std::vector dofs_per_component (dim+2);
+ std::vector dofs_per_component (dim+2);
DoFTools::count_dofs_per_component (dof_handler, dofs_per_component);
const unsigned int n_u = dofs_per_component[0],
n_p = dofs_per_component[dim],
@@ -704,7 +714,7 @@ namespace Step21
FullMatrix local_matrix (dofs_per_cell, dofs_per_cell);
Vector local_rhs (dofs_per_cell);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
const PressureRightHandSide pressure_right_hand_side;
const PressureBoundaryValues pressure_boundary_values;
@@ -863,7 +873,7 @@ namespace Step21
std::vector > present_solution_values_face(n_face_q_points, Vector(dim+2));
std::vector neighbor_saturation (n_face_q_points);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
SaturationBoundaryValues saturation_boundary_values;
diff --git a/deal.II/examples/step-22/step-22.cc b/deal.II/examples/step-22/step-22.cc
index 3e8f8563b5..1fcf3b5a3b 100644
--- a/deal.II/examples/step-22/step-22.cc
+++ b/deal.II/examples/step-22/step-22.cc
@@ -1,13 +1,22 @@
-/* Author: Wolfgang Bangerth, Texas A&M University, 2008 */
-
-/* $Id$ */
-/* */
-/* Copyright (C) 2008-2012 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2008 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Wolfgang Bangerth, Texas A&M University, 2008
+ */
// @sect3{Include files}
@@ -481,7 +490,7 @@ namespace Step22
// DoFTools::count_dofs_per_block does the same as
// DoFTools::count_dofs_per_component, but now grouped as
// velocity and pressure block via block_component.
- std::vector dofs_per_block (2);
+ std::vector dofs_per_block (2);
DoFTools::count_dofs_per_block (dof_handler, dofs_per_block, block_component);
const unsigned int n_u = dofs_per_block[0],
n_p = dofs_per_block[1];
@@ -593,7 +602,7 @@ namespace Step22
FullMatrix local_matrix (dofs_per_cell, dofs_per_cell);
Vector local_rhs (dofs_per_cell);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
const RightHandSide right_hand_side;
std::vector > rhs_values (n_q_points,
diff --git a/deal.II/examples/step-23/step-23.cc b/deal.II/examples/step-23/step-23.cc
index b8c35a0eb0..628f840f7a 100644
--- a/deal.II/examples/step-23/step-23.cc
+++ b/deal.II/examples/step-23/step-23.cc
@@ -1,14 +1,22 @@
-/* Author: Wolfgang Bangerth, Texas A&M University, 2006 */
-
-/* $Id$ */
-/* Version: $Name: $ */
-/* */
-/* Copyright (C) 2006-2009, 2011-2012 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2006 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Wolfgang Bangerth, Texas A&M University, 2006
+ */
// @sect3{Include files}
@@ -542,7 +550,7 @@ namespace Step23
BoundaryValuesU boundary_values_u_function;
boundary_values_u_function.set_time (time);
- std::map boundary_values;
+ std::map boundary_values;
VectorTools::interpolate_boundary_values (dof_handler,
0,
boundary_values_u_function,
@@ -588,7 +596,7 @@ namespace Step23
BoundaryValuesV boundary_values_v_function;
boundary_values_v_function.set_time (time);
- std::map boundary_values;
+ std::map boundary_values;
VectorTools::interpolate_boundary_values (dof_handler,
0,
boundary_values_v_function,
diff --git a/deal.II/examples/step-24/step-24.cc b/deal.II/examples/step-24/step-24.cc
index 45b3871515..ccf969d74d 100644
--- a/deal.II/examples/step-24/step-24.cc
+++ b/deal.II/examples/step-24/step-24.cc
@@ -1,12 +1,22 @@
-/* Author: Xing Jin, Wolfgang Bangerth, Texas A&M University, 2006 */
-
-/* $Id$ */
-/* Copyright (C) 2006-2009, 2011-2012 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2006 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Xing Jin, Wolfgang Bangerth, Texas A&M University, 2006
+ */
// @sect3{Include files}
@@ -346,7 +356,7 @@ namespace Step24
FullMatrix cell_matrix (dofs_per_cell, dofs_per_cell);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
diff --git a/deal.II/examples/step-25/step-25.cc b/deal.II/examples/step-25/step-25.cc
index 057371fa19..a03335ce34 100644
--- a/deal.II/examples/step-25/step-25.cc
+++ b/deal.II/examples/step-25/step-25.cc
@@ -1,12 +1,22 @@
-/* Author: Ivan Christov, Wolfgang Bangerth, Texas A&M University, 2006 */
-
-/* $Id$ */
-/* Copyright (C) 2006-2009, 2011-2012 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2006 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Ivan Christov, Wolfgang Bangerth, Texas A&M University, 2006
+ */
// @sect3{Include files and global variables}
@@ -413,7 +423,7 @@ namespace Step25
const unsigned int n_q_points = quadrature_formula.size();
Vector local_nl_term (dofs_per_cell);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
std::vector old_data_values (n_q_points);
std::vector new_data_values (n_q_points);
@@ -475,7 +485,7 @@ namespace Step25
const unsigned int n_q_points = quadrature_formula.size();
FullMatrix local_nl_matrix (dofs_per_cell, dofs_per_cell);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
std::vector old_data_values (n_q_points);
std::vector new_data_values (n_q_points);
diff --git a/deal.II/examples/step-26/step-26.cc b/deal.II/examples/step-26/step-26.cc
index 0d4da01968..23c2250e1e 100644
--- a/deal.II/examples/step-26/step-26.cc
+++ b/deal.II/examples/step-26/step-26.cc
@@ -1,13 +1,23 @@
-/* Author: Wolfgang Bangerth, Texas A&M University, 2013 */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Wolfgang Bangerth, Texas A&M University, 2013
+ */
-/* $Id$ */
-/* */
-/* Copyright (C) 2013 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
#include
#include
@@ -59,7 +69,7 @@ namespace Step26
void solve_time_step();
void output_results() const;
void refine_mesh (const unsigned int min_grid_level,
- const unsigned int max_grid_level);
+ const unsigned int max_grid_level);
Triangulation triangulation;
FE_Q fe;
@@ -176,13 +186,13 @@ namespace Step26
dof_handler.distribute_dofs(fe);
std::cout << std::endl
- << "==========================================="
- << std::endl
- << "Number of active cells: " << triangulation.n_active_cells()
+ << "==========================================="
<< std::endl
- << "Number of degrees of freedom: " << dof_handler.n_dofs()
+ << "Number of active cells: " << triangulation.n_active_cells()
<< std::endl
- << std::endl;
+ << "Number of degrees of freedom: " << dof_handler.n_dofs()
+ << std::endl
+ << std::endl;
constraints.clear ();
DoFTools::make_hanging_node_constraints (dof_handler,
@@ -203,12 +213,12 @@ namespace Step26
MatrixCreator::create_mass_matrix(dof_handler,
QGauss(fe.degree+1),
mass_matrix,
- (const Function*)0,
+ (const Function *)0,
constraints);
MatrixCreator::create_laplace_matrix(dof_handler,
QGauss(fe.degree+1),
laplace_matrix,
- (const Function*)0,
+ (const Function *)0,
constraints);
solution.reinit(dof_handler.n_dofs());
@@ -291,7 +301,7 @@ namespace Step26
// too high a mesh level.
template
void HeatEquation::refine_mesh (const unsigned int min_grid_level,
- const unsigned int max_grid_level)
+ const unsigned int max_grid_level)
{
Vector estimated_error_per_cell (triangulation.n_active_cells());
@@ -310,8 +320,8 @@ namespace Step26
cell != triangulation.end(); ++cell)
cell->clear_refine_flag ();
for (typename Triangulation::active_cell_iterator
- cell = triangulation.begin_active(min_grid_level);
- cell != triangulation.end_active(min_grid_level); ++cell)
+ cell = triangulation.begin_active(min_grid_level);
+ cell != triangulation.end_active(min_grid_level); ++cell)
cell->clear_coarsen_flag ();
@@ -403,8 +413,8 @@ start_time_iteration:
std::cout << "Time step " << timestep_number << " at t=" << time
<< std::endl;
- tmp.reinit (solution.size());
- forcing_terms.reinit (solution.size());
+ tmp.reinit (solution.size());
+ forcing_terms.reinit (solution.size());
mass_matrix.vmult(system_rhs, old_solution);
@@ -434,7 +444,7 @@ start_time_iteration:
BoundaryValues boundary_values_function;
boundary_values_function.set_time(time);
- std::map boundary_values;
+ std::map boundary_values;
VectorTools::interpolate_boundary_values(dof_handler,
0,
boundary_values_function,
@@ -458,16 +468,16 @@ start_time_iteration:
(pre_refinement_step < n_adaptive_pre_refinement_steps))
{
refine_mesh (initial_global_refinement,
- initial_global_refinement + n_adaptive_pre_refinement_steps);
+ initial_global_refinement + n_adaptive_pre_refinement_steps);
++pre_refinement_step;
- std::cout << std::endl;
+ std::cout << std::endl;
goto start_time_iteration;
}
else if ((timestep_number > 0) && (timestep_number % 5 == 0))
refine_mesh (initial_global_refinement,
- initial_global_refinement + n_adaptive_pre_refinement_steps);
+ initial_global_refinement + n_adaptive_pre_refinement_steps);
old_solution = solution;
}
diff --git a/deal.II/examples/step-27/step-27.cc b/deal.II/examples/step-27/step-27.cc
index 2ebbd9fa4d..4f9bc6680f 100644
--- a/deal.II/examples/step-27/step-27.cc
+++ b/deal.II/examples/step-27/step-27.cc
@@ -1,13 +1,23 @@
-/* Author: Wolfgang Bangerth, Texas A&M University, 2006, 2007 */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2006 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Wolfgang Bangerth, Texas A&M University, 2006, 2007
+ */
-/* $Id$ */
-/* */
-/* Copyright (C) 2006-2012 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
// @sect3{Include files}
@@ -269,7 +279,7 @@ namespace Step27
FullMatrix cell_matrix;
Vector cell_rhs;
- std::vector local_dof_indices;
+ std::vector local_dof_indices;
typename hp::DoFHandler::active_cell_iterator
cell = dof_handler.begin_active(),
diff --git a/deal.II/examples/step-28/step-28.cc b/deal.II/examples/step-28/step-28.cc
index 049d63568e..14ac1ba6be 100644
--- a/deal.II/examples/step-28/step-28.cc
+++ b/deal.II/examples/step-28/step-28.cc
@@ -1,13 +1,23 @@
-/* Author: Yaqi Wang, Texas A&M University, 2009, 2010 */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2009 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Yaqi Wang, Texas A&M University, 2009, 2010
+ */
-/* $Id$ */
-/* */
-/* Copyright (C) 2009-2012 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
// @sect3{Include files}
@@ -492,7 +502,7 @@ namespace Step28
Vector system_rhs;
- std::map boundary_values;
+ std::map boundary_values;
ConstraintMatrix hanging_node_constraints;
@@ -667,7 +677,7 @@ namespace Step28
FullMatrix cell_matrix (dofs_per_cell, dofs_per_cell);
Vector cell_rhs (dofs_per_cell);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
typename DoFHandler::active_cell_iterator
cell = dof_handler.begin_active(),
@@ -743,7 +753,7 @@ namespace Step28
std::vector extraneous_source_values (n_q_points);
std::vector solution_old_values (n_q_points);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
typename DoFHandler::active_cell_iterator
cell = dof_handler.begin_active(),
@@ -941,7 +951,7 @@ namespace Step28
prolongation_matrix.Tvmult_add (cell_rhs, tmp);
}
- std::vector local_dof_indices (fe.dofs_per_cell);
+ std::vector local_dof_indices (fe.dofs_per_cell);
cell_g->get_dof_indices (local_dof_indices);
for (unsigned int i=0; i
void NeutronDiffusionProblem::refine_grid ()
{
- std::vector n_cells (parameters.n_groups);
+ std::vector n_cells (parameters.n_groups);
for (unsigned int group=0; groupn_active_cells();
diff --git a/deal.II/examples/step-29/step-29.cc b/deal.II/examples/step-29/step-29.cc
index b97a0558b7..d955cd261e 100644
--- a/deal.II/examples/step-29/step-29.cc
+++ b/deal.II/examples/step-29/step-29.cc
@@ -1,13 +1,22 @@
-/* Author: Moritz Allmaras, Texas A&M University, 2007 */
-
-/* $Id$ */
-/* Copyright (C) 2007-2008, 2010-2012 by the deal.II authors and M. Allmaras */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
-
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2007 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Moritz Allmaras, Texas A&M University, 2007
+ */
// @sect3{Include files}
@@ -602,7 +611,7 @@ namespace Step29
// vector to transfer the cell contributions to the appropriate location
// in the global system matrix after.
FullMatrix cell_matrix (dofs_per_cell, dofs_per_cell);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
typename DoFHandler::active_cell_iterator
cell = dof_handler.begin_active(),
@@ -769,7 +778,7 @@ namespace Step29
// which is characterized by the boundary indicator 1. The Dirichlet
// values are provided by the DirichletBoundaryValues class
// we defined above:
- std::map boundary_values;
+ std::map boundary_values;
VectorTools::interpolate_boundary_values (dof_handler,
1,
DirichletBoundaryValues(),
diff --git a/deal.II/examples/step-3/doc/intro.dox b/deal.II/examples/step-3/doc/intro.dox
index ad3f4abe64..6286abe7bc 100644
--- a/deal.II/examples/step-3/doc/intro.dox
+++ b/deal.II/examples/step-3/doc/intro.dox
@@ -315,4 +315,72 @@ separation of functionality — again in many of the
following tutorial programs.
+
A note on types
+
+deal.II defines a number of integral %types via typedefs in
+namespace types. In particular, in this program you will see
+types::global_dof_index in a couple of places: an integer type that is used to
+denote the global index of a degree of freedom, i.e., the index of a
+particular degree of freedom within the DoFHandler object that is defined on
+top of a triangulation (as opposed to the index of a particular degree of
+freedom within a particular cell). For the current program
+(as well as almost all of the tutorial programs), you will have a few thousand
+to maybe a few million unknowns globally (and, for $Q_1$ elements, you will
+have 4 locally on each cell in 2d and 8 in 3d). Consequently, a data
+type that allows to store sufficiently large numbers for global DoF indices is
+unsigned int given that it allows to store numbers between 0 and
+slightly more than 4 billion (on most systems, where integers are 32-bit). In
+fact, this is what types::global_dof_index is.
+
+So, why not just use unsigned int right away? deal.II used to do
+this until version 7.3. However, deal.II supports very large computations (via
+the framework discussed in step-40) that may have more than 4 billion unknowns
+when spread across a few thousand processors. Consequently, there are
+situations where unsigned int is not sufficiently large and we
+need a 64-bit unsigned integral type. To make this possible, we introduced
+types::global_dof_index which by default is defined as simply unsigned
+int whereas it is possible to define it as unsigned long long
+int if necessary, by passing a particular flag during configuration
+(see the ReadMe file).
+
+This covers the technical aspect. But there is also a documentation purpose:
+everywhere in the library and codes that are built on it, if you see a place
+using the data type types::global_dof_index, you immediately know that the
+quantity that is being referenced is, in fact, a global dof index. No such
+meaning would be apparent if we had just used unsigned int (which
+may also be a local index, a boundary indicator, a material id,
+etc.). Immediately knowing what a variable refers to also helps avoid errors:
+it's quite clear that there must be a bug if you see an object of type
+types::global_dof_index being assigned to variable of type
+types::subdomain_id, even though they are both represented by unsigned
+integers and the compiler will, consequently, not complain.
+
+In more practical terms what the presence of this type means is that during
+assembly, we create a $4\times 4$ matrix (in 2d, using a $Q_1$ element) of the
+contributions of the cell we are currently sitting on, and then we need to add
+the elements of this matrix to the appropriate elements of the global (system)
+matrix. For this, we need to get at the global indices of the degrees of
+freedom that are local to the current cell, for which we will always use the
+following piece of the code:
+@code
+ cell->get_dof_indices (local_dof_indices);
+@endcode
+where local_dof_indices is declared as
+@code
+ std::vector local_dof_indices (fe.dofs_per_cell);
+@endcode
+The name of this variable might be a bit of a misnomer -- it stands for "the
+global indices of those degrees of freedom locally defined on the current
+cell" -- but variables that hold this information are universally named this
+way throughout the library.
+
+@note types::global_dof_index is not the only type defined in this
+namespace. Rather, there is a whole family, including types::subdomain_id,
+types::boundary_id, and types::material_id. All of these are
+typedefs for integer data types but, as explained above, they are
+used throughout the library so that (i) the intent of a variable becomes more
+easily discerned, and (ii) so that it becomes possible to change the actual
+type to a larger one if necessary without having to go through the entire
+library and figure out whether a particular use of unsigned int
+corresponds to, say, a material indicator.
diff --git a/deal.II/examples/step-3/doc/results.dox b/deal.II/examples/step-3/doc/results.dox
index 4f8b502688..c5d2e96c05 100644
--- a/deal.II/examples/step-3/doc/results.dox
+++ b/deal.II/examples/step-3/doc/results.dox
@@ -187,7 +187,7 @@ suggestions:
LaplaceProblem::LaplaceProblem.
Convergence of the mean: A different way to see that the solution
- actually converges (to something &mdash we can't tell whether it's really
+ actually converges (to something — we can't tell whether it's really
the correct value!) is to compute the mean of the solution. To this end, add
the following code to LaplaceProblem::output_results:
@code
diff --git a/deal.II/examples/step-3/step-3.cc b/deal.II/examples/step-3/step-3.cc
index 7a991c7211..884be34c03 100644
--- a/deal.II/examples/step-3/step-3.cc
+++ b/deal.II/examples/step-3/step-3.cc
@@ -1,13 +1,23 @@
-/* Author: Wolfgang Bangerth, 1999, Guido Kanschat, 2011 */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 1999 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
-/* $Id$ */
-/* */
-/* Copyright (C) 1999-2004, 2006-2008, 2010-2012 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
+/*
+ * Authors: Wolfgang Bangerth, 1999,
+ * Guido Kanschat, 2011
+ */
// @sect3{Many new include files}
@@ -265,7 +275,7 @@ void Step3::assemble_system ()
// mentioned, we use the implied Q1 mapping, rather than specifying one
// ourselves explicitly. Finally, we have to tell it what we want it to
// compute on each cell: we need the values of the shape functions at the
- // quadrature points (for the right hand side $(\varphi,f)$), their
+ // quadrature points (for the right hand side $(\varphi_i,f)$), their
// gradients (for the matrix entries $(\nabla \varphi_i, \nabla
// \varphi_j)$), and also the weights of the quadrature points and the
// determinants of the Jacobian transformations from the reference cell to
@@ -286,12 +296,12 @@ void Step3::assemble_system ()
update_values | update_gradients | update_JxW_values);
// The advantage of this approach is that we can specify what kind of
// information we actually need on each cell. It is easily understandable
- // that this approach can significant speed up finite element computations,
+ // that this approach can significantly speed up finite element computations,
// compared to approaches where everything, including second derivatives,
- // normal vectors to cells, etc are computed on each cell, regardless
+ // normal vectors to cells, etc are computed on each cell, regardless of
// whether they are needed or not.
- // For use further down below, we define two short cuts for values that will
+ // For use further down below, we define two shortcuts for values that will
// be used very frequently. First, an abbreviation for the number of degrees
// of freedom on each cell (since we are in 2D and degrees of freedom are
// associated with vertices only, this number is four, but we rather want to
@@ -302,7 +312,7 @@ void Step3::assemble_system ()
//
// Secondly, we also define an abbreviation for the number of quadrature
// points (here that should be four). In general, it is a good idea to use
- // their symbolic names instead of hard-coding these number even if you know
+ // their symbolic names instead of hard-coding these numbers even if you know
// them, since you may want to change the quadrature formula and/or finite
// element at some time; the program will just work with these changes,
// without the need to change anything in this function.
@@ -333,8 +343,9 @@ void Step3::assemble_system ()
// through dofs_per_cell-1). However, when we transfer the result into the
// global matrix, we have to know the global numbers of the degrees of
// freedom. When we query them, we need a scratch (temporary) array for
- // these numbers:
- std::vector local_dof_indices (dofs_per_cell);
+ // these numbers (see the discussion at the end of the introduction for
+ // the type, types::global_dof_index, used here):
+ std::vector local_dof_indices (dofs_per_cell);
// Now for the loop over all cells. We have seen before how this works, so
// this should be familiar including the conventional names for these
@@ -458,7 +469,7 @@ void Step3::assemble_system ()
// their boundary values (which are zero here for all entries). This mapping
// of DoF numbers to boundary values is done by the std::map
// class.
- std::map boundary_values;
+ std::map boundary_values;
VectorTools::interpolate_boundary_values (dof_handler,
0,
ZeroFunction<2>(),
diff --git a/deal.II/examples/step-30/step-30.cc b/deal.II/examples/step-30/step-30.cc
index e9eeca97e6..5e50d7316a 100644
--- a/deal.II/examples/step-30/step-30.cc
+++ b/deal.II/examples/step-30/step-30.cc
@@ -1,14 +1,23 @@
-/* Author: Tobias Leicht, 2007 */
-
-/* $Id$ */
-/* Version: $Name$ */
-/* */
-/* Copyright (C) 2007-2008, 2011-2012 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2007 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: Tobias Leicht, 2007
+ */
+
// The deal.II include files have already been covered in previous examples
// and will thus not be further commented on.
@@ -426,8 +435,8 @@ namespace Step30
void DGMethod::assemble_system2 ()
{
const unsigned int dofs_per_cell = dof_handler.get_fe().dofs_per_cell;
- std::vector dofs (dofs_per_cell);
- std::vector dofs_neighbor (dofs_per_cell);
+ std::vector dofs (dofs_per_cell);
+ std::vector dofs_neighbor (dofs_per_cell);
const UpdateFlags update_flags = update_values
| update_gradients
diff --git a/deal.II/examples/step-31/doc/results.dox b/deal.II/examples/step-31/doc/results.dox
index 9310d49090..55b0db1520 100644
--- a/deal.II/examples/step-31/doc/results.dox
+++ b/deal.II/examples/step-31/doc/results.dox
@@ -506,13 +506,16 @@ Again, small values of $\beta$ lead to less diffusion but we have to
choose the time step very small to keep things under control. Too
large values of $\beta$ make for more diffusion, but again require
small time steps. The best value would appear to be $\beta=0.03$, as
-for the $Q_1$ element, and the we have to choose
+for the $Q_1$ element, and then we have to choose
$k=\frac 18\frac{h_K}{\|\mathbf{u}\|_{L^\infty(K)}}$ — exactly
half the size for the $Q_1$ element, a fact that may not be surprising
if we state the CFL condition as the requirement that the time step be
small enough so that the distance transport advects in each time step
is no longer than one grid point away (which for $Q_1$ elements
-is $h_K$, but for $Q_2$ elements is $h_K/2$).
+is $h_K$, but for $Q_2$ elements is $h_K/2$). It turns out that $\beta$
+needs to be sligthly larger for obtaining stable results also late in
+the simulation at times larger than 60, so we actually choose it as
+$\beta = 0.034$ in the code.
Results for 3d
@@ -520,7 +523,7 @@ is $h_K$, but for $Q_2$ elements is $h_K/2$).
One can repeat these experiments in 3d and find the optimal time step
for each value of $\beta$ and find the best value of $\beta$. What one
finds is that for the same $\beta$ already used in 2d, the time steps
-needs to be a bit small, by around a factor of 1.2 or so. This is
+needs to be a bit smaller, by around a factor of 1.2 or so. This is
easily explained: the time step restriction is
$k=\min_K \frac{ch_K}{\|\mathbf{u}\|_{L^\infty(K)}}$ where $h_K$ is
the diameter of the cell. However, what is really needed is the
@@ -537,28 +540,29 @@ can take.
Conclusions
-Concluding, from the simple computations above, $\beta=0.03$ appears to be a
+Concluding, from the simple computations above, $\beta=0.034$ appears to be a
good choice for the stabilization parameter in 2d, and $\beta=0.05$ in 3d. In
-a dimension independent way, we can model this as $\beta=0.015d$. If one does
+a dimension independent way, we can model this as $\beta=0.017d$. If one does
longer computations (several thousand time steps) on finer meshes, one
-realizes that that's not quite small enough and that for stability one will
-have to reduce the above values a bit more (by about a factor of $\frac 78$).
+realizes that the time step size is not quite small enough and that for
+stability one will have to reduce the above values a bit more (by about a
+factor of $\frac 78$).
As a consequence, a formula that reconciles 2d, 3d, and variable polynomial
degree and takes all factors in account reads as follows:
@f{eqnarray*}
k =
- \frac 1{2 \cdot 1.6} \frac 1{\sqrt{d}}
+ \frac 1{2 \cdot 1.7} \frac 1{\sqrt{d}}
\frac 2d
\frac 1{q_T}
\frac{h_K}{\|\mathbf{u}\|_{L^\infty(K)}}
=
- \frac 1{1.6 d\sqrt{d}}
+ \frac 1{1.7 d\sqrt{d}}
\frac 1{q_T}
\frac{h_K}{\|\mathbf{u}\|_{L^\infty(K)}}.
@f}
In the first form (in the center of the equation), $\frac
-1{2 \cdot 1.6}$ is a universal constant, $\frac 1{\sqrt{d}}$
+1{2 \cdot 1.7}$ is a universal constant, $\frac 1{\sqrt{d}}$
is the factor that accounts for the difference between cell diameter
and grid point separation,
$\frac 2d$ accounts for the increase in $\beta$ with space dimension,
diff --git a/deal.II/examples/step-31/step-31.cc b/deal.II/examples/step-31/step-31.cc
index 7d9a55ac91..e8d0062099 100644
--- a/deal.II/examples/step-31/step-31.cc
+++ b/deal.II/examples/step-31/step-31.cc
@@ -1,14 +1,24 @@
-/* Author: Martin Kronbichler, Uppsala University,
- Wolfgang Bangerth, Texas A&M University 2007, 2008 */
-
-/* $Id$ */
-/* */
-/* Copyright (C) 2007-2012 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2007 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Authors: Martin Kronbichler, Uppsala University,
+ * Wolfgang Bangerth, Texas A&M University 2007, 2008
+ */
+
// @sect3{Include files}
@@ -492,7 +502,7 @@ namespace Step31
DoFHandler stokes_dof_handler;
ConstraintMatrix stokes_constraints;
- std::vector stokes_block_sizes;
+ std::vector stokes_block_sizes;
TrilinosWrappers::BlockSparseMatrix stokes_matrix;
TrilinosWrappers::BlockSparseMatrix stokes_preconditioner_matrix;
@@ -750,7 +760,7 @@ namespace Step31
// introduction.
//
// There are some universal constants worth mentioning here. First, we need
- // to fix $\beta$; we choose $\beta=0.015\cdot dim$, a choice discussed in
+ // to fix $\beta$; we choose $\beta=0.017\cdot dim$, a choice discussed in
// detail in the results section of this tutorial program. The second is the
// exponent $\alpha$; $\alpha=1$ appears to work fine for the current
// program, even though some additional benefit might be expected from
@@ -779,7 +789,7 @@ namespace Step31
const double global_T_variation,
const double cell_diameter) const
{
- const double beta = 0.015 * dim;
+ const double beta = 0.017 * dim;
const double alpha = 1;
if (global_u_infty == 0)
@@ -886,7 +896,7 @@ namespace Step31
temperature_constraints.close ();
}
- std::vector stokes_dofs_per_block (2);
+ std::vector stokes_dofs_per_block (2);
DoFTools::count_dofs_per_block (stokes_dof_handler, stokes_dofs_per_block,
stokes_sub_blocks);
@@ -1076,7 +1086,7 @@ namespace Step31
const unsigned int n_q_points = quadrature_formula.size();
FullMatrix local_matrix (dofs_per_cell, dofs_per_cell);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
std::vector > grad_phi_u (dofs_per_cell);
std::vector phi_p (dofs_per_cell);
@@ -1293,7 +1303,7 @@ namespace Step31
FullMatrix local_matrix (dofs_per_cell, dofs_per_cell);
Vector local_rhs (dofs_per_cell);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
// Next we need a vector that will contain the values of the temperature
// solution at the previous time level at the quadrature points to
@@ -1459,7 +1469,7 @@ namespace Step31
FullMatrix local_mass_matrix (dofs_per_cell, dofs_per_cell);
FullMatrix local_stiffness_matrix (dofs_per_cell, dofs_per_cell);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
std::vector phi_T (dofs_per_cell);
std::vector > grad_phi_T (dofs_per_cell);
@@ -1571,7 +1581,7 @@ namespace Step31
Vector local_rhs (dofs_per_cell);
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
// Next comes the declaration of vectors to hold the old and older
// solution values (as a notation for time levels n-1 and
@@ -1828,12 +1838,12 @@ namespace Step31
const double maximal_velocity = get_maximal_velocity();
if (maximal_velocity >= 0.01)
- time_step = 1./(1.6*dim*std::sqrt(1.*dim)) /
+ time_step = 1./(1.7*dim*std::sqrt(1.*dim)) /
temperature_degree *
GridTools::minimal_cell_diameter(triangulation) /
maximal_velocity;
else
- time_step = 1./(1.6*dim*std::sqrt(1.*dim)) /
+ time_step = 1./(1.7*dim*std::sqrt(1.*dim)) /
temperature_degree *
GridTools::minimal_cell_diameter(triangulation) /
.01;
@@ -1967,9 +1977,9 @@ namespace Step31
// output as only a qualititative means to understand a solution, we
// ignore this $\mathcal{O}(h)$ error.
{
- std::vector local_joint_dof_indices (joint_fe.dofs_per_cell);
- std::vector local_stokes_dof_indices (stokes_fe.dofs_per_cell);
- std::vector local_temperature_dof_indices (temperature_fe.dofs_per_cell);
+ std::vector local_joint_dof_indices (joint_fe.dofs_per_cell);
+ std::vector local_stokes_dof_indices (stokes_fe.dofs_per_cell);
+ std::vector local_temperature_dof_indices (temperature_fe.dofs_per_cell);
typename DoFHandler::active_cell_iterator
joint_cell = joint_dof_handler.begin_active(),
diff --git a/deal.II/examples/step-32/step-32.cc b/deal.II/examples/step-32/step-32.cc
index ba978a498d..1b1d71ea0e 100644
--- a/deal.II/examples/step-32/step-32.cc
+++ b/deal.II/examples/step-32/step-32.cc
@@ -1,13 +1,25 @@
-/* Author: Martin Kronbichler, Uppsala University,
- Wolfgang Bangerth, Texas A&M University,
- Timo Heister, University of Goettingen, 2008-2011 */
-/* */
-/* Copyright (C) 2008-2012 by the deal.II authors */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2008 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Authors: Martin Kronbichler, Uppsala University,
+ * Wolfgang Bangerth, Texas A&M University,
+ * Timo Heister, University of Goettingen, 2008-2011
+ */
+
// @sect3{Include files}
@@ -617,7 +629,7 @@ namespace Step32
StokesPreconditioner (const StokesPreconditioner &data);
FullMatrix local_matrix;
- std::vector local_dof_indices;
+ std::vector local_dof_indices;
};
template
@@ -674,7 +686,7 @@ namespace Step32
FullMatrix local_mass_matrix;
FullMatrix local_stiffness_matrix;
- std::vector local_dof_indices;
+ std::vector local_dof_indices;
};
template
@@ -706,7 +718,7 @@ namespace Step32
TemperatureRHS (const TemperatureRHS &data);
Vector local_rhs;
- std::vector local_dof_indices;
+ std::vector local_dof_indices;
FullMatrix matrix_for_bc;
};
@@ -1690,7 +1702,7 @@ namespace Step32
const unsigned int dofs_per_cell = fe_values.dofs_per_cell,
n_q_points = fe_values.n_quadrature_points;
- std::vector local_dof_indices (dofs_per_cell);
+ std::vector local_dof_indices (dofs_per_cell);
Vector cell_vector (dofs_per_cell);
FullMatrix matrix_for_bc (dofs_per_cell, dofs_per_cell);
@@ -1945,7 +1957,7 @@ namespace Step32
temperature_dof_handler.distribute_dofs (temperature_fe);
- std::vector stokes_dofs_per_block (2);
+ std::vector stokes_dofs_per_block (2);
DoFTools::count_dofs_per_block (stokes_dof_handler, stokes_dofs_per_block,
stokes_sub_blocks);
@@ -3251,9 +3263,9 @@ namespace Step32
joint_solution.reinit (joint_dof_handler.locally_owned_dofs(), MPI_COMM_WORLD);
{
- std::vector local_joint_dof_indices (joint_fe.dofs_per_cell);
- std::vector local_stokes_dof_indices (stokes_fe.dofs_per_cell);
- std::vector local_temperature_dof_indices (temperature_fe.dofs_per_cell);
+ std::vector local_joint_dof_indices (joint_fe.dofs_per_cell);
+ std::vector local_stokes_dof_indices (stokes_fe.dofs_per_cell);
+ std::vector local_temperature_dof_indices (temperature_fe.dofs_per_cell);
typename DoFHandler::active_cell_iterator
joint_cell = joint_dof_handler.begin_active(),
diff --git a/deal.II/examples/step-33/step-33.cc b/deal.II/examples/step-33/step-33.cc
index 37c8cf9792..3d17389c1b 100644
--- a/deal.II/examples/step-33/step-33.cc
+++ b/deal.II/examples/step-33/step-33.cc
@@ -1,13 +1,23 @@
-/* Author: David Neckels, Boulder, Colorado, 2007, 2008 */
+// ---------------------------------------------------------------------
+// $Id$
+//
+// Copyright (C) 2007 - 2013 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE at
+// the top level of the deal.II distribution.
+//
+// ---------------------------------------------------------------------
+
+/*
+ * Author: David Neckels, Boulder, Colorado, 2007, 2008
+ */
-/* $Id$ */
-/* */
-/* Copyright (C) 2007-2012 by the deal.II authors and David Neckels */
-/* */
-/* This file is subject to QPL and may not be distributed */
-/* without copyright and license information. Please refer */
-/* to the file deal.II/doc/license.html for the text and */
-/* further information on this license. */
// @sect3{Include files}
@@ -1290,12 +1300,12 @@ namespace Step33
void assemble_system ();
void assemble_cell_term (const FEValues &fe_v,
- const std::vector &dofs);
+ const std::vector &dofs);
void assemble_face_term (const unsigned int face_no,
const FEFaceValuesBase &fe_v,
const FEFaceValuesBase &fe_v_neighbor,
- const std::vector &dofs,
- const std::vector &dofs_neighbor,
+ const std::vector &dofs,
+ const std::vector &dofs_neighbor,
const bool external_face,
const unsigned int boundary_id,
const double face_diameter);
@@ -1430,8 +1440,8 @@ namespace Step33
{
const unsigned int dofs_per_cell = dof_handler.get_fe().dofs_per_cell;
- std::vector dof_indices (dofs_per_cell);
- std::vector dof_indices_neighbor (dofs_per_cell);
+ std::vector dof_indices (dofs_per_cell);
+ std::vector dof_indices_neighbor (dofs_per_cell);
const UpdateFlags update_flags = update_values
| update_gradients
@@ -1481,7 +1491,7 @@ namespace Step33
assemble_face_term (face_no, fe_v_face,
fe_v_face,
dof_indices,
- std::vector